爬虫工具
通俗讲,其实也是一款智能自动遍历工具。
优势
操作非常简单,因为无需编写或维护任何代码。此外,您还可以在各种设备上运行该工具,以查找崩溃、视觉问题或性能问题
一、AppCrawler-国产的👍👏👏👍
有专门一个社区在提供答疑,也有很多问题处理方案,大家都可以参考
参考:
- https://ceshiren.com/t/topic/14737
- https://blog.csdn.net/mvksfg/article/details/73808364
- http://testerhome.com/topics/29447
- https://blog.csdn.net/weixin_43291944/article/details/97623170
特色
- 支持多平台,Android、iOS
- 可配置遍历规则
- 开源 项目地址
- 执行完成还会有测试报告
环境配置
- 保证PC端Android SDK环境配置
- 保证JDK环境配置
- 保证Appium环境
- 保证有连接执行设备,可以真机,也可以模拟器
原理
分析界面上控件量,得出可操作控件 然后通过递归遍历所有可操作控件
public void appCrawler(){
0、确认当前ActivityNum是否大于maxDepth:大于,执行back return
1、分析界面上控件量,得出可操作控件
2、获取selectedList设置的遍历范围
3、过滤blackList设置的黑名单
4、根据firstList和lastList,针对可操作控件重新排序
5、过滤已经操作过的控件,和过滤超过操作限制数(tagLimitMax)的控件
6、根据匹配规则执行动作
7、appCrawler()
}
使用
爬虫工具执行前,且保证模拟器或者真机已连接
1、生成jar包
从github下载源码,执行下述命令编译源码
mvn clean package -DskipTests
2、启动Appium
- 如果PC端安装的是server,直接在终端输入
appium 即可启动
appium
3、开启爬虫旅程
- 生成默认配置文件
java -jar appCrawler.jar --demo
生成的默认配置文件,我们可以参考配置
- capability配置:可参考Appium cap,这里是保持一致的
- testcase配置:用于启动App后执行的基础测试用例,即爬虫测试前的前置动作
比如,想要指定进入特定界面后才执行爬虫操作,那这个进入特定界面就可以做一个基础测试用例的配置
- selectedList:设定遍历范围,默认全局
- triggerActions:设置当特定条件触发特殊场景出现时,需要执行指定的动作
比如进入登录页我们可以触发登录操作;也可以是某个弹框出现了,触发关闭弹框操作
二、Google App Crawler-官方提供的遍历工具
可参考官方文档应用抓取工具
环境配置
- 保证PC端Android SDK环境配置
- 保证JDK环境配置
- 保证有连接执行设备,可以真机,也可以模拟器
- 下载 App Crawler
命令
设备上已安装上测试App
java -jar crawl_launcher.jar \
--app-package-name com.xueqiu.android \
--android-sdk /Users/hongni/Library/Android/sdk \
--timeout-sec 600
没有安装测试App,可以使用--apk-file 参数指定应用路径,使其安装执行
java -jar crawl_launcher.jar \
--apk-file /Users/hongni/ApkProjects/appTestApk/xueqiu.apk \
--android-sdk /Users/hongni/Library/Android/sdk \
--timeout-sec 600
参数
参数 | 说明 |
---|
–android-sdk path | 指定 Android SDK 的路径(必填 ) | –apk-file file | 指定应用 APK 的路径,应用抓取工具随后会对其进行安装和抓取(未填写--app-package-name 时,必填 ) | –app-package-name name | 指定应用的软件包名称。当您的应用已安装在设备上且无需重新安装时,使用此选项 (未填写 --apk-file时,必填 ) | –key-store path | 指定用于为您的应用和抓取工具 APK 签名的密钥库的路径(被测应用需要特定签名才能正常运行时,必填 ) | –key-store-password password | 指定您为 --key-store 选项提供的密钥库的密码(如果已指定 --key-store 时,必填 ) | –timeout-sec timeout | 指定抓取的超时(以秒为单位)( 默认60 秒 ) |
|