AppCrawler 是由 seveniruby开源的一个自动遍历测试工具,谷歌有一个叫App Crawler 的遍历工具。AppCrawler具有很大的灵活性,可以自由控制测试页面,控件类型,测试深度等,且支持Android和IOS应用测试。

目录

  • AppCrawler安装
  • AppCrawler运行
    • 生成样板配置示例
  • 执行参数与配置文件
    • testcase
    • action
    • 自动遍历定制
    • 触发器
  • 自动遍历测试过程
  • 网页报告
  • 系列文章

AppCrawler开源地址:https://github.com/seveniruby/AppCrawler

appcrawler基于appium开发,底层引擎还引用了 adb、 macaca、 selenium

AppCrawler安装

AppCrawler工具以jar包方式发布,下载地址:https://pan.baidu.com/s/1dE0JDCH

appcrawler 2.4.0

  • java8
  • appium 1.8.x

AppCrawler运行

  • 启动 appium server
  • 启动模拟器或者连接真机
  • 开始自动遍历
  • appcrawler --capability
  • “appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivity Alias”

使用AppCrawler前需要启动appium server,然后启动模拟器或者连接真机。运行 java -jar appcrawler.jar 查看帮助。

D:\testing_tools\appcrawler>java -jar appcrawler-2.4.0-jar-with-dependencies.jar----------------
AppCrawler 2.4.0 [霍格沃兹测试学院特别纪念版]
Appium 1.8.1 Java8 tested
app爬虫, 用于自动遍历测试. 支持Android和iOS, 支持真机和模拟器
项目地址: https://github.com/seveniruby/AppCrawler
移动测试技术交流: https://testerhome.com
联络作者: seveniruby@testerhome.com (思寒)
致谢: 晓光 泉龙 杨榕 恒温 mikezhou yaming116 沐木--------------------------------Usage: appcrawler [options]-a, --app <value>        Android或者iOS的文件地址, 可以是网络地址, 赋值给appium的app选项-e, --encoding <value>   set encoding, such as UTF-8 GBK-c, --conf <value>       配置文件地址-p, --platform <value>   平台类型android或者ios, 默认会根据app后缀名自动判断-t, --maxTime <value>    最大运行时间. 单位为秒. 超过此值会退出. 默认最长运行3个小时-u, --appium <value>     appium的url地址-o, --output <value>     遍历结果的保存目录. 里面会存放遍历生成的截图, 思维导图和日志--capability k1=v1,k2=v2...appium capability选项, 这个参数会覆盖-c指定的配置模板参数, 用于在模板配置之上的参数微调-r, --report <value>     输出html和xml报告--template <value>       输出代码模板--master <value>         master的diff.yml文件地址--candidate <value>      candidate环境的diff.yml文件--diff                   执行diff对比-vv, --verbose           是否展示更多debug信息--demo                   生成demo配置文件学习使用方法--help
示例
appcrawler -a xueqiu.apk
appcrawler -a xueqiu.apk --capability noReset=true
appcrawler -c conf/xueqiu.json -p android -o result/
appcrawler -c xueqiu.json --capability udid=[你的udid] -a Snowball.app
appcrawler -c xueqiu.json -a Snowball.app -u 4730
appcrawler -c xueqiu.json -a Snowball.app -u http://127.0.0.1:4730/wd/hub#生成demo例子
appcrawler --demo#启动已经安装过的app
appcrawler --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"#从已经结束的结果中重新生成报告
appcrawler --report result/#新老版本对比
appcrawler --candidate result/ --master pre/ --report ./

生成样板配置示例

运行 java -jar appcrawler.jar --demo 会在当前目录下生成一个demo.yml文件。

通过编辑demo.yml文件实现app自动遍历的灵活定制。

D:\testing_tools\appcrawler>java -jar appcrawler-2.4.0-jar-with-dependencies.jar --demo
2020-11-18 20:47:04 INFO [AppCrawler$.86.main]
----------------
AppCrawler 2.4.0 [霍格沃兹测试学院特别纪念版]
Appium 1.8.1 Java8 tested
app爬虫, 用于自动遍历测试. 支持Android和iOS, 支持真机和模拟器
项目地址: https://github.com/seveniruby/AppCrawler
移动测试技术交流: https://testerhome.com
联络作者: seveniruby@testerhome.com (思寒)
致谢: 晓光 泉龙 杨榕 恒温 mikezhou yaming116 沐木--------------------------------2020-11-18 20:47:05 INFO [AppCrawler$.223.parseParams] use default appium address 4723
2020-11-18 20:47:05 INFO [AppCrawler$.230.parseParams] appium address = Some(http://127.0.0.1:4723/wd/hub)
2020-11-18 20:47:05 INFO [AppCrawler$.242.parseParams] result directory = 20201118204701
2020-11-18 20:47:07 INFO [AppCrawler$.286.parseParams] you can read D:\testing_tools\appcrawler\demo.yml for demo

执行参数与配置文件

  • capability设置:与 appium完全一致

    appPackage: "com. xueqiu.android"
    appActivity: ".view.WelcomeActivityAlias"
    app:
    appium: "http: //127.0.0.1:4723/wd/hub"
    noReset: true
    automationName: uiautomator2
    dontStopAppOnReset: true
    

  • testcase:用于启动app后的基础测试用例

  • selectedList:设定遍历范围

  • triggerActions:特定条件触发执行动作

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

    java -jar <appcrawler.jar路径> -c example.yml --capability appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias -o /tmp/xueqiu/
    

testcase

testcase的完整形态

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

testcase的简写形态

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

action

  • back 后退
  • backApp 回退到当前的app默认等价于back行为 可定制
  • monkey 随机事件
  • xxx()执行代码
    • Thread.sleep(3000)
    • 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结构
  2. 获取待遍历元素

    • 遍历范围 selectedList
    • 过滤黑名单 小控件 不可见控件 blackList
    • 重排控件顺序 firstList lastList
    • 跳过已点击+跳过限制点击的控件tagLimit
    • 根据匹配的规则执行 action
  3. 循环上面的步骤

网页报告

java -jar appcrawler-2.4.0-jar-with-dependencies.jar -c demo1.yml

自动遍历执行完成后,当前目录会生成测试报告index.html

打开index.html文件

--THE END--


系列文章

1、Appium 介绍及环境安装
2、selenium/appium 等待方式介绍
3、App控件定位:Android 控件介绍及元素定位方法
4、Appium元素定位(一)
5、Appium元素定位(二):UiAutomator定位
6、Appium控件交互
7、Android WebView测试
8、AppCrawler自动遍历测试
9、自动遍历测试之Monkey工具
10、App自动化测试工具Uiautomator2
11、App自动化测试工具Airtest
12、Android手机管理平台搭建:STF和atxserver2
13、Windows上实现iOS APP自动化测试:tidevice + WDA + facebook-wda / appium
14、iOS APP自动化:predicate定位
15、iOS APP自动化:class chain定位方法
16、使用facebook-wda进行iOS APP自动化测试


欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

AppCrawler自动遍历测试相关推荐

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

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

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

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

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

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

  4. 自动化测试的理想境界:AppCrawler自动遍历工具

    内容来源:2017 年 6 月 24 日,TesterHome联合创始人黄延胜在"Testwo第一届测试分享沙龙"进行<App crawler自动遍历工具>演讲分享.I ...

  5. android循环遍历assert,AppCrawler自动遍历工具

    前言 AppCrawler是一个基于自动遍历的app爬虫工具. 支持android和iOS, 支持真机和模拟器. 最大的特点是灵活性. 可通过配置来设定遍历的规则. AppCrawler地址 环境准备 ...

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

    monkey 是一个在模拟器或者设备上运行的程序,用于生成用户事件的伪随机流 安装 Android SDK 自带 使用 基本配置选项 adb shell monkey 100 # 对所有包随机操作 1 ...

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

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

  8. AppCrawler自动化遍历使用详解(版本2.1.0 )

    AppCrawle是自动遍历的app爬虫工具,最大的特点是灵活性,实现:对整个APP的所有可点击元素进行遍历点击. 优点: 1.支持android和iOS, 支持真机和模拟器 2.可通过配置来设定遍历 ...

  9. android 回归测试,自动遍历回归测试工具

    一.Monkey 随机点击200个事件:adb shell monkey -p com.xxxxx.android  200 每秒10个随机事件:adb shell monkey -p com.xue ...

最新文章

  1. 管道流 pipedinputstream
  2. librdkafka介绍文档与配置参数
  3. jQuery-动画点击淡化消失
  4. java反射减少servlet_利用java 反射机制来实现一个servlet处理多种请求
  5. 云资源管理有助于减少服务滥用和开支
  6. php+js 表单过期
  7. python数值积分_python实现数值积分的Simpson方法实例分析
  8. 是逻辑运算符 java_跟我学java编程—Java逻辑运算符
  9. Exchange 2010 Search Problem
  10. python最适合做什么-python适合做什么开发_python未来发展怎么样
  11. IDEA多款主题颜色推荐!炫酷经典!
  12. 阿里云ECS更换系统时提示主机名不支持windows镜像要求的解决方法
  13. 跳槽吗?4月7日18点6大细分领域4家优质名企招聘情报来了
  14. 编写一个程序对Largest函数进行测试,找出一组数据的最大值
  15. CDN加速与DDOS防御
  16. java计算机毕业设计实验室耗材管理系统源程序+mysql+系统+lw文档+远程调试
  17. 学Python,从入门到编程
  18. centos安装python3.8.1_centos6.6下安装python3.8.1后报错?
  19. 安装打印机后默认不是中文的原因及解决方法
  20. 京东2016校园招聘笔试题

热门文章

  1. 亿赞普:大数据成就精准营销
  2. error: invalid initialization of reference of type ‘plb::MultiContainerBlock3D’ from expression of
  3. 定时自动开启和关闭Azure虚拟机
  4. 使用flex实现圣杯布局,就是这么简单
  5. b mino为什么退出block_如何看待zico解约,block b后续会怎样发展?
  6. 微信三方开发平台开发模式下被动回复用户消息
  7. ES2 知识-Es入门
  8. mysql游标循环的使用_实例详解mysql游标循环的使用
  9. h3c交换机限制端口访问_H3C交换机典型访问控制列表(ACL)配置实例
  10. 我的世界服务器怎么修改地图,《我的世界手机版》pocketmine服务器怎么更换地图?...