自动化遍历测试技术之android maxim遍历测试工具

一、问题

业务线众多
业务流程复杂
依赖传统券商一些资源

1、例如app中存在问题

存在股票信息字段内容丢失或者数据异常
微信分享不可用
用户网络慢时发出请求后退出当前页面发生崩溃
某些界面在4.4和5.0的系统上操作体验不同
界面崩溃

2、解决方法

自动化解决

产品迭代快速
学习设计模式(PageObject)

手工解决

界面字段正确性:比如股票相关数据变化,共数十个字段
接口正确性:后端接口传输数据的变化和内容
专项测试回归难度大:内存泄漏、健壮性测试、弱网等测试过程太多
回归工作量大:不回归又会漏测

3、改进策略

自动化测试

覆盖主要业务的right path
缩小规模尽量降低维护成本

手工测试

扫描二维码关注公众号,回复: 15194257 查看本文章

覆盖新功能测试
探索性测试

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

猜你喜欢

转载自blog.csdn.net/YZL40514131/article/details/130671793
今日推荐