App测试学习:自动遍历测试

一、目的

1、降低用例维护成本

2、尽可能的自动化覆盖回归业务

二、常见遍历工具与技术

  • google android原生monkey、app crawler
  • 百度smartmonkey
  •  腾讯newmonkey
  • vigossjji smart monkey
  • macaca的NoSmoke
  • 头条的zhangzhao maxim
  • seveniruby appcrawler

三、android monkey

是一个在模拟器或设备上运行的程序,用于生成用户事件的伪随机流

优点:运行速度快、需要的编码少

缺点:随机事件不受控制

常用命令

adb shell monkey 100 对所有包随机操作

adb shell monkey -p com.xueqiu.android 100 对指定包

adb shell monkey -p com.xueqiu.android -s 20 80 时间种子(相同参数执行的动作一样,可用于回溯问题)

adb shell monkey -p com.xueqiu.android -vv -s 20 80 记录详细日志

adb shell monkey -p com.xueqiu.android --throttle 5000 100 时间延迟

adb shell monkey -p com.xueqiu.android --pct-touch 10 1000 指定事件时间百分比

adb shell monkey -p com.hundsun.winner.pazq  -vvv --pct-touch 80  200 >monkey.txt 输入日志信息

常用事件

--pct-touch:触摸事件,比如点击

--pct-motion:动作事件,比如滑动(直线)

--pct-trackball:轨迹事件,比如移动+点击,曲线滑动

--pct-majornav:主要导航事件,比如回退按键、菜单按键

用bash脚本自动执行

#monkey.sh
#! /bin/bash #用``反引号包含的当做命令运行 devices=`adb devices | grep 127.0.0.1 |awk '{print $1}'` for device in $devices; do { nohup adb -s $device shell monkey -p com.hundsun.winner.pazq -vv --throttle 200 400 >result.txt & } done

然后在git bash命令行窗口中执行:bash -x monkey.sh

四、maxim

项目地址:https://github.com/zhangzhao4444/Maxim

简单使用:

  • 支持 Android 5,6,7,8,真机及模拟器; Android 5不支持 dfs mode
  • 将 framework.jar , monkey.jar push 到手机上某个目录中,建议/sdcard
adb push framework.jar /sdcard
adb push monkey.jar /sdcard

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

  • tv.panda.test.monkey.Monkey: monkey入口类,不要修改
  • com.panda.videoliveplatform: 被测app包名,需要修改
  • --uiautomatormix: 遍历策略

策略

  1. 模式 DFS --uiautomatordfs 增加深度遍历算法

  2. 模式 Mix --uiautomatormix 直接使用底层accessibiltyserver获取界面接口 解析各控件,随机选取一个控件执行touch操作。 同时与原monkey 其他操作按比例混合使用 默认accessibilityserver action占比50%,其余各action分剩余的50% accessibilityserver action占比可配置 --pct-uiautomatormix n

  3. 模式Troy --uiautomatortroy 控件选择策略按max.xpath.selector配置的高低优先级来进行深度遍历

  4. 保留原始monkey

  5. 总运行时长 --running-minutes 3 运行3分钟

  6. --act-whitelist-file /sdcard/awl.strings 定义白名单 --act-blacklist-file

其他参数与原始monkey一致

其他

1、对于需要登录才能进入的app,可以先手动进行登录;

2、登录后可能会自动退出,可以屏蔽掉登出按钮,或者通过脚本方式执行,屏蔽掉该登出坐标。

 五、appcrawler

开源地址:https://github.com/seveniruby/AppCrawler

1、下载最新版本的appcrawler包;

2、启动appium,启动并连接模拟器

3、基础使用

java -jar appcrawler-2.4.0-jar-with-dependencies.jar命令用于查看帮助文档

启动已经安装过的app,这里以平安证券app为例

 java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.hundsun.winner.pazq,appActivity=.ui.home.activity.MainContainerActivity"

执行完成后会生成以执行时间命名的日志文件,日志中包含每一步的截图,会用红框标识出点击的位置:

 其中log日志文件中可以按照index索引进行解读,包含每步的动作、页面名称等信息

4、进阶使用(官方社区上有完整的说明https://ceshiren.com/t/topic/3788)

在步骤3中命令后加上--demo参数生成配置模板文件, java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.hundsun.winner.pazq,appActivity=.ui.home.activity.MainContainerActivity" --demo

 

原文地址:https://www.cnblogs.com/canghai1024/p/13708741.html