AppCrawler——安卓端的自动化遍历测试

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

 

为什么要进行自动化遍历测试?

自动遍历的价值

自动化探索测试, 遍历基本的界面, 了解主要界面的可用性. 比如兼容性, 基本功能

利用遍历获取app的加载时间和性能数据, 需要借助其他的性能数据抓取工具,比如OneApm, NewRelic

利用遍历验证app的内存泄漏以及稳定性等功能, 需要借助LeakCanary和MLeaksFinder

自动化回归测试.

UI diff 验证新老版本的功能差异. 并识别细节的问题

抓取接口请求 辅助验证一些模块基本接口, 并辅助分析接口调用流程.

用了appcrawler有什么优点,可以得到什么样的收益?

  • 各大云市场上自动遍历功能都多有限制企业无法自由定制.
  • 可通过配置来设定遍历的规则,解决monkey等工具可控性差的缺点
  • 发现深层次的UI兼容性问题
  • 通过新老版本的diff可以发现每个版本的UI变动范围

 

这个工具可以在时间不允许的情况下测试,遍历软件的所有的控件(把每个按钮都点到),最起码能保证,不会出现crash等现象,能减少一些不必要的工作量;然后测试人员可以把主要的精力放在测试主要的功能点上;

appcrawler的缺点?

该工具无法处理弹框,广告之类的h5东西,因为对应的toch事件不能触发恰好触发到对应的点;

 

启动参数介绍

java -jar appcrawler.jar

app爬虫, 用于自动遍历测试. 支持Android和iOS, 支持真机和模拟器

 

Usage: java -jar appcrawler.jar [options]

 

-a, --app <value> Android或者iOS的文件地址, 可以是网络地址, 赋值给appium的app选项

-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报告

-vv, --verbose 是否展示更多debug信息

--help

示例

java -jar appcrawler.jar -a xueqiu.apk

java -jar appcrawler.jar -a xueqiu.apk --capability noReset=true

java -jar appcrawler.jar -c conf/xueqiu.yaml -p android -o result/

java -jar appcrawler.jar -c xueqiu.yaml --capability udid=[你的udid] -a Snowball.app

java -jar appcrawler.jar -c xueqiu.yaml -a Snowball.app -u 4730

java -jar appcrawler.jar -c xueqiu.yaml -a Snowball.app -u http://127.0.0.1:4730/wd/hub

java -jar appcrawler.jar --report result/

 

安装依赖

mac下安装appium

#安装node和依赖

brew install node

brew install ideviceinstaller

brew install libimobiledevice

#安装appium

npm install -g appium

#检查appium环境正确性

appium-doctor

真机或者模拟器均可. 确保adb devices可以看到就行

 

启动appium

使用此工具需要一定的appium基础知识, 请自行google.

目前已经在appium 1.5.3下做过测试

启动appium

appium --session-override

 

运行

工具以jar包方式发布,需要java8以上的运行环境

java -jar appcrawler.jar

 

快速遍历

#查看帮助文档

java -jar appcrawler.jar

#运行测试

java -jar appcrawler.jar -a xueqiu.apk

 

配置文件运行方式

#配置文件的方式运行

#Android测试

java -jar appcrawler.jar -c conf/xueqiu.yaml -a xueqiu.apk

#iOS测试

java -jar appcrawler.jar -c conf/xueqiu.yaml -a xueqiu.app

 

输出结果

默认在当前目录下会生成一个包含输出结果的目录, 以时间命名. 包含了如下的测试结果

  • 所有遍历过的控件组成的思维导图
  • 包含了遍历覆盖的html报告
  • 用于做diff分析的数据文件
 

示例

posted @ 2020-06-19 12:02  hongliangsam  阅读(963)  评论(0编辑  收藏  举报