1、测试过程中碰到的问题
- 功能问题
- app某界面崩溃
- app某接口报错
- 股票详情页中特性信息字段内容丢失或者数据异常
- 微信分享不可用
- 兼容性问题
- 用户网络慢时发出请求后退出当前页面发生崩溃
- 某些界面在 4.4 和 5.0 系统上操作体验不同
- 测试痛点:快速迭代中传统的基于用例维护的自动化用例使用不当
- 没有采用合理的分层体系,尝试用UI自动化覆盖所有测试场景
- 没有采用PageObject模式导致自动化用例维护成本太大
- 对自动化框架掌握不够
- 测试痛点:测试内容太多导致手工测试无法充分覆盖
- 界面字段正确性:比如股票相关的数据变化,十多个字段
- 接口正确性:后续接口传输数据的变化和内容
- 专项测试回归难度大:内存泄漏、健壮性测试、弱网等测试过程太多
- 回归工作量大,不回归会导致漏测
2、对测试手段的改进
- 分层测试
- 合理划分接口测试和UI测试的比例和业务边界
- 自动化测试覆盖主要业务流程
- 手工测试手段
- 遍历测试手段
- code less :用例维护成本低
- automate:尽可能的自动化覆盖回归业务
3、自动化遍历测试
3.1 monkey工具缺点
- 不支持业务行为定制
- 经常点到外部的app
- 经常点到注销和退出
- 无法灵活控制
3.2 常见遍历工具与技术
- google android 原生 monkey
- 百度 SmartMonkey
- 腾讯 NewMonkey
- Testerhome vigossjjj smart_monkey
- 阿里 Macaca 的 NoSmoke
- 头条的 zhangzhao Maxim
- 霍格沃兹测试学院 seveniruby AppCrawler
- Google 的 App Crawler
3.3 遍历测试工具Monkey、Maxim
monkey:
开源,android标准测试工具 https://developer.android.com/studio/test/monkey.html
adb shell monkey -p com.xueqiu.android 200
adb shell monkey -p com.xueqiu.android --throttle 1000 -v 200 1个事件1秒
adb shell monkey -p com.xueqiu.android --throttle 100 -v 200 1个事件100毫秒
Maxim:
未开源,改进版的monkey,提供预编译包 基于遍历规则的高性能Android Monkey,适用于真机/模拟器的APP UI压力测试 https://github.com/zhangzhao4444/Maxim 使用步骤: 1、克隆到本地:https://github.com/zhangzhao4444/Maxim.git 2、在D:\mycode\Maxim目录下执行:
Maxim - 命令行模式:
adb push framework.jar /sdcard
adb push monkey.jar /sdcard
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
1、启动jar包:CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin
2、monkey入口类,不要修改:tv.panda.test.monkey.Monkey
3、被测app包名,需要修改:com.xueqiu.android
4、运行时间:--running-minutes 60
5、遍历策略:
--uiautomatormix:模式 Mix (基于事件概率的压力测试),直接使用底层accessibiltyserver获取界面接口 解析各控件,随机选取一个控件执行touch操作。同时与原monkey 其他操作按比例混合使用默认accessibilityserver action占比50%,其余各action分剩余的50%,accessibilityserver action占比可配置 --pct-uiautomatormix n
--uiautomatordfs:深度遍历算法
--uiautomatortroy:模式Troy,控件选择策略按max.xpath.selector配置的高低优先级来进行深度遍历
6、定制白名单:
--act-whitelist-file /sdcard/awl.strings 定义白名单
--act-blacklist-file
7、其他参数与原始monkey一致
Maxim - UI界面:
https://www.appetizer.io/cn/
3.4Appcrawler 命令行工具:
是一个基于自动遍历的App爬虫工具,支持Android和IOS,支持真机和模拟器。最大的特点是灵活性高,可通过配置来设定遍历的规则。 安装包下载地址:https://ceshiren.com/t/topic/15801 github:https://github.com/seveniruby/AppCrawler
appium -g /tmp/appium.log --session-override
java -jar appcrawler-2.7.4-hogwarts.jar --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias,dontStopAppOnReset=true"
|