【APP测试】ADB安装、常用命令、monkey的使用及日志分析

前言

原生和混合

在市场上区分原生、混合开发
原生:是区分安卓(Andriod)和IOSC 语言)
1. 一个 app 有两套代码,两个不同的岗位去完成的。
2. 性能会更好、兼容性也会好
3. 开发成本高、时间慢
混合:原生 +H5 。一般可以实现一套代码生成安卓版本和 iOS 版本。
1. 成本会低、多平台兼容
H5App : 性能会差很多。H5更适合推广,不用下载app就能打开别人分享的页面。

App相关的关键字

安卓、ios对应的安装包的扩展名

安卓:apk

ios:ipa

手机的快慢 ? 运行内存 -- RAM
手机能够存储多少东西 ? 存储内存 --ROM
最高权限 : ROOT

问题: APP兼容性测试时,版本怎么选择?

1. 会选择常用的设备,先确定功能的正确性
2. 选择对应的手机进行兼容性测试,主要测试主流程。
确保APP能够正确的使用,并且页面布局正确
3. 选择的手机一般选该手机的最新版本往下走四个版本左右,及最旧的。
苹果 : 
小米:最近比较火的手机选择几个
华为 :最近比较火的手机选择几个 ,版本各有不同
总结: 10 -15 个手机确定主流程的正确性即可。(如果时间多,你可以适当的再选选)

Web测试和App测试有什么异同点?

相同点:

1:流程、测试方法、测试理论都是一样

2:包含功能测试、兼容性测试、性能测试、安全测试

不同点:

1:架构不一样,web测试是B/S架构,App测试是C/S架构

2:环境不一样,web测试是比较稳定和单一的,网络环境比较稳定和单一,App测试比较多变,网络环境:2G/3G/4G/WIFI/5G

3:部分测试内容不一样,web兼容性测试主要考虑平台、浏览器、分辨率,App兼容性测试系统、分辨率、尺寸、品牌。App测试有电量、流量、弱网、内存泄露、外网场景等测试策略,web没有这些。

4:测试的工具不一样,web自动化selenium,App自动化Appium

adb安装

1、下载压缩包,解压

2、配置环境变量:把文件路径配置到Path里

3、验证:cmd输 adb version

地址:https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn

配置手机(真机)或者模拟器

模拟器可以百度进行下载,比如说夜神、雷电、逍遥等等,这边推荐使用夜神。(安装简单,一键安装)
配置模拟器:
1. 打开模拟器
2. 进入设置设置对应的模式为手机,性能
3. 进入到手机设置页面- 找到个人中心(版本号)--点击5次
4. 返回到设置 页面,会有一个开发者选项
5. 开启调试模式
配置真机 :
1. 使用usb进行调试,一定要授权!!!(不要是充电)
2. 配置模拟器的后三步都需要做。(百度搜索一下你的手机是怎么开启开发者权限)

adb常用命令

adb devices 列出所有的设备

adb -s 设备号 [命令] 针对连接多台设备,指定操作哪台,如:adb -s 设备号 shell

adb root      获得root权限               

adb remount 获得system文件的读写权限

安装

adb install apk包名路径  通过命令安装安卓应用

adb install -r apk包名路径 覆盖安装

卸载

adb uninstall apk包名  通过命令卸载安卓应用

adb shell cmd package uninstall -k 包名 保留之前的数据

adb shell pm list packages 列出手机装的所有app的包名,在安卓中,所有的包名存在、data/data中

文件操作(日志文件怎么导出)

adb push 本地路径 远程路径   上传本地文件到手机上

        如:adb push g:\adbtest\log.txt /system

adb pull 远程路径 本地路径   把手机上的文件下载到本地(本地路径最好放在一个文件夹下)

        如:adb pull /system/log.txt g:\adbtest

日志操作

adb logcat 查看日志,ctrl+c退出

        adb logcat >本地日志路径  输出的日志保存在本地文件

        如:adb logcat >g:\adbtest\log.txt  输出的日志保存在本地文件

        adb logcat -c 清理日志

        adb logcat *:E 日志筛选,只输出error日志

adb bugreport 输出日志,包含logcat、同时也有一些功耗、CPU等日志信息,只支持安卓7.0以上

        adb bugreport > 本地日志路径

adb shell  进入shell,进入shell后可执行linux命令,exit(退出)

adb kill-server 关闭adb服务

adb start-server 启动adb服务

移动端稳定性测试工具——Monkey

稳定性测试:长时间的去运行软件,确定软件能够友好的为用户提供服务。

monkey:随机的向应用发送对应的操作,人工的去模拟用户的操作,确定APP的稳定性。

monkey在哪里,需要安装吗?==手机自带的,通过adb去调用。

monkey命令及参数

adb shell monkey  指令

1、基本参数

count  : 必填,指定操作多少次

-p :指定对应的包,可以指定多个 -p 包名1 -p 包名2

如:adb shell monkey -p com.hcedu.hcdeom 5000

--throttle :设置每个动作的间隔时间,如6000ms

如:adb shell monkey -p com.hcedu.hcdeom --throttle 6000 5000

-v、-v-v、-v-v-v(最为详细):日志级别

如:adb shell monkey -p com.hcedu.hcdeom --throttle 600 -v-v-v 5000 >d:\test\log.log

-s :指定对应的种子(seed),进行回归测试。如果需要回归测试可以直接指定对应的种子即可。

如:adb shell monkey -s 1676758881596 -p com.hcedu.hcdeom -v-v-v 5000 >d:\test\log.log

2、调试选项

如何避免出现错误不要让它停止运行?
调试选项 -- 都带上
-- ignore - crashes        忽略在应用程序出现crash时导致的monkey 停止
-- ignore - timeouts        忽略在应用程序出现 ANR 问题时导致 monkey 停止
-- ignore - security - exceptions 忽略应用程序发生许可错误时导致 monkey 停止
-- kill - process - after - error 当应用程序发生错误时,应用程序停止运行并保持在当前状态
adb shell monkey - s 1676758881596 - p com . hcedu . hcdeom -- ignore - crashes -- ignore - timeouts -- ignore - security - exceptions -- kill - process - after - error - v - v - v 5000 > d : \test\log . log

3、事件类型选择

事件类型百分比可以随意组合,不要超过100%即可。

稳定性测试连接真机用wifi连接步骤

真机:通过usb或者wifi(拔掉usb数据线后也能运行)

1. 设置--开发者选项--打开USB调试
2. 连接USB线,文件传输的选择(文件、图片),并允许权限操作
3. 确定手机和电脑是同一个局域网之中
4. 输入:adb devices,回车,确定设备连接
5. 再输入:adb tcpip 5555
把手机默认的连接方式是USB,通过此命令是把USB连接方式改为tcpip方式
6. 拔掉数据线,输入:adb connect ip:5555
比如:adb connect 192.168.2.217:5555
7. 连接成功之后,执行相应的monkey操作。

如何杀掉monkey进程

adb shell ps | find "monkey"
adb shell kill 进程号

monkey的日志在我们cmd中显示,没有在我们文档中显示怎么办

可以选择标准流 和 异常流在不同的文件中
adb shell monkey -p com.hcedu.hcdeom --pct-touch 80 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v-v-v 500 1>d:\test\log.log 2>d:\test\err.log

以上的命令,可以在cmd中输入后回车进行执行,也可以把命令放在一个.bat文件里,然后双击。(mac的话是放在.sh文件里)

Monkey日志分析

1. 在log 日志当中关注测试的包、测试的种子(seed--回归测试),以及对应的时间。
2. 重点需要的关注的是err的日志。
        做法:
        1. 通过对应的关键字进行定位-错误信息(log日志) -- 发现bug、定位bug
                通过Exception 、CRASH、包名等进行定位

                 // Short Msg: java.lang.IndexOutOfBoundsException
                 下标超过对应的长度限制
                 // Short Msg: java.lang.NullPointerException
                 空指针异常
        2. 把对应的日志发给开发或者通过缺陷管理系统进行提交问题 -- 修改bug
        3. 去进行回归测试。 -- 回归bug -通过种子去进行回归:seed

问题: 你测试一晚上,却发现没有问题。

-- 可能压根测试没有测试完
进行确认,本次测试是否完成 ?
6:30 -- 执行命令 -- 7:00 (停止)-- 第二天早上
体现:
1. 一定进行稳定性测试要保持手机是常亮的状态 (长时间操作)
2. 保证手机是有电的状态 。(充电)
3. 测试完成之后,你可以去看手机的后台运行程序打开的状态;如果没有对应的应用证明重启过
4. 看手机对应的开机时间 :设置-关于手机-状态信息- 已开机的时间。

遇到的问题

输入adb devices命令后报adb server version (36) doesn't match this client (41); killing...

是因为adb版本不一致导致的。

解决办法:把sdk里的adb.exe复制出来,重命名为nox_adb.exe,替换\Nox\bin下的nox_adb.exe文件后重启模拟器即可

输入adb命令后报:remote couldn't create file: Read-only file system

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值