monkey&appcrawler移动端测试

Ⅰ monkey

简介
  • 顾名思义,monkey就是一直猴子,把app看成一棵树,每个横向,纵向的页面看成是数的枝丫,即app页面组件的广度,深度,那么这个猴子就可以在树上上窜下跳,以此去进行app内各种操作事件;例如:点击,滑动,缩放等。
安装
  • monkey为androidSdk自带的工具,所以只需下载安装androidSdk
  • 下载安装后,打开SDK Managet.exe勾选所需要的组件,主要是安卓各版本的工具,androidR为最新版本
  • 安装后打开cmd执行adb,打印除adb各命令信息即安装成功
Android四大组件
  • activity 用户交互的可视化界面
  • service 实现程序后台运行的解决方案
  • content provider 内容提供者,提供程序所需要的数据
  • broadcast receiver 广播接收器,用于监听外来事件的到来(如来电,信息等)
adb的一些命令
  • 1 adb devices 查看已链接的设备/模拟器
  • 2 adb shell pm list packages 查看所有应用包
    • -s 过滤出系统应用
    • -3 过滤出第三方应用
    • | find “string” 过滤对出对应名称
  • 3 adb logcat | find "START" 实时打印当前启动的app启动日志
  • 4 adb install [option] <apk_path>
    • -l 安装到保护目录 /mnt/asec
    • -r 允许覆盖安装
    • -d 允许降级覆盖安装
    • -g 赋予所有运行时权限
  • 5 adb uninstall <包名> 卸载app
  • 6 adb shell dumpsys activity activities | find mResumedActivity 查看前台activity
  • 7 adb shell dmesg 查看设备信息
  • 8 adb shell dumpsys battery 查看电池状况
monkey使用
  • 1 adb shell monkey [option] <事件计数> 对所有的软件包进行随机遍历测试
  • 2 adb shell monkey -p com.zhongan.iyunbao 100 对指定的包进行随机遍历
    • 加参数 -v 打印日志的详细等级,最多三个,adb shell monkey -p com.zhongan.iyunbao -v -v -v100
    • 100 事件数
    • 多个包进行测试 -p -p
事件百分比设置
  • 0:–pct-touch 触摸事件百分比(触摸事件是一个在屏幕单一位置的按下-抬起事件)测试中最常用

  • 1:–pct-motion 手势事件百分比(手势事件是由一个在屏幕某处的按下事件、一系列的伪随机移动、一个抬起事件组成)即一个滑动操作,测试中最常用。

  • 2:–pct-pinchzoom 二指缩放百分比,即智能机上的放大缩小手势操作

  • 3:–pct-trackball 轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)

  • 4:–pct-rotation 屏幕旋转百分比,横屏竖屏

  • 5:–pct-nav 基本”导航事件百分比 老手机的上下左右键,智能机上没有 忽略,测试中很少用

  • 6:–pct-majornav ”主要”导航事件百分比

  • 7:–pct-syskeys ”系统”按钮事件百分比(供系统使用,如Home, Back, Start Call, End Call,音量控制)

  • 8:–pct-appswitch 启动activity事件百分比。在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

  • 9:–pct-flip 键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回,测试中很少用

  • 10:–pct-anyevent 其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。测试中很少用

事件触发延迟时间设定
  • 1 --throttle 设定两个事件之间的固定延迟,单位:毫秒
    • eg:adb shell monkey --throttle 3000 --pct-touch 70 -p com.zhongan.iyunbao 100;设置事件延迟间隔3秒,触摸事件70% 遍历100个事件
执行输出日志
  • 1 adb shell monkey --throttle 100 -p com.zhongan.iyunbao -v -v -v 3000 > E:\monkey-log\monkey_3000_log.txt
monkey日志分析
  • seed 该次monkey的seed值
  • count 执行次数
  • AllowPackage 执行的包名
  • includeCategory 执行类别
  • ANR&Exception异常,奔溃信息
  • crash 闪退信息
  • force closed 强制退出
  • switch 程序跳转,跳转到其他程序
  • 可能出现的两个随机事件之间没有时间间隔,引起事件主入失败在这里插入图片描述
  • 复现问题,重复执行改组问题事件 -s + seed +count即可复现该问题的事件组
  • Droped 丢弃事件

Ⅱ appcrawler

安装appcrawler
  • 下载安装地址:https://github.com/seveniruby/AppCrawler/
安装appium
  • 1 安装node.js
  • 2 安装cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 3 安装appium server: cnpm install -g appium
  • 4 启动appium,cmdos窗口执行 appium命令
  • 5 安装appium-doctor: cnpm install appium-doctor
  • 6 安装完成
使用appcrawler
  • 1 默认运行方式,遍历原则,从中间开始遍历
    • java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.zhongan.iyunbao,appActivity=.MainActivity"
  • 2 生成配置文件方式(推荐此方式):
    • 生成一个demon.yaml配置文件
    • java -jar appcrawler-2.4.0-jar-with-dependencies.jar --demo
    • 通过配置文件运行:
    • java -jar appcrawler-2.4.0-jar-with-dependencies.jar -c demo.yml
  • 3 demo.yml文件常用配置详解
    • capability 与appium相同,上下文信息
    • testcase 详细模式-用于启动app后的基础测试用例
      • name 测试用例名称
      • given 所有的先决条件
      • when 先决条件成立后的行为
      • then 断言集合
    • testcase简写模式
      • xpath: 对应when里的xpath
      • action:对应when里的action
    • selectedList 遍历范围设定
    • triggerActions 特定条件下触发执行动作的设置
    • firstList 优先被点击
    • lastList 最后被点击
    • tagLimitMax 同祖先的元素最多点击多少次
    • backButton 当所有元素被点击后,默认后退控件定位
    • blackList 黑名单,设置后不会对该元素进行操作
    • maxDepth 遍历的最大深度
  • 4 demo举例:进入产品中心tab进行遍历
    • 在这里插入图片描述
    • 其他的可以不用修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值