ADB测试,手机app端,常用指令
一、app项目
灰度发布
所谓灰度发布,就是在发布生成环境过程当中,先发布其中几台服务器,如果这几天服务器功能运行一段时间后能够正常,name再把其他未升级或者未发布的服务器进行生成环境发布;如果先发布的机台服务器运行有问题,那么就需要 回顾到原来的版本。
app项目发布平台
- android 安装app的后缀名是 apk
- ios 苹果app的后缀名是 ipa
获取app安装包文件的方式一:
- android 可以直接找开发给对应的apk安装包
- ios 直接将手机给开发人员,让开发人员安装对应的ipa包
获取app安装包文件的方式二
- 借助内测平台
- 国内用的测试平台是蒲公英
测试包生成值后会上传到蒲公英平台,然后生成一个链接地址(二维码)
生成app安装包的获取
android app安装包、豌豆荚、应用宝、360手机助手
敏捷开发:
以用户的需求为核心,采用迭代、循环渐进的方式进行软件开发
在敏捷开发过程中,如今项目在构建初期会被切分成不同的子系统以及不同的迭代,各个子项目的成果警告测试,具备可视,具备可视,可集成和可运行的特征。
分迭代
v1.0 用户模块— 用户注册、 用户登录
v2.0 用户模块— 哼唧VIP、三方登录
安装 Android-SDK
https://www.androiddevtools.cn/
应用内测分发平台
在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些免费的应用内测分发平台。将应用测试包上,传到这些平台上,可以生产对应的二维码,直接扫码进行应用安装。
- 蒲公英
- fir.im
app应用测试流程
参与需求评审 评审前一定要看需求文档
指定测试计划 一般由测试负责人或测试主管制定
设计编写测试用例 有小公司 由于人力时间紧张,可以不写用例,需要写测试点。
执行用例,跟踪缺陷 (执行之前,用例评审、搭建环境、冒烟测试(可做、也可不做))
编写提交版本测试报告 根据报告 确定是否合格 可以上线
app测试要点
功能测试-重点
兼容性测试-重点
安装、卸载、升级测试
交叉事件测试:两个相互影响的事件测试 (游戏、电话、微信视频)
push测试(可单独 )
性能测试-重点
– CPU --内存 流量 电量 流畅度 启动速度
用户体验测试- 重点
稳定性测试
appium自动化框架原理
python开发工具— appium服务器—手机
appium服务器与手机 通过 adb交互
appium-client 使用 是HTTP协议 向 appium服务器 建立连接
1、自动化测试环境搭建
java安装
Android SDK安装
tools 目录 有 uiautomatorviewer命令 查看app元素
platform-tools目录 有 adb 工具
build-tools\29 aapt 工具 获取app的包名 启动名
验证:
java -version
uiautomatorviewer
adb
模拟器安装
appium服务器安装
appium服务可执行文件,默认安装在C盘
启动之前,需要先配置jdk android-sdk 目录
- appium-client-python 安装
安装方式:
pip install appium-client-python
adb 客户端–电脑上
adb 守护进程–手机中
adb 服务器–电脑上
2、adb命令
- adb devices 查看电脑上可使用的设备
不在先就是offline
会先查看adb-server是否启动,没有启动就去启动
- adb start-server 启动服务
没有信息输出是正常的
- adb kill-server 关闭服务
没有信息输出是正常的
获取包名、界面名
包名: app包名,是app唯一识别,
界面名:相当于web网页中的地址,在app当中,每个界面都有一个名字
adb shell dumpsys window findstr “app名”
在手机或模拟器上打开app
app 安装
adb install 路径/包名
app 卸载
adb uninstall 包名
上传下载文件
讲电脑上的文件上传到手机
adb push 电脑文件路径 手机的路径
adb push ./a.txt /sdcard
下载文件
从手机上下载文件到本地
adb pull 手机文件路径 电脑文件路径
一、app业务功能测试
1、测试点拆分
根据软件说明,设计文档、用户需求 验证App的各个功能的实现。
如果产品已经上线了,且没有需求文档,
要了解项目:1、则一定要去问人 2、自己使用研究
需求来源:
显性需求:文档中明确的说出来的需求
隐性需求:没有明确写出来,但是需要考虑
相关业务,功能影响到的相关业务
分支流程、逆向操作、异常操作
发布心情功能–拆分小功能点
输入文本:字符长度、特殊字符
图片:图片数量,
选择分类:
发布与取消:
发布评论功能–拆分小功能点
评论内容:长度、特殊字符、超链接、标签
点赞
2、app测试要点
功能测试
兼容测试
安装、卸载、升级测试
交叉事件测试
PUSH测试
性能测试
CPU、内存、浏览、电量、流畅度、启动速度
用户体验测试
稳定性测试
二、测试
1、兼容性测试
- 系统
Android、IOS
- 手机系统版本 覆盖主流
覆盖主流版本,排名前3的版本测试
手机型号 覆盖主流
android 华为小米、vivo
屏幕分辨率 ,尺寸 覆盖主流
应用兼容性
与手机硬件兼容:home键、电源键、音量调节键等
与外部硬件设备兼容:耳机、蓝牙
与操作系统软件兼容:系统时间调节、LBS定位
与其他app兼容:后台播放音乐,我们播放视频,系统如何处理
网络兼容性
2G 3G 4G WIFI
不知道 就去百度 查看 线上排名网站
https://mtj.baidu.com/data/mobile/device
不可能去做全兼容的测试,但是可以去做深度兼容测试。需要借助于第三方云测平台,testin云测,我们把app提交到云测平台,帮我们做测试,云测平台有很多的手机。是收费的 拿到测试报告。
或者我们自己来对各个手机类型,做功能测试,做到深度测试。
2、安装卸载升级测试
app是一个客户端程序,客户端在使用前是需要安装的,因此需要测试 安装、卸载、升级的操作。
安装测试点:
正向场景:
1、在不同的操作系统、不同的手机机型、版本上安装
2、从不同的渠道下载app进行测试
异常场景:
1、安装时出现异常(关机、断网),恢复后能否继续安装
2、安装时存储空间不足
3、安装时点击取消再安装
4、安装之后再次覆盖安装
卸载测试点
正向场景:
1、长按app 正常删除
2、通过第三方工具进行卸载
异常场景:
1、正在运行时卸载
2、取消卸载
3、卸载关机
4、卸载之后数据是否保留
升级测试点
正向场景:
从低版本升级到高版本,从app内升级,从app应用商城升级
异常场景:
跨版本升级,关机,升级之后数据检查
3、交叉测试
交叉测试 又称为冲突测试、或者干扰测试
交叉事件:
1、app运行时接打电话
2、app运行时收发短信
3、app运行时接到视频通话
4、app运行时收到推送通知
5、app运行时连接蓝牙
4、push消息测试
消息推送场景:
- 资讯类通知,让用户实时获取到自己感兴趣的新闻,从而增加用户的粘性
- 商城类通知,让用户获取到商城的促销活动,提高用户成交率
- 流程类通知,让用户及时获取处理工作的内容。
推送原理:由服务器主动推送消息到app端,是一个长连接
推送服务器:使用第三方推送服务器(极光或者信鸽)
中小企业不会自己搭建推送服务器,一般使用的都是第三方。
消息推送的关注点:
push消息(消息推送)是否按指定业务规则发送。
检查 是否按特定用户去进行推送
设置不接受推送消息,确认是否正常
推送消息的打开、展示、跳转是否正常
app是否运行,查看消息推送是否能收到
5、性能测试
- 进入开发者模式
设置----关于手机/平板—版本号 多点击几次
直到提示:您已进入开发者模式
在设置中 会出现:开发者选项–》调试 USB打开 和 输入 指针位置贷款
- 开启超级管理员访问权限
系统用户—文件管理器—上方 有三个横岗 —点击 齿轮 --高级 访问默认:改为超级管理员
5.1 性能工具介绍
GT APP 随身调试平台 开源网站
https://www.oschina.net/p/great-tit
GT工具可以进行基础的性能测试
GT工具提供了查看日志的功能,通过查看相关日志来分析和定位app功能异常以及crash等问题。
出现了问题:不要已出现问题就提交bug,要首先确定是前端的问题、还是后端的问题。如果是后端的问题,也不一定是需要修改代码的问题,可能是环境、数据问题,因此要重复多方面测试,在确认出现错误的真正原因。
5.2 CPU测试
GT 工具提供了两个CPU监考指标:CPU jiffes
CPU指标就是当前手机中 cpu的整体使用率
jiffief 指标 表示 开机以来,程序消耗的CPU时间片的总数
CPU问题的影响:
1、CPU使用长时间处于90%以上 非常卡
有的公司 认为70% 就有影响,有的认为80%有影响
不同的公司,对性能指标数据要求不高。
2、手机发热、耗电量增加
3、反应变慢,引起ANR(假死状态)
- GT 测试CPU实战
AUT 选择 要测试app
其他指标 选择 CPU
参数 出参 勾选
日志 logcat 打开
在返回AUT 然后 点击启动
三、appium自动化测试
1、appium自动化框架原理
代码直接发给手机 是识别不了,appium可以把代码转成手机识别的指令。
appium-client 向 appium 发送命令,appium 通过adb 向手机通信。
手机通过adb把结果返回给appium, appium在返回给appium-client。
2、环境搭建
准备JDK
安装Android SDK
安装appium软件
安装 appium对应的python包
pip install Appium-Python-Client
3、adb命令
- 开启模拟器的 开发者模式
进入开发者模式,就可以方便的适应adb命令。
设置–关于平板电脑/手机—版本号 打击 五六下 直到出现 进入开发者模型
设置–开发者选项-- 调试 --USB调试 输入 —指针位置
- adb包含三个部分
adb客户端:用来发送指令
server服务端 adb.exe执行后会启动该服务,通过这个服务端与手机上的adb守护进程沟通
adb守护进程 随着android系统的启动而启动,当android系统关闭之后它才会关闭
3.1 常用命令
- adb devices
android自带模拟器 端口号默认是 5000
夜神模拟器端口号:62001
海马模拟器端口号:26944
逍遥模拟器端口号:21503
MuMu模拟器端口号:7555
天天模拟器端口号:6555
# 命令行输入 连接 逍遥模拟器
adb connect 127.0.0.1:21503
adb start-server
adb kill-server
获取包名
包名: app应用的唯一识别,操作系统 根据包名来区分 应用app
界面名:相当于web页面,app中一个界面一个名字
adb shell dumpsys window windows | findstr mFocusedApp或者使用adb shell dumpsys window windows | findstr "usedApp"
结果是:
mFocusedApp=AppWindowToken{87bc1b7 token=Token{f5d10b6 ActivityRecord{20c5051 u0 io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity t15}}}
表示的意思是: 包名是 io.manong.developerdaily
界面名是 :io.toutiao.android.ui.activity.MainActivity
使用aapt.exe来获取包名和界面名
aapt dump badging apk路径
3.2 安装与卸载
- app安装
adb install apk路径# 案例
adb install E:\迅雷下载\110_00faf2f0dc72397153f010f09ad66ff7.apk
- app卸载
adb uninstall 包名# 案例
adb uninstall com.qq.reader
3.3 上传下载文件
- 上传
将电脑上的文件上传到手机
adb push 电脑上文件路径 手机路径#案例
adb push a.txt /sdcard
- 下载
从手机上下载文件到本地
adb push 手机的文件路径 电脑的文件夹路径# 案例
adb pull /sdcard/a E:\IDE
3.4 查看日志信息
为什么要获取日志信息:
查看出现错的原因,然后给开发人员分析
- 导出日志
adb logcat 查看日志文件# 使用管道符 写日志到文件中
adb logcat > log.txt
3.5 测试app的启动速度
如果一个app启动的速度太慢也不行
- 测试启动速度的命令:
adb shell am start -W 包名/界面名
首先要获取到包名、启动页名
adb shell dumpsys window windows | findstr "usedApp"
拿到包名 启动页名
io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity
然后查看启动速度
adb shell am start -W io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity
结果是:
C:\Users\fan\Desktop>adb shell am start -W io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity }
Warning: Activity not started, its current task has been brought to the front
Status: ok
Activity: io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity
ThisTime: 192
TotalTime: 192
WaitTime: 201
CompleteC:\Users\fan\Desktop>
ThisTime:该界面Activity启动耗时(毫秒)
TotalTime:应用自身启动耗时= ThisTime+应用app等资源启动时间
WaitTime:系统启动应用耗时=TotalTime+系统资源启动时间
我们使用TotalTime作为app的启动时间
这个时间,会多次测试,然后取平均值
3.6 稳定性测试
monkey 集成在了 adb中,主要用来做稳定性测试用的,使用java语言编写的。
主要用来测试app会不会出现crash(崩溃)的情况
相当于让一个猴子随机操作app,所有的情况都可能出现,长时间的操作来测试app会不会出现问题。
monkey常用参数
-p 参数 对指定的app进行测试
add shell monkey -p 包名 100 (100次随机操作)
100次随机事件,不一定都是点击
-v 参数 表示记录信息的级别
level 0 默认级别 -v
level 1 -v -v 打印出的信息比较详细,只打印本程序相关的日志信息
level 2 -v -v -v 打印出的信息会更多,会显示其他程序运行的信息
我们一般选择level1 级别的日志打印,只关系自己app的日志
- 案例
adb shell monkey -p io.manong.developerdaily -v -v 100
-s 用来指定伪随机数,如果两次随机数相同,那么两次操作步骤、流程、操作事件完全一样。
主要作用,就是用来复现上次的问题
adb shell monkey -p io.manong.developerdaily -v -v -s 10 100
–throttle 用于指定随机事件的间隔时间,单位是毫秒
adb shell monkey -p io.manong.developerdaily --throttle 500 --pct-touch 10 --pct-motion 50 -v -v -s 100 300 > log1.txt
–pct-touch 数值: 触摸 (整个随机事件中的百分比)
–ptc-motion 数值: 滑屏 (整个随机事件中的百分比)
组合使用
adb shell monkey -p io.manong.developerdaily --throttle 500 --pct-touch 10 --pct-motion 50 -v -v -s 100 300 > log1.txt
稳定性测试,那需要很长事件,8个小时时间做稳定性测试
如果在日志里面,出现ANR(application not responsing)
如果入日志中出现了Exception
崩溃事件
–ignore-crashes
忽略崩溃和异常,继续执行
–ignore-timeouts
忽略超时事件,继续执行
3.7 app中的错误
ANR: 应用没有响应 ,提示是等待 还是 关闭应用
手机操作系统 反应不过来,造成的错误。
- 出现了错误
我们是测试人员,我们需要分析这个错误,看看这个错误是由上面引起的,是不是非代码引起的。如果分析这个错误 自己解决不了,则需要提交bug到禅道,给前端或后端开发人员。
ADB测试,手机app端,常用指令相关推荐
- 下拉词(浏览器下拉)及手机APP端下拉联想推荐词的展示规则
各大是搜索引擎(百度.360.搜狗.神马)下拉词(浏览器下拉)及手机APP端下拉联系推荐词的展示规则是什么呢? 首先,我们要了解到一个下拉词的组成部分有关键词(A)和后缀词(B)组成,关键词简单说就是 ...
- Dynamics 365Online 如何在手机app端获取当前位置的GPS信息
众所周知365自带的手机app端是很弱的,但再弱还是聊胜于无,至少还是可以用的,而且功能也在不断的加强中. 本篇要分享的是如果使用SDK中开放的API,在手机端app中调用GPS信息,代码很简单 va ...
- 利用Android adb命令来测试手机App的耗电量
使用Android adb命令实现wifi方式连接手机 因为要通过adb命令来监控手机的耗电量,所以建议通过wifi的方式来连接手机,而不是用usb线来连接手机设备.usb方式连接手机会自动给手机充电 ...
- adb 测试手机内存 cpu 以及几种方式对比
查看内存信息: 一般来说内存占用大小有如下规律: VSS >= RSS >= PSS >= USS VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) ...
- adb 测试手机脚本
总的来说,价值不大,仅仅是记录.主要是发现自己写的东西,没有成品的appium好用. 不过由于嵌入式设备无法安装python,所以我这份shell脚本,也算有点用处吧.其实直接用笔记本电脑就行.... ...
- Web端测试和App端测试的区别
单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的. 系统架构方面: web项目,一般都是b/s架构,基于浏览器的 app项目,则是c/s的,必须要有客户 ...
- 基于springboot的手机app端支付宝实名认证
yml配置文件: alipay:APP_ID: 2021001166634591APP_PRIVATE_KEY: ALIPAY_PUBLIC_KEY: maven依赖: <!-- https:/ ...
- 手机app端token的详解很详细了
token是什么? token是服务端生成的一串字符串,以作客户端进行请求的一个令牌.当第一次登陆后,服务器生成一个token便将此token返回个客户端,以后客户端只需带上这个token前来请求数据 ...
- iphone手机app通过代理测试本地api方法
1.安装代理软件charles,下载网址:https://www.charlesproxy.com/,sn可以自行用搜索,在此不便公开 2.手机和电脑连接到同一个wifi网络,最好用不需要二道安全密码 ...
最新文章
- Java中Calendar.DAY_OF_WEEK、DAY_OF_MONTH需要减一的原因
- Java学习笔记一和前言
- *【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)
- 有了这组新年元旦海报PSD模板素材,不愁晚交稿!
- 手里有200万,如何理财?
- 2B码农想转做产品,这的规划是否靠谱?
- linux informix数据库下载,Linux下informix安装及数据库迁移
- AD09 PCB制作开异性窗口
- Android半透明
- C语言学习-翁凯(第四章笔记)
- flutter 踩的那些坑 (一) Scheme not starting with alphabetic character
- C#加载本地相对路径HTML页面
- opencv3-编程入门学习笔记
- Promise对象的resolve回调函数和reject回调函数使用
- AutoService+javaPoet+maven+注解自动生成java代码
- 13-ZF标志位,JB和JNB跳转指令
- 命令行安装bar应用到 BlackBerry 10 手机上
- 边缘锐化和对比度增强的有效方法
- cached in the local repository的解决办法
- android中的滤镜,android 实现滤镜效果
热门文章
- access select max_超级玛丽2号Max:挑选重疾险需要避开这3大误区!
- 一些常见的AAC编解码库
- 免费使用 office, Office Standard 2010 (x64) - (Chinese-Simplified) 版本
- 小米公司在互联网的地位怎么样
- win10安装jdk及环境配置
- 梯度下降与反向传播算法的原理与推导
- matlab绘制系统的根轨迹
- int型变量占多少个字节?
- 预测分析 Python ARIMA模型预测(学习笔记)
- 计算机主机风扇怎么庄,机箱风扇怎么装,小编教你电脑机箱风扇怎么装