开源项目地址:https://github.com/erveniruby/AppCrawler
一,简介
(1)AppCrawler是一个基于自动遍历的app爬虫工具. 支持android和iOS, 支持真机和模拟器. 最大的特点是灵活性. 可通过配置来设定遍历的规则.(指哪打哪)
(2)环境要求
- java8
- appium1.8x
二,安装并运行
(1)安装AppCrawler
1.直接下载:最新版本下载地址: https://pan.baidu.com/s/1dE0JDCH
2.从源代码编译
(2)运行:
- 初次运行(需要先启动appium)
启动appium:
appium --session-override
启动appcrawler:
java -jar appcrawler-2.4.0-jar-with-dependencies.jar
- 启动并遍历已经安装过的app
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability “appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias”
(3)生成demo.yml及配置参数解析
1,生成配置文件demo.yml:
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --demo
2,capability: 与appium的capability一致
3,testcase:
- testcase的先决条件:
given 所有的先决条件
when 先决条件成立后的行为
then 断言集合,通过xpath断言集合在不在 - testcase的简写形态:
xpath对应when里的xpath
action对应when里的action - 样例: 点击"我的"页面后,从下往上滑动,再点击"设置"按钮
testcase:
name: "testcase appcrawler"
steps:
- xpath: 我的
action: click
- xpath: //*
action: driver.swipe(0.5, 0.9, 0.5, 0.1)
- xpath: 设置
action: click
4,selectedList:需要被遍历的元素范围
5,firstList:优先被点击
6,lastList:最后被点击
规定谁先谁后
7,tagLimitMax:同类型控件最多点击多少次
8,backButton:当所有都被点击后,最后再点击。默认后退控件定位(返回按钮)
9,blackList :黑名单(注销),加入进即表示不点击这个按钮
10,maxDepth: 6 ,改为1的话,只要离开这个页面就自动返回来
11,triggerActions: 触发器
- 需要特定次数的触发动作
- 通常用于处理弹窗
xpath:制动具体按钮
acthon:动作
times:规则的使用次数 - 样例:点击按钮,触发triggerActions关闭登录页面
testcase:
name: "testcase appcrawler"
steps:
- xpath: "//*[@resouce-id='com.xueqiu.andriod:id/post_status']"
action: click
triggerActions:
name: "testcase appcrawler"
steps:
- xpath: "//*[@resouce-id='com.xueqiu.andriod:id/iv_close']"
action: click
四.xpath与action
1, 定位模式XPATH
- xpath 都可以
//[@resource-id=‘xxx’]
//[contains(@text, ‘密码’)] - 正则 表达式也可以(^表示开头 .表示任一多个字符)
^确定$
^.输入密码 - 包含(只需给出按钮包含元素的一个字或者多个字即可),例如:输入如下text
密码
输入
请
2, action动作支持
- click
- “”只是截图记录
- back后退
- backApp 回退到当前的app默认等价与back行为 可定制
- monkey 随机事件
- 执行代码:
Thread.sleep(3000)
driver.swipe(0.9,0.5,1.5,1.2)
三,使用 Appcrawler
先生成配置文件 使用 “–demo”,生成 <demo.yaml>
打开配置文件,修改符合需求的测试用例
执行java -jar … -c demo1.yml(需先进入到jar包所在的目录下,才能运行)
人工检测浏览截图
编程检查Dom结构