Android App压力测试(慕课网学习笔记)
转载:https://blog.csdn.net/a923751813/article/details/72884826
一 背景
1. 为什么开展压力测试
目标1:提高产品稳定性(产品稳定性是一项重要指标,据统计百分之七十用户会遇到不稳定问题,这时有的会忍受继续使用(比如QQ、微信等成熟产品),有的直接放弃(使用一些新产品),百分之五用户在遇到页面缓慢等问题会直接卸载)
目标2:提高产品的留存率
2. 什么时候开展压力测试
首轮功能测试后(开发提测时会有一些bug,此时若开展压力测试会误报一些问题)
下班后夜间进行(只需对工具进行设置,晚上进行压力测试,提高效率)
二 理论部分
1.手工测试场景
找陌生人聊天:查找->添加->聊天
2.自动测试场景
模拟事件流
3.Monkey(可帮助我们完成一系列的随机事件)
a. Monkey 是发送伪随机用户事件的工具
b.Monkey 在手机系统里,为了实现与其通信,需要使用ADB。
4.ADB
使终端(CMD)与手机之间建立连接:硬链接(usb线),软连接(adb)
5.Monkey Script(可以完成重复固定的操作)
定义:MonkeyScript是一组可以被Monkey识别的命令集合
但不能实现截图操作,这时可借助MonkeyRunner
6.MonkeyRunner
Monke Runner提供了一系列的API,可以完成模拟事件及截图操作。
与Monkey区别:
a. Monkey:在adb shell中,生成用户或系统的伪随机事件;
b.MonkeyRunner:通过API定义特定命令和事件控制设备。
测试类型:
多设备控制,功能测试,回归测试
7.压力测试结果
(1)什么是Crash
定义:即崩溃,应用程序在使用过程中,非正常退出
(2)什么是ANR
全称:Application Not Responding
三 实践部分
1.一个人APP的压测实践
环境:Android SDK,Python
步骤:1.手机和终端建立连接,adb devices(手机的开发者选项打开),获取手机的唯一标识名
2.往手机上安装测试app,adb install package.apk
3.发送压力指令,adb shell monkey 1000 (工具名称:monkey,1000:让monkey执行1000个随机命令,包括音量键up、down,home键,截屏键,各种输入键等)
4.获取app包名:adb logcat | grep START(logcat是输出手机上所有app的log信息,|:管道,将前一个命令的输出作为下一个命令的输入,grep start,抓取log信息中含有start标签的log信息进行输出)
在Windows系统中,可以用adb shell命令 pm list packages去获取APP包名
5.给指定包打压力
adb shell monkey -p package 1000
2.Monkey高级参数的应用
a.throttle 参数---指定事件之间的间隔,adb shell monkey --throttle <milliseconds> (两个-,毫秒为单位)
b.seed 参数--指定随机生成数的seed值,adb shell monkey -s<seed> <event-count> (<seed>是数字,100.... 后边是事件数)
Monkey所谓的随机操作是基于seed值产生的,每一个seed值产生唯一的随机序列,对应唯一的操作,只要两个seed值相同,操作就相同,这样就可以复现bug。
要进行压力测试时,那么首先自己先定义一个seed值,然后让他去跑,等之后发现APP出现excpetion时,则只需要重新加上seed值就可以复现
c. 触摸事件--设定触摸事件百分比
只完成某种触摸操作,比如点击事件,adb shell monkey --pct-touch <percent>,点击事件百分比
-v 输出记录,加上这个参数,可以看到执行的详细操作
d.动作事件--设定动作事件百分比,adb shell monkey --pct-motion <percent>
e. 轨迹球事件:设定轨迹球事件百分比,adb shell monkey --pct-trackball<percent> f. 基本导航事件:输入设备的上下左右方向键的导航,adb shell monkey --pct-nav<percent>
g.主要导航事件:中间键、返回键、菜单按钮键,adb shell monkey --pct-majornav<percent> h. 系统导航事件:HOME键、BACK键、拨号、音量键,adb shell monkey --pct-syskeys<percent> i. 启动Activity事件:在已有的Activity之间进行切换,adb shell monkey --pct-appswitch<percent> j.不常用事件:adb shell monkey --pct-anyevent<percent>
k. 奔溃事件:忽略奔溃和异常,直到Events injected等于设定的值为止,adb shell monkey --ignore-crashes<event-count> l. 超时时间:忽略超时时间,直到Events injected等于设定的值为止,adb shell monkey --ignore-timeouts<event-count>
注意:如果想指定两个事件,比如touch和motion那就让这两个事件的百分比之和是一百,否则,剩余的百分比会执行随机操作。
3.Crash结果析取
注意:crash关键字,开始crash log,在log的最后有一个seed值,我们可以用它来复现crash。如果加上ignore crash,不会有seed值,因为每次crash之后都是一次重新的开始。
4.ANR结果析取
注意:ANR log是以ANR开头。
没有使用monkey的情况下app出现anr情况,可以在手机中找到log文件,会放在traces文件的上边。
5.Monkey Script 实例
执行Monkey脚本的命令:adb shell monkey -f <scriptfile> <event-count.>
《Scriptfile》是编写的脚本文件。<event-count>是脚本执行的次数。
常用命令介绍:
实例讲解:在浏览器进行搜索关键字
脚本的格式:test.script
写完脚本开始执行,因为脚本是由monkey执行的,monkey是在手机里,所以需要把脚本push到手机上
adb push test.script /data/local/tmp/
然后开始执行,adb shell monkey -f /data/local/tmp/test.script 2
所启动的app需要允许adb 命令外界调起
6.Monkey Runner实例
API介绍:
虚拟器(模拟器):genymotion
Android App压力测试(慕课网学习笔记)相关推荐
- Android APP压力测试(二) 之Monkey信息自动收集脚本
转载-原文地址: http://www.cnblogs.com/findyou/p/3936063.html Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 本文重点 ...
- Android App 压力测试 monkeyrunner
Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试? 第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. AD ...
- Android App压力测试
前言:写这篇文章的目的,一是因为不少同学作为Android开发,很少会自己去做压力测试,不了解相关的技术,不知道压力测试是什么.怎么工作的:二是询问过身边的一些测试同学,他们进行压力测试的时候,很多情 ...
- Android App压力测试(Monkey和ADB)
压力测试简介 压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分.压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试.通常 ...
- Maven慕课网学习笔记
-唯快不破-maven快速入门 -稳扎稳打-maven核心知识 -实用为先-maven建立web项目 唯快不破-maven快速入门 Maven介绍与环境搭建 Maven是基于项目对象模型(POM),可 ...
- Android App专项测试-压力测试篇
小伙伴们大家好,今天主要分享的主题是Android App专项测试.如何进行Android App专项测试压力测试呢?我们主要通过Android平台的一门工具Monkey.在学习本门课程之前,如果你具 ...
- 如何保证APP兼容性覆盖测试和手机APP测试如何进行兼容性测试?(学习笔记)
1.背景 众所周知,APP兼容性覆盖测试一直以来被认为是一个高成本.耗时低效.耗人力的测试工作,且兼容性测试是一项必须要进行的测试项目,因为有不同的机型.系统平台.分辨率.网络.厂商.数据兼容以及不同 ...
- JavaWeb黑马旅游网-学习笔记02【注册功能】
Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...
- Android Monkey压力测试
一. JAVA环境的搭建 安装jdk-8u151-windows-x64,可以到官网或者应用中心下载. JAVA环境变量的搭建: 在"我的电脑"-"属性"-&q ...
最新文章
- 基于深度学习的文本分类应用!
- python和表格关系_python – 单表继承上的SQLAlchemy一对多关系...
- php制作曲线柱形图的框架,用GD图库生成横竖柱状图折线图的类_php
- python:实现简单购物车增加商品、删除商品的功能
- orm查询部分字段_ORM问题第2部分–查询
- 肖仰华 | 知识图谱落地的基本原则与最佳实践
- 如何打造高质量的SSP广告引擎(内部干货分享)
- java merge_java – OptimisticLockException当使用JPA merge()
- Oracle回收站解决误删除表
- linux下部署Tesseract OCR及调用
- 一、Spark安装与部署
- SONY UP-D898MD 或 UP-X898MD驱动在WIN10 64下的安装
- Android Studio开发环境搭建
- TensorFlow北大公开课学习笔记-3.3反向传播
- nothing else left on those streets
- Util: Java生成文件的md5文件方法的代码
- 二维空间最近点对问题 python
- Google浏览器清理缓存
- 熬之滴水穿石:JAVA的世界(2)
- 控制微信小程序web view的返回按钮