Android App 压力测试方法(Monkey)

摘要:
所以,在执行monkeyscript脚本时,要确认的几个点:A.被测app试被允许外部调用的!B.通过adblogcat获得的activity名需要和package名合在一起作为第二个参数!C.因为执行monkeyscript脚本没有调试功能,出现问题需要自己查找,所以在写monkeyscript脚本时一定要更加注意,特别是标点符号!以上简单介绍了用Monkey做AndroidApp的压力测试,希望对初学者有所帮助。
转载:https://www.cnblogs.com/ailiailan/p/6543166.htmlAndroid App 压力测试方法(Monkey)

一.为什么要开展压力测试

a.提高产品的稳定性;b.提高产品的留存率

二.什么时候开展压力测试

a.首轮功能测试通过后;b.下班后的夜间进行

三.7个基础知识(理论部分)

3.1 手动测试场景与自动测试场景

Android App 压力测试方法(Monkey)第1张Android App 压力测试方法(Monkey)第2张

3.2 Monkey测试工具介绍

Monkey是发送伪随机用户事件的工具;Monkey在手机系统里;Monkey需要借助ADB使用;

Android App 压力测试方法(Monkey)第3张

3.3 MonkeyScript测试命令集合介绍

Android App 压力测试方法(Monkey)第4张Android App 压力测试方法(Monkey)第5张Android App 压力测试方法(Monkey)第6张

Android App 压力测试方法(Monkey)第7张Android App 压力测试方法(Monkey)第8张

3.4 异常测试结果分析

Android App 压力测试方法(Monkey)第9张Android App 压力测试方法(Monkey)第10张

四.6个实践小案例

4.1 一次Android App的压测实践

需要准备的环境:1.Android SDK环境;2.python环境

压测过程:Step1.Android App 压力测试方法(Monkey)第11张Step2.Android App 压力测试方法(Monkey)第12张Step3.Android App 压力测试方法(Monkey)第13张Step4.Android App 压力测试方法(Monkey)第14张Step5.Android App 压力测试方法(Monkey)第15张Step6.Android App 压力测试方法(Monkey)第16张

4.2 Monkey高级参数——throttle实践

Android App 压力测试方法(Monkey)第17张Android App 压力测试方法(Monkey)第18张

4.3Monkey高级参数——seed实践

每一个seed值对应一个操作序列,seed值相同,操作序列就相同,最终的结果也是相同的,设定seed值可以用来复现bug

Android App 压力测试方法(Monkey)第19张Android App 压力测试方法(Monkey)第20张

4.4Monkey高级参数——触摸事件实践

Android App 压力测试方法(Monkey)第21张Android App 压力测试方法(Monkey)第22张

加 -v 可以看到每次事件的详情

4.5Monkey高级参数——其他事件实践

Android App 压力测试方法(Monkey)第23张Android App 压力测试方法(Monkey)第24张

Android App 压力测试方法(Monkey)第25张Android App 压力测试方法(Monkey)第26张

Android App 压力测试方法(Monkey)第27张Android App 压力测试方法(Monkey)第28张

Android App 压力测试方法(Monkey)第29张Android App 压力测试方法(Monkey)第30张

Android App 压力测试方法(Monkey)第31张Android App 压力测试方法(Monkey)第32张

4.6 crash异常测试结果析取

Android App 压力测试方法(Monkey)第33张Android App 压力测试方法(Monkey)第34张

4.7 anr异常测试结果析取

Android App 压力测试方法(Monkey)第35张Android App 压力测试方法(Monkey)第36张Android App 压力测试方法(Monkey)第37张

4.9MonkeyScript常用命令介绍

Android App 压力测试方法(Monkey)第38张其中,<scriptfile>是脚本文件;

Android App 压力测试方法(Monkey)第39张 一般只需要关注标红的3个参数就可以了;x,y坐标点可以通过uiautomatorviewer获取;

Android App 压力测试方法(Monkey)第40张Android App 压力测试方法(Monkey)第41张Android App 压力测试方法(Monkey)第42张

Android App 压力测试方法(Monkey)第43张Android App 压力测试方法(Monkey)第44张

4.10MonkeyScript实践

Android App 压力测试方法(Monkey)第45张实现上述流程的MonkeyScript脚本如下:

Android App 压力测试方法(Monkey)第46张

前4行的数据原文照抄就可以了Android App 压力测试方法(Monkey)第47张,由于目前相关的资料很少,具体的含义不必深究

Android App 压力测试方法(Monkey)第48张这两条命令完成“点击”的操作;

Android App 压力测试方法(Monkey)第49张如图,坐标(100,100)通过uiautomatorviewer获取;

4.11MonkeyScript实践问题解决

遇到的问题:脚本执行后,调用的不是被测试app

Android App 压力测试方法(Monkey)第50张 问题出在第一行LaunchActivity这一行语句上,这一行语句没有生效!

Android App 压力测试方法(Monkey)第51张

具体原因是,测试app的工程文件内缺少一个属性值!如果缺少这一个属性值的话,app是不允许被外部调用的,也就是说通过命令行的方式是无法调用app的!

Android App 压力测试方法(Monkey)第52张

所以,在执行monkeyscript脚本时,要确认的几个点:

A.被测app试被允许外部调用的!

B.Android App 压力测试方法(Monkey)第53张通过adb logcat获得的activity名需要和package名合在一起作为第二个参数!

C.因为执行monkeyscript脚本没有调试功能,出现问题需要自己查找,所以在写monkeyscript脚本时一定要更加注意,特别是标点符号(一定是英文下的半角符号)!

4.12MonkeyRunner常用API介绍

monkeyscript最大的弊端是在跑自动化脚本的时候不能截屏,而MonkeyRunner能做到这一点

Android App 压力测试方法(Monkey)第7张Android App 压力测试方法(Monkey)第55张

MonkeyRunner的脚本用Python实现,如下图:

Android App 压力测试方法(Monkey)第56张

执行.py文件的方式如下图:用monkeyRunner .py 文件的形式

Android App 压力测试方法(Monkey)第57张

Android App 压力测试方法(Monkey)第58张

Android App 压力测试方法(Monkey)第59张

Android App 压力测试方法(Monkey)第60张

Android App 压力测试方法(Monkey)第61张

Android App 压力测试方法(Monkey)第62张

Android App 压力测试方法(Monkey)第63张

Android App 压力测试方法(Monkey)第64张

Android App 压力测试方法(Monkey)第65张

Android App 压力测试方法(Monkey)第66张

4.13MonkeyRunner实践

目标:实现在搜索框中输入查询词,并截图

MonkeyRunner的实现脚本如下图:

Android App 压力测试方法(Monkey)第67张

Android App 压力测试方法(Monkey)第68张

4.12MonkeyRunner补充说明

MonkeyRunner只能实现功能性的自动化过程,如果想让MonkeyRunner执行多次的话,可以通过python脚本来实现,也就是说用python来实现多线程、

循环操作等来执行脚本,可以帮助我们完成重复的操作过程!

以上简单介绍了用Monkey做Android App的压力测试,希望对初学者有所帮助。

免责声明:文章转载自《Android App 压力测试方法(Monkey)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇应该记住的30个CSS选择器Windows控制面板快捷指令一览下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点)

APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点) 版权声明:本文为博主原创文章,未经博主允许不得转载。 最近涉足APP端测试,常见检查点总结如下:   一.业务方面: 1.  注册(无效数据剔除),登录(语音和短信验证码),第三方登录(微信,微博,qq),忘记密码处理,注册   (登录后身份判断校验);账号互踢(同一时间一个账号只能在一台...

如何通过 WebP 自适应方案减少图片资源大小

前言 我们知道,理想的网页应该在 1 秒内打开,而在页面的整体大小中,图片往往是所占比例最大的一部分(大约占到 60% 以上,更多了解请点击),也可以参照如下图所示。优化图片不仅可以加快页面显示,还能降低移动网络的流量费用。原图产生的 PNG、JPEG、GIF 和 SVG 图片一般都有很大的压缩余地。下文将重点介绍一款图片新格式:WebP,从而揭开它神秘的...

uniapp开发支付宝小程序,ios软键盘会把底部fixed定位的输入框覆盖掉有效解决方法

这个问题应该可以定义为ios的兼容性、目前测试的只有在ios上才会有这种情况 之前百度找的用uniapp里面的参数输入框设置cursor-spacing="0" 或者等于其他数值、然后基本无效 解决方法就一行css代码就可以了、把外层高度设置为100vh,就不会出现刚刚的兼容性,我的是tbody设置的h:100vh,cont靠内容自己撑起来 然后我html...

修改JavaScript脚本并离线编译后将数据同步到Web和Web app

 修改JavaScript脚本并离线编译后将数据同步到Web和Web app 一、背景 编写的JS代码需要同步到pad上的web app上测试,很多时候需要替换测试资源检查代码。这里通过修改JS代码并离线编译,将修改的测试资源同步到web app上面。 二、前提     需要一定的开发测试编译环境,具体如下: (1)JS开发环境搭建,见我前面写过的文章...

iOS: 实现微信支付

一、介绍: 现在的消费越来越方便,直接带个手机用各种三方的支付平台进行支付就行,例如微信、支付宝。现在正好我所做的项目中用到了微信支付,今天就来整理一下。 二、准备: 1、去微信官方开发者平台注册开发者账号:https://open.weixin.qq.com 2、然后登陆开发平台: 3、给项目对应的Bundle ID创建应用程序(默认有登陆和分享功能,...

Google天涯问答提问遭遇

一星期前,我在一个店中听到一首歌,但不知道歌名,于是就用手机录下来,准备拿到网上询问网友。 于是昨天我将录音文件上传到UUShare,然后将问题发布到谷歌天涯问答,原文如下: 这首歌叫什么?(付录音) 我在一个商店里听到的,就用手机录下了,好像是一首韩国歌,北京麦当劳以前也曾播放过,就是一直不知道叫什么,求救~ 录音文件地址:http://www.uu...