实现多设备并行的monkey测试

举报
Tester_muller 发表于 2022/05/31 18:10:00 2022/05/31
【摘要】 相信做app测试的朋友们都知道或者使用过monkey对app进行压力测试。但是monkey测试有一个缺点就是如果想实现在细粒度场景化进行monkey压测需要二次开发或者是在脚本中做控制和判断。那么今天就给大家介绍及实践一款压测工具—Maxim,它是一款基于monkey二次开发的一个可以实现高速点击的工具,优点有很多,比如场景细粒度化,同时也有防止手机休眠,防跳出等等,在这里就不具体介绍了,直...

相信做app测试的朋友们都知道或者使用过monkey对app进行压力测试。但是monkey测试有一个缺点就是如果想实现在细粒度场景化进行monkey压测需要二次开发或者是在脚本中做控制和判断。那么今天就给大家介绍及实践一款压测工具—Maxim,它是一款基于monkey二次开发的一个可以实现高速点击的工具,优点有很多,比如场景细粒度化,同时也有防止手机休眠,防跳出等等,在这里就不具体介绍了,直接附上地址https://github.com/zhangzhao4444

/Maxim, 大家可以自己查看,下面就介绍一下利用maxim实现多设备并行的压力测试的脚本实现。

1.具体流程

(1) 多设备卸载和安装测试包

需要根据当前连接的手机的数量,如果检测到手机上已经存在相同app包名的包,则进行卸载,重新安装新包。

(2) 封装maxim

command方法是对maxim的命令行模式下需要执行的shell 命令进行的封装。package是指被测app的包名;runtime总运行时长,单位:分钟;mode:指monkey的运行模式,主要有以下几种模式:

uiautomatormix 遍历策略,uiautomatordfs深度遍历算法策略,uiautomatortroy模式控件选择策略按max.xpath.selector配置的高低优先级来进行深度遍历;是否有黑白名单blackList和whitelist;事件时间间隔throttle设置等。

run_monkey方法主要实现将黑白名单等相关配置push到相应设备上的操作。

(3) 多线程执行maxim

开启多线程,在多线程下执行monkey,并且将执行后的崩溃相关日志输出到指定的目录下。

启动多线程,在多线程下执行monkey操作

2.Maxim的黑白名单和特殊事件的使用

2.1黑白名单

如果我们只想在执行monkey操作时进入某个activity或者不想进入某个activity中,可以通过配置awl.string文件实现。在实践中如何获取app的activity呢,通常有以下几种方法:

(1) adb shell dumpsys activity top | findstr ACTIVITY 可以获取到当前页面的activity.

(2)如果有android studio工具也可以通过日志分析的方法查看如下图:

(3)如果没有工具,也可以通过adb命令通过查看日志的方式查看

a、启动待测apk

b、开启日志输出:adb logcat>D:/log.txt

c、关闭日志输出:ctrl+c

d、查看日志

通过上面的方法将黑名单(或者白名单)设置完成后,执行maxim只需将blacklist或whitelist设置为True即可,如下所示:

2.2 特殊事件

如果我们只想点击某个activity中的某个按钮,其他控件都不被操作,可以将事件定义配置在max.xpath.actions中。在实践中如何获取控件的xpath或者id呢?通常有以下几种方法:

(a) 通过android sdk工具自带的

uiautomatorviewer来获取,如图所示:

(b) 通过appium的inspector来获取,如下图所示

设置max.xpath.actions如下,prob代表操作事件的概率,1代表100%会执行actions,如下配置表示当当前的activity为Reward

Activity时百分百会点击btn_reward_show按钮。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。