1、项目介绍
与其他框架的关系
- appcrawler底层引擎
- appium
- adb
- macaca
- selenium
- appium底层引擎
- wda
- uiautomator2AppCra
AppCrawler环境要求
- appcrawler 2.5
- java8 appium 1.8.x
- 安装方法
- 直接下载
- 从源代码编译
- 备注
- 后面提到的appcrawler命令或者java -jar appcrawler.jar皆表示用jar -jar命令执行对应版本的jar包文件,比如
java -jar appcrawler-2.4.O-jar-with-dependencies.jar
- 后面提到的appcrawler命令或者java -jar appcrawler.jar皆表示用jar -jar命令执行对应版本的jar包文件,比如
2、快速启动quick_start
- 启动appium
- 启动模拟器或者连接真机
- 开始自动遍历
-
appcrawler --capability
“appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias”
生成样板配置示例
java -jar appcrawler.jar --demo
- 会在当前目录下生成一个demo.yml
常用事件
- 参数模式
java -jar <appcrawler.jar路径l --demo
appcrawler --capability “appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"
- 配置文件[推荐方式]
java -jar <appcrawler.jar路径\
-c example.yml\
--capability 'appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias'\
-o /tmp/xueqiu/1
3、执行参数与配置文件
- capability设置:与appium完全一致
- testcase:用于启动app后的基础测试用例
- selectedList:遍历范围设定
- triggerActions:特定条件触发执行动作的设置
- 执行参数比配置文件优先级别高
Capability设置示例
appPackage: "com.xueqiu.android”
appActivity: ".view.WelcomeActivityAlias"
app:
appium: "http://127.0.0.1:4723 /wd/hub"
Reset: true
automationName: uiautomator2
dontStopAppOnReset: true
自动化支持testcase
- testcase的完整形态
- given:所有的先决条件
- when:先决条件成立后的行为
- then:断言集合
- testcase的简写形态
- xpath:对应when里的xpath
- action:对应when的action
autoCrawl: true
testcase:
name: demo1
steps:
- when:
xpath://*
action: driver.swipe(0.5,0.8,0.5,0.2)
- when:
xpath: //*
action: driver.swipe(0.5,0.2,0.5,0.8)
- xpath:自选
action: click
then:
- //*[contains(@text,"港股")]
动作支持Action
- ""只是截图记录
- back 后退
- backApp 回退到当前的app 默认等价于back行为 可定制
- monkey 随机事件
- xxx() 执行代码
- Thread.sleep( 3000)
- driver.swipe( 0.9, 0.5, 0.1 , 0.5 )
- click
- longTap
- 非以上所有行为是输入xx ddd
自动遍历支持
- selectedList:需要被遍历的元素范围
- firstList:优先被点击
- lastList:最后被点击
- tagLimitMax:同祖先(同类型)的元素最多点击多少次
- backButton:当所有元素都被点击后默认后退控件定位
- blackList:黑名单
- maxDepth: 6 遍历的最大深度
触发器
- triggerActions:
- 需要特定次数的触发动作
- 通常用于处理弹框
- xpath:指定具体按钮
- action:动作
- times:规则的使用次数
triggerActions:
- xpath: 请输入手机号
action:15600534760
times: 1
- xpath: //*[@password='true']
action: insane12345678
times: 1
- xpath: button_next
action: click
times: 1
log文件解读
image.png
4、自动遍历过程
- 信息的获取:
- 把当前app的界面dump为xml结构
- 获取待遍历元素
- 遍历范围selectedList
- 过滤黑名单 小控件 不可见控件 blackList
- 重排控件顺序 firstList lastList
- 跳过已点击+跳过限制点击的控件tagLimit
- 根据匹配的规则执行action
- 循环上面的步骤
5、实战
初步使用
- 命令行输入:
java -jar appcrawler-xxx.jar
,便可查看其命令
image.png - 命令行中启动已安装的app:
java -jar appcrawler-xxx.jar --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"
,开始运行app并生成日志
image.png - 停止运行:
ctrl + c
- 查看日志文件:
-
操作记录图片:会自动圈出点击的位置
image.png -
appcrawler.log,log日志:
image.png
image.png
-
高级用法
-
java -jar appcrawler-xxx.jar --demo
,生成demo例子,并在当前目录生成demo.yml
文件
image.png -
修改demo.yaml文件
- 加入capability
-
加入指定的定位元素
image.png
运行:
java -jar appcrawler-xxx.jar -c demo.yml
-
指定selectedlist
image.png -
指定遍历顺序:先遍历下方再遍历上方
image.png
image.png
-
查看执行报告:index.html
image.png
image.png
下一节:多设备管理平台STF。