第十期_自动遍历测试_20190905

往期参考

monkey

maxim


adb push framework.jar /sdcard
adb push monkey.jar /sdcard

adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.xueqiu.android --uiautomatormix --running-minutes 60 -v -v

appcrawler

以2.4.0为例

MacBook-Pro-3:appcrawler seveniruby$ java -jar appcrawler-2.4.0-jar-with-dependencies.jar

----------------
AppCrawler 2.4.0 [霍格沃兹测试学院特别纪念版]
Appium 1.8.1 Java8 tested
app爬虫, 用于自动遍历测试. 支持Android和iOS, 支持真机和模拟器
项目地址: https://github.com/seveniruby/AppCrawler
移动测试技术交流: https://testerhome.com
联络作者: seveniruby@testerhome.com (思寒)
致谢: 晓光 泉龙 杨榕 恒温 mikezhou yaming116 沐木

--------------------------------


Usage: appcrawler [options]

  -a, --app <value>        Android或者iOS的文件地址, 可以是网络地址, 赋值给appium的app选项
  -e, --encoding <value>   set encoding, such as UTF-8 GBK
  -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报告
  --template <value>       输出代码模板
  --master <value>         master的diff.yml文件地址
  --candidate <value>      candidate环境的diff.yml文件
  --diff                   执行diff对比
  -vv, --verbose           是否展示更多debug信息
  --demo                   生成demo配置文件学习使用方法
  --help
示例
appcrawler -a xueqiu.apk
appcrawler -a xueqiu.apk --capability noReset=true
appcrawler -c conf/xueqiu.json -p android -o result/
appcrawler -c xueqiu.json --capability udid=[你的udid] -a Snowball.app
appcrawler -c xueqiu.json -a Snowball.app -u 4730
appcrawler -c xueqiu.json -a Snowball.app -u http://127.0.0.1:4730/wd/hub

#生成demo例子
appcrawler --demo

#启动已经安装过的app
appcrawler --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"

#从已经结束的结果中重新生成报告
appcrawler --report result/

#新老版本对比
appcrawler --candidate result/ --master pre/ --report ./

quick start

生成配置文件

#遍历雪球
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"

#生成自己的配置文件示例
java -jar appcrawler-2.4.0-jar-with-dependencies.jar  --demo

配置文件的说明可参考:https://github.com/seveniruby/AppCrawler/blob/2.3.1/src/main/scala/com/testerhome/appcrawler/CrawlerConf.scala

capability

跟appium一模一样

自动化用例

testcase:
  name: "TesterHome AppCrawler"
  steps:
  - xpath: 行情
  - xpath: 龙虎榜
    then:
    - //*[contains(@text,'沪深上榜个数')]

错误日志

2019-09-05 21:19:50 INFO [AutomationSuite.57.$anonfun$new$6] //*[contains(@text,'沪深上榜个数')]
[ ]
- run steps *** FAILED ***
  //*[contains(@text,'沪深上榜个数')] 不存在
  0 was not greater than 0 (in Checkpoint) at AutomationSuite.scala:58 (AutomationSuite.scala:65)

遍历配置

selectedList:
- xpath: "//*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10]"
- xpath: "//*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10]"
firstList: []
lastList:
- xpath: "//*[@selected='true']/..//*"
- xpath: "//*[@selected='true']/../..//*"

触发器

triggerActions:
- xpath: 净买入
  times: 2
- xpath: 总成交
  times: 2

断言

  • then断言
  • 全局断言
  • 人工检查浏览截图
  • 编程检查dom结构
  • diff

课后作业

遍历雪球行情页的所有二级页面,把整个遍历相关的配置贴到回复里,把遍历的结果报告截图回复到帖子里