03-17 APP自动遍历测试技术

monkey

是一个在模拟器或者设备上运行的程序,用于生成用户事件的伪随机流

安装

Android SDK 自带

使用

  • 基本配置选项
adb shell monkey 100  # 对所有包随机操作 100 次
  • 操作约束
adb shell monkey -p com.xueqiu.android 100  # 指定对雪球app 随机操作 100 次
  • 事件类型和频率
  • 调试选项

  • 事件计数
adb shell monkey -p com.xueqiu.android -s 20 80  # 时间种子,重复上一次的随机事件
adb shell monkey -p com.xueqiu.android -vv -s 20 80  # 详细日志
adb shell monkey -p com.xueqiu.android --throttle 500 100  # 时间延迟,使操作速度慢下来
adb shell monkey -p com.xueqiu.android --pct-touch 10 1000  # 事件百分比

常用事件

  • --pct-touch :触摸事件,比如点击
  • --pct-motion :动作时间,比如滑动
  • --pct-trackball :轨迹事件,比如移动+点击,曲线滑动
  • --pct-majornav :主要导航事件,比如回退按钮、菜单按键

maxim

对 monkey 的改进,包括基于遍历规则,提高性能

https://github.com/zhangzhao4...

AppCrawler

https://github.com/seveniruby...

环境要求

  • java 8
  • appium 1.8.x

安装方法

执行参数

  • capability设置:与appium一致
  • testcase:用于启动APP后的基础测试用例,可以理解为前置条件
  • selectedList:遍历范围设定
  • triggerActions:特定条件触发执行动作的设置

执行参数比配置文件优先级更高

自动化支持--testcase

testcase 的完整形态

  • given:所有先决条件
  • when:先决条件成立后的行为
  • then:断言集合

testcase 的简写形态

  • xpath:对应 when 里的 xpath
  • action:对应 when 里的 action

03-17 APP自动遍历测试技术_第1张图片

动作支持--action

  • back:后退
  • backApp:回退到当前的 APP,默认等价于 back 行为,可定制
  • monkey:随机事件
  • xxx():执行代码
Thread.sleep(2000)
driver.swipe(0.9, 0.5, 0.1, 0.5)
  • click:点击
  • longTap:长按

自动遍历支持

  • selectedList:需要被遍历的元素范围
  • firstList:优先被点击
  • lastList:最后被点击
  • tagLimitMax:同祖先(同类型)的元素最多点击多少次
  • backButton:当所有元素都被点击后,默认后退控件定位
  • blackList:黑名单
  • maxDepth:遍历的最大深度

触发器

triggerActions:

  • 需要特定次数的触发动作
  • 通常用于处理弹框
  • xpath:指定具体按钮
  • action:动作
  • times:规则的使用次数

03-17 APP自动遍历测试技术_第2张图片

自动遍历过程

  1. 信息获取
  • 把当前APP的界面 dump 为 xml 结构
  1. 获取待遍历元素
  • 遍历范围 selectedList
  • 过滤黑名单、小空间、不可见控件 blackList
  • 重排控件顺序 firstList、lastList
  • 跳过已点击,以及跳过限制点击的控件 tagLimit
  • 根据匹配的规则执行 action
  1. 循环上面的步骤

日志记录

执行后,生成一个日志文件夹,保存所有的点击截图

其中日志记录信息都保存在 appcrawler.log 文件中

高级用法

生成 demo.yaml 文件: appcrawler --demo 

指定配置文件: -c 配置文件路径 

你可能感兴趣的:(测试工具测试)