这里写目录标题
- 一、问题
- 1、例如app中存在问题
- 2、解决方法
- 3、改进策略
- 4、自动遍历测试
- 5、常见遍历工具与技术
- 二、android maxim 遍历测试工具
- 策略
- 使用
- 环境预备
- 命令行模式
- 策略
- 三、android fastbot 遍历测试工具
- 使用
一、问题
业务线众多
业务流程复杂
依赖传统券商一些资源
1、例如app中存在问题
存在股票信息字段内容丢失或者数据异常
微信分享不可用
用户网络慢时发出请求后退出当前页面发生崩溃
某些界面在4.4和5.0的系统上操作体验不同
界面崩溃
2、解决方法
自动化解决
产品迭代快速
学习设计模式(PageObject)
手工解决
界面字段正确性:比如股票相关数据变化,共数十个字段
接口正确性:后端接口传输数据的变化和内容
专项测试回归难度大:内存泄漏、健壮性测试、弱网等测试过程太多
回归工作量大:不回归又会漏测
3、改进策略
自动化测试
覆盖主要业务的right path
缩小规模尽量降低维护成本
手工测试
覆盖新功能测试
探索性测试
4、自动遍历测试
code less:用例维护成本降低到最低
automate:尽可能的自动化覆盖回归业务
5、常见遍历工具与技术
google android原生monkey、app crawler
百度smartmonkey
腾讯newmonkey
vigossijjj smart_monkey
macaca的NoSmoke
头条的zhangzhao maxim
seveniruby appcrawler
monkey的优缺点:理解成猴子上窜下跳,随机的漫无目的的执行一些事件;优点:快速的执行某些事件;缺点:不可控,让去执行某个事件做不到。
二、android maxim 遍历测试工具
对 Android Monkey 进行改进
基于遍历规则
高性能
策略
模式DFS --uiautomatordfs
增加深度遍历算法
模式 Mix --uiautomatormix
使用accessibiltyserver获取界面接口解析各控件
随机选取一个控件执行touch操作
同时与原monkey 其他操作按比例混合使用
使用
地址:https://github.com/zhangzhao4444/Maxim
adb push framework.jar /sdcard
adb push monkey.jar /sdcard
环境预备
支持 Android 5,6,7,8,9、10、11真机及模拟器;
将 framework.jar , monkey.jar push 到手机上某个目录中,建议/sdcard
D:\auto_senior>adb push "D:\auto_senior\Maxim\monkey.jar" /sdcard
D:\auto_senior>adb push "D:\auto_senior\Maxim\framework.jar" /sdcard
通过adb shell可以查看安装的包
命令行模式
cmd 命令 : adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.panda.videoliveplatform --uiautomatormix --running-minutes 60 -v -v
adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.xueqiu.android --uiautomatormix --running-minutes 60 -v -v
tv.panda.test.monkey.Monkey: monkey入口类,不要修改
com.panda.videoliveplatform: 被测app包名,需要修改
–uiautomatormix: 遍历策略
策略
1、模式 Mix (基于事件概率的压力测试)
–uiautomatormix
直接使用底层accessibiltyserver获取界面接口 解析各控件,随机选取一个控件执行touch操作。
同时与原monkey 其他操作按比例混合使用
默认accessibilityserver action占比50%,其余各action分剩余的50%
accessibilityserver action占比可配置 --pct-uiautomatormix n
2、模式 DFS
–uiautomatordfs
深度遍历算法
3、模式Troy
–uiautomatortroy
控件选择策略按max.xpath.selector配置的高低优先级来进行深度遍历
4、保留原始monkey
5、总运行时长
–running-minutes 3 运行3分钟
6、–act-whitelist-file /sdcard/awl.strings 定义白名单 --act-blacklist-file
7、其他参数与原始monkey一致
三、android fastbot 遍历测试工具
Fastbot介绍
基于model-based testing结合机器学习、强化学习的APP稳定性测试工具
使用
地址:https://github.com/bytedance/Fastbot_Android
克隆代码:git clone https://github.com/bytedance/Fastbot_Android.git
adb push *.jar /sdcard
adb push libs/* /data/local/tmp/
adb shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.xueqiu.android --agent robot --throttle 200 -v -v 1000
D:\auto_senior\Fastbot_Android>adb shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.xueqiu.android --agent robot --throttle 200 -v -v 1000