




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android压力测试Monkey 准备Monkey测试环境Monkey基本参数及用法Monkey测试实例结果分析 准备Monkey测试环境 1 下载SDKforWindows下载地址 2 设置sdk下面tools的环境变量如 tools的路径为 D android sdk windows adt bundle windows x86 20131030 sdk tools右击 我的电脑 属性 高级 环境变量 如图 点击Path 将 D android sdk windows adt bundle windows x86 20131030 sdk tools 添加到变量值中 与之前的变量值用 隔开 3 下载安装JDK下载地址 下载完成之后点击安装 默认安装就可以了 4 创建AVD打开SDKManager exe 如果域名转向设置正确 将看到管理器的更新列表 Status 状态 列下显示 Installed 的项表明数据已安装 显示 NotUninstalled 的项表明数据没有安装 全部更新列表中的数据会因数据太大导致下载很长时间 本例只选择AndroidSDKPlatform tools和Android4 1 API16 两项数据 如图所示 安装完成后 AVD管理器窗口 单击 New 新建 按钮 弹出创建AVD对话框 详细配置如图 AVD创建完成后 回到AVD管理器界面 选中刚刚创建好的AVD 单击Start启动AVD 5 在虚拟机中使用MonkeyTest1 打开虚拟机 运行以上创建的AVD2 开始运行 输入cmd3 在命令行录入adbshell4 接下来可以运行MonkeyTest的命令如 monkey pcom android contacts v1000 Monkey使用 1 Monkey测试简介Monkey是Android中的一个命令行工具 可以运行在模拟器里或实际设备中 它向系统发送伪随机的用户事件流 如按键输入 触摸屏输入 手势输入等 实现对正在开发的应用程序进行压力测试 Monkey测试是一种为了测试软件的稳定性 健壮性的快速有效的方法 2 Monkey特征1 测试的对象仅为应用程序包 有一定的局限性 2 Monky测试使用的事件流数据流是随机的 不能进行自定义 3 可对MonkeyTest的对象 事件数量 类型 频率等进行设置 3 Monkey基本用法可以通过开发机器上的命令行或脚本来启动Monkey 由于Monkey运行在模拟器 设备环境中 所以必须用其环境中的shell来进行启动 可以通过在每条命令前加上adbshell来达到目的 也可以进入Shell后直接输入Monkey命令 基本语法如下 adbshellmonkey options 如果不指定options Monkey将以无反馈模式启动 并把事件任意发送到安装在目标环境中的全部包 下面是一个更为典型的命令行示例 它启动指定的应用程序 并向其发送500个伪随机事件 adbshellmonkey pyour package name v500 4 Monkey参数1 参数 p参数 p用于约束限制 用此参数指定一个或多个包 Package 即App 指定包之后 Monkey将只允许系统启动指定的APP 如果不指定包 Monkey将允许系统启动设备中的所有APP 指定一个包 adbshellmonkey pcom htc Weather100说明 com htc Weather为包名 100是事件计数 即让Monkey程序模拟100次随机用户事件 指定多个包 adbshellmonkey pcom htc Weather pcom htc pdfreader pcom htc photo widgets100 不指定包 adbshellmonkey100说明 Monkey随机启动APP并发送100个随机事件 要查看设备中所有的包 在CMD窗口中执行以下命令 adbshell cddata data ls 2 参数 v用于指定反馈信息级别 信息级别就是日志的详细程度 总共分3个级别 分别对应的参数如下表所示 日志级别Level0示例adbshellmonkey pcom htc Weather v100说明缺省值 仅提供启动提示 测试完成和最终结果等少量信息日志级别Level1示例adbshellmonkey pcom htc Weather v v100说明提供较为详细的日志 包括每个发送到Activity的事件信息日志级别Level2示例adbshellmonkey pcom htc Weather v v v100说明最详细的日志 包括了测试中选中 未选中的Activity信息 3 参数 s用于指定伪随机数生成器的seed值 如果seed相同 则两次Monkey测试所产生的事件序列也相同的 示例 Monkey测试1 adbshellmonkey pcom htc Weather s10100Monkey测试2 adbshellmonkey pcom htc Weather s10100两次测试的效果是相同的 因为模拟的用户操作序列 每次操作按照一定的先后顺序所组成的一系列操作 即一个序列 是一样的 操作序列虽然是随机生成的 但是只要我们指定了相同的Seed值 就可以保证两次测试产生的随机操作序列是完全相同的 所以这个操作序列伪随机的 4 参数 throttle用于指定用户操作 即事件 间的时延 单位是毫秒 示例 adbshellmonkey pcom htc Weather throttle30001005 参数 ignore crashes用于指定当应用程序崩溃时 Force Close错误 Monkey是否停止运行 如果使用此参数 即使应用程序崩溃 Monkey依然会发送事件 直到事件计数完成 示例1 adbshellmonkey pcom htc Weather ignore crashes1000测试过程中即使Weather程序崩溃 Monkey依然会继续发送事件直到事件数目达到1000为止 示例2 adbshellmonkey pcom htc Weather1000测试过程中 如果Weather程序崩溃 Monkey将会停止运行 5 举例1 不忽略异常adbshellmonkey pcom thunderst radio throttle500 s600 v v v800000 C long radio report txt指令的含义 测试的应用程序为FM 事件间的延时为500毫秒 种子seed的值为600 三个v表示输出的MonkeyLog的级别为最高 即输出最详尽的MonkeyLog 测试的事件次数为800000次 Log保存在C盘的long radio report txt里2 忽略异常adbshellmonkey pcom thunderst radio throttle500 s600 ignore crashes ignore timeouts ignore security exceptions ignore native crashes monitor native crashes v v v800000 C long radio report txt 6 Monkey测试的停止条件 1 如果先顶了Monkey运行在一个或几个特定的包上 那么它会检测试图转到它包的操作 并对其进行阻止 2 如果应用程序崩溃或接收到任何失控异常 Monkey将停止并报错 3 如果应用程序产生了应用程序不响应 applicationnotresponding 的错误 Monkey将会停止并报错 Monkey测试实例 1 首先 先准备了一个测试用的应用程序 apk文件 为了测试 这里选择了一个格瓦拉手机购票App进行测试 下载地址为 3 进行apk文件的安装 安装的前提是 已经启动并可以检测模拟器 有安装91助手或者豌豆的用户可以直接双击apk文件进行安装 也可以使用android下的adb命令进行安装 如下图所示 Success表示安装成功 adb命令下安装apk文件的命令为 adbinstall文件名 apk 4 安装好后 会在模拟器上看到应用程序的启动图标 5 安装好apk文件后 需要知道应用程序主Activity 第一个启动的Activity 所在的包名 这时 我们可以使用adbshell命令查找到程序主Activity所在的包名 如下图所示 知道了apk的包名 我们也可以利用adb命令进行应用程序的卸载 卸载apk文件的命令为 adbuninstall包名 6 使用moneky命令进行自动化压力测试 命令为 monkey pcom gewara v1000 参数说明 p后跟着软件所在包名 v后跟测试的次数 这里对该软件进行1000次的自动化测试 几分钟内即可以完成测试 如图所示 结果分析 1 初步分析Monkey测试出现错误后 一般的差错步骤为以下几步 1 找到是monkey里面的哪个地方出错2 查看Monkey里面出错前的一些事件动作 并手动执行该动作3 若以上步骤还不能找出 可以使用之前执行的monkey命令再执行一遍 注意seed值要一样 2 一般结果分析1 ANR问题 在日志中搜索 ANR 2 崩溃问题 在日志中搜索 Exception 3 详细分析日志1 将执行Monkey生成的log 从手机中导出并打开查看该log 在log的最开始都会显示Monkey执行的seed值 执行次数和测试的包名 2 首先我们需要查看Monkey测试中是否出现了ANR或者异常 具体方法如上述 3 然后我们要分析log中的具体信息 方法如下 查看log中第一个Switch 主要是查看Monkey执行的是那一个Activity 譬如下面的log中 执行的是com tencent smtt SplashActivity 在下一个swtich之间的 如果出现了崩溃或其他异常 可以在该Activity中查找问题的所在 Switch Intent action android intent action MAIN category android intent category LAUNCHER launchFlags 0 x10000000 component com tencent smtt SplashActivity end AllowingstartofIntent act android intent action MAINcat android intent category LAUNCHER cmp com tencent smtt SplashActivity inpackagecom tencent smtt 在下面的log中 SendingPointerACTION DOWN和SendingPointerACTION UP代表当前执行了一个单击的操作Sleepingfor500milliseconds这句log是执行Monkey测试时 throttle设定的间隔时间 每出现一次 就代表一个事件 SendKey ACTION DOWN KEYCODE DPAD DOWN代表当前执行了一个点击下导航键的操作 SendingPointerACTION MOVE代表当前执行了一个滑动界面的操作 SendingPointerACTION DOWNx 47 0y 438 0 SendingPointerACTION UPx 47 0y 438 0Sleepingfor500milliseconds SendKey ACTION DOWN 20 KEYCODE DPAD DOWN SendKey ACTION UP 20 KEYCODE DPAD DOWNSleepingfor500milliseconds SendingPointerACTION MOVEx 2 0y 3 0 SendingPointerACTION MOVEx 4 0y 3 0 如果Monkey测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盘龙区模拟中考数学试卷
- 青海招教小学数学试卷
- 学生创意手工活动方案策划(3篇)
- 手工制造活动方案策划(3篇)
- 佛山凉亭施工方案(3篇)
- phc桩基施工方案(3篇)
- 锅炉证考试题库及答案
- 微课参赛课件制作教学
- 安徽省马鞍山市和县2023-2024学年高三下学期高考第三次模拟考试数学题目及答案
- 2025年一季度我国电子商务发展情况
- 中级职称评审述职报告
- 2025年9月-2026年1月安全工作安排表
- 2025年事业单位招聘考试建筑类综合能力测试试卷八十二:建筑工程施工监理案例分析八
- 2025年事业单位招聘考试综合类专业能力测试试卷(工程类)-建筑工程施工质量控制
- 2025年教育法学法规试题及答案
- 在接受诫勉谈话时的检讨及整改情况报告
- 汉教课堂观察汇报
- 小学生养成文明行为习惯自评检查表
- 2025年高级(三级)评茶员职业技能鉴定《理论知识》真题卷(后附答案及解析)
- 2025年注册会计师考试财务成本管理试题及答案解析
- 《人工智能通识课基础》高职人工智能全套教学课件
评论
0/150
提交评论