zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    【Lintcode】91 最小调整代价
    【LintCode】29 交叉字符串
    十二、动态规划
    HttpClient的简单使用
    ajax跨域请求
    session共享
    八大排序算法
    MAC 脚本批量启动应用
    知识点整理-bio、nio的简单demo
    知识点整理-数组如何实现随机访问?
  • 原文地址:https://www.cnblogs.com/canghai1024/p/13708741.html
Copyright © 2011-2022 走看看