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/zhangzhao4444/Maxim

AppCrawler

https://github.com/seveniruby/AppCrawler

环境要求

  • java 8
  • appium 1.8.x

安装方法

  • 直接下载:https://pan.baidu.com/s/1dE0JDCH
  • 从源代码编译

执行参数

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

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

自动化支持–testcase

testcase 的完整形态

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

testcase 的简写形态

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

动作支持–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:规则的使用次数

自动遍历过程

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

日志记录

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

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

高级用法

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

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

03-17 APP自动遍历测试技术相关推荐

  1. 怎么通过name配置button_利器 | AppCrawler 自动遍历测试实践(二):定制化配置

    终于到了"啥也不干躺在家就能给社会做贡献"的时候,但有梦想的测试人从不会让自己的生活变得无聊!与其宅在家里数瓜子壳,还不如利用整块时间提升测试开发技能! 定制化配置 自动遍历测试技 ...

  2. 初探自动遍历测试工具-AppCrawler

    1.简介 1.1 概要 AppCrawler是由TesterHome联合创始人黄延胜(思寒)大佬开源的一个项目,通过名字我们大概也能猜出个方向,Crawler是爬虫的意思,App的爬虫,遍历App:官 ...

  3. 利器 | AppCrawler 自动遍历测试工具实践(一)

    简介 1.1 概要 AppCrawler 是由霍格沃兹测试学院校长思寒开源的一个项目,通过名字我们大概也能猜出个方向,Crawler 是爬虫的意思,App 的爬虫,遍历 App : 官方 GitHub ...

  4. AppCrawler自动遍历测试

    AppCrawler 是由 seveniruby开源的一个自动遍历测试工具,谷歌有一个叫App Crawler 的遍历工具.AppCrawler具有很大的灵活性,可以自由控制测试页面,控件类型,测试深 ...

  5. 自动遍历测试方法及常见技术

    文章目录 一.常见问题 二.测试痛点 三.思考与改进 四.常见的自动遍历工具 五.Maxim的使用 5.1 环境预备 5.2 运行方法 5.3 参数说明 5.4 高级用法详解 5.5 常用的配置 5. ...

  6. App/H5/小程序测试技术

    本节大纲 ØApp测试概述与流程 ØApp测试策略详解 ØH5测试与小程序测试概述 ØH5测试与小程序测试技术详解 01 App测试概述与流程 定义 1.手机测试 Ø 手机测试是一个很大的题目,涉及到 ...

  7. 06- 移动端APP兼容性测试以及APP兼容性测试手机选择与云测试技术

    在开始测试APP之前,应该考虑什么问题?或者如何选择设备?多少部手机测试兼容性最佳? 兼容性测试手机数量:主测手机 1 ,2(根据人员),辅助测试手机:用于兼容性测试.(50-60台最佳,至少5-20 ...

  8. APP推广助手,自动邀请码技术分享

    自动邀请码技术在APP中起的作用,一句概括:追踪用户来源. 那么追踪用户来源的意义何在呢? 对于开发人员来可能并不关心这些问题,但是我们的APP开发出来,必定会面临一个环节,那就是推广.追踪用户来源作 ...

  9. 【软件测试03】APP测试理论集合

    目录 APP测试点: / 1 /软件权限 / 2 /安装与卸载安全性 / 3 /数据安全性 / 4 /图形测试 / 5 / 功能测试 / 6 / 运行 / 7 /应用的前后台切换 / 8 /免登录 / ...

最新文章

  1. 别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?
  2. 无言的鞭策:日本20年19人获自然科学诺奖
  3. css选择器匹配没有属性x的元素[重复]
  4. Two Paths CodeForces - 14D(暴力+树的直径)
  5. POJ1201 区间
  6. appium 设置参数
  7. 开源web应用防火墙 - Naxsi
  8. python随机化序列与设置随机种子
  9. JQuery使用deferreds串行多个ajax请求
  10. unity3D协程(Coroutine)原理深入剖析
  11. 建立 CLR Stored Procedure/Function 的小範例
  12. Atitit 字符串模板与 字符串插值 目录 1.1. 字符串插值是将字符串中的占位符替换为局域变量的过程 1 1.2. 模板字面量 是允许嵌入表达式的字符串字面量 1 1.3. 格式化字符串[编辑
  13. html+div+css+jquery+javascript的关系
  14. 如何解决Win10应用商店代码:0x80131500错误
  15. VR专业名字解释_羊豆豆_新浪博客
  16. 使用XUL开发跨平台桌面应用
  17. 软件测试经理,高级管理退休后,给我小白指点面试迷津!
  18. PAZU -- 4Fang WEB 打印控件
  19. hbase1.xx版本出现元数据不一致情况处理
  20. 人和计算机比赛下棋结果,人机大战趣谈:会下棋的电脑 像人一样聪明

热门文章

  1. 解决重启VCSA 6.0,访问vsphere web client提示:503 Service Unavailable错误
  2. 什么事,是你当了领导才明白的?(转)
  3. ESXi 内存分配原理
  4. VMware vSphere 6.7配置最大更改
  5. Spring Boot学习总结(19)——使用Redisson实现分布式锁
  6. Windows学习总结(17)——Windows 15个重要运行命令
  7. 专访|从程序员到架构师:交流和分享最能让技术人进步
  8. Maven学习总结(32)——Maven项目部署到Tomcat8中
  9. 小米网抢购系统开发实践
  10. pyqt——布局管理