Monkey工具
参考连接:https://developer.android.com/studio/test/monkey
参数 | 用法 | 介绍 |
---|---|---|
-p | -p com.xueqiu.android | 包名 |
-s | -s 100 | 种子相同每次跑monkey的次序是一样的 |
–throttle | –throttle 500 | 事件之间时间间隔 单位毫秒 |
–ignore-crashes | –ignore-crashes | 发生crash继续执行 |
–ignore-timeouts | –ignore-timeouts | 发生ANR继续运行 |
–pct-<事件类别> <百分比> | –pct-appswitch 80 | 不同事件的占比调整 |
adb shell monkey -p com.xueqiu.android -vvv 500 -s 100
adb shell monkey -p com.xueqiu.android -vvv --pct-motion 100 --throttle 1000 20
遍历测试
- macaca nosmoke https://github.com/macacajs/NoSmoke
- appium appcrawler https://github.com/seveniruby/AppCrawler
下载地址:http://10.130.33.185:8000/appcrawler-2.4.0-jar-with-dependencies.jar
源代码编译
git clone https://github.com/seveniruby/AppCrawler.git
git checkout 2.3.1
#如果有更新的话
git pull
#编译打包
mvn clean compile assembly:single
java -jar target/appcrawler-2.4.0-jar-with-dependencies.jar
YAML文件介绍: YAML 语言教程 - 阮一峰的网络日志
appcrawler配置说明:https://github.com/seveniruby/AppCrawler/blob/2.3.1/src/main/scala/com/testerhome/appcrawler/CrawlerConf.scala
AppCrawler
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"
配置文件:
---
pluginList: []
saveScreen: true
#报告标题
reportTitle: "第三期演练"
waitLoading: 500
waitLaunch: 6000
showCancel: true
maxTime: 10800
#深度控制
maxDepth: 2
#appium的设置
capability:
appPackage: com.xueqiu.android
appActivity: .view.WelcomeActivityAlias
noReset: "true"
fullReset: "false"
appium: "http://127.0.0.1:4723/wd/hub"
#启动时候的过程控制
testcase:
name: "TesterHome AppCrawler"
steps:
- xpath: "//*"
action: "Thread.sleep(5000)"
#范围
selectedList:
- xpath: //*[@resource-id!='' and @clickable='true']/android.widget.ImageView
- xpath: //*[contains(@class, 'Image') and @resource-id!='' and @clickable='true']
- xpath: //android.widget.TextView[string-length(@text)<5 and @resource-id!='' ]
#顺序选择
firstList:
- xpath: //*[@resource-id!='' and @clickable='true']/android.widget.ImageView
- xpath: //*[contains(@resource-id, "tv_search")]
lastList:
- xpath: "//*[@selected='true']/../..//*"
backButton:
- given: []
when: null
then: []
xpath: "Navigate up"
action: null
actions: []
times: 0
#触发器
triggerActions:
- xpath: //*[contains(@class, "Edit")]
action: alibaba
times: 2
xpathAttributes:
- "name"
- "label"
- "value"
- "resource-id"
- "content-desc"
- "instance"
- "text"
sortByAttribute:
- "depth"
- "list"
- "selected"
findBy: "default"
defineUrl: []
baseUrl: []
appWhiteList: []
urlBlackList: []
urlWhiteList: []
blackList:
- given: []
when: null
then: []
xpath: ".*[0-9]{2}.*"
action: null
actions: []
times: 0
beforeRestart: []
beforeElement:
- given: []
when: null
then: []
xpath: "/*"
action: "Thread.sleep(500)"
actions: []
times: 0
afterElement: []
afterPage: []
afterPageMax: 2
tagLimitMax: 2
tagLimit:
- given: []
when: null
then: []
xpath: "确定"
action: null
actions: []
times: 1000
- given: []
when: null
then: []
xpath: "取消"
action: null
actions: []
times: 1000
- given: []
when: null
then: []
xpath: "share_comment_guide_btn_name"
action: null
actions: []
times: 1000
assertGlobal: []
半自动化
dontStopAppOnReset: true
备注
- 2.1.3与2.3.x版本配置不兼容,–demo参数可以生成各自的配置文件
- firstList等配置不同,比如selectedList在2.1.3是个字符串数组,2.3.1的selectedList是个对象数组
- 2.3.x windows上可能运行有问题
作业1
简单的遍历雪球首页
作业2
自动登陆,密码错也没关系
作业3
遍历雪球的行情页