AppCrawler自动遍历测试

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

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自动化测试


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

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
自动遍历app测试是一种通过使用自动测试工具来模拟用户操作和验证app功能的方法。在这种测试中,通过编写测试脚本或配置文件,可以实现自动启动应用程序、执行一系列测试用例和断言,并生成测试报告。 在自动遍历app测试中,有几个关键的步骤和概念需要了解: 1. 配置文件:配置文件是指通过指定一些参数和设置来定义测试的方式和范围的文件。它可以包含应用程序的包名、启动的activity、appium的地址等信息[2]。 2. 测试用例:测试用例是指在自动测试过程中要执行的一系列步骤和验证的操作。在配置文件中,可以定义测试用例的范围、条件触发和执行动作的设置。 3. 动作:动作是指在测试用例中要执行的操作,例如点击、滑动、输入等。在自动遍历app测试中,可以使用XPath定位元素并执行相应的动作[4.8]。 4. 自动测试工具:在自动遍历app测试中,可以使用一些自动测试工具来实现测试。一些常用的工具包括appcrawlerappium等。 要进行自动遍历app测试,你可以按照以下步骤进行: 1. 安装所需的环境和工具:首先,需要确保你已经安装了Java开发环境(JDK)和相应的自动测试工具,例如appcrawler。你还需要安装appium和adb等底层引擎[3.4.2]。 2. 配置测试环境:在配置文件中,设置好应用程序的包名、启动的activity、appium的地址等信息。可以根据需要设置其他参数,例如设备的capabilities。 3. 编写测试用例:根据应用程序的功能和需求,编写相应的测试用例。在测试用例中,定义测试的范围、条件触发和执行动作的设置。可以使用XPath定位元素并执行相应的动作[4.8]。 4. 执行测试:使用命令行或脚本执行自动遍历app测试。根据配置文件和测试用例,自动测试工具将启动应用程序,并按照定义的测试用例执行相应的动作和验证。执行过程中,工具会生成测试报告,记录测试结果和错误信息。 总结起来,自动遍历app测试是一种通过编写配置文件和测试用例,使用自动测试工具来模拟用户操作和验证app功能的方法。通过定义测试范围、条件触发和执行动作的设置,可以实现自动执行测试并生成测试报告。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值