1. APP测试的准备
在进行APP测试之前,需要准备下列步骤。通过以下网站可以查找。
移动观象台:http://mi.talkingdata.com/terminals.html
1 确定APP的设备
选定被测试的设备终端。
- 记录设备的品牌
- 记录设备的型号
- 记录设备的屏幕分辨率
- 记录设备的屏幕大小
1.2 确定APP的版本
确定被测试的APP的版本号和操作系统类型
- XXX 1.3.2 for ios
- XXX 1.3.0 for Android
1.3 确定操作系统
确定运行被测试设备的操作系统
- 主流的有iOS和Android
- 还有WP(Windows Phone)
- BlackBerry
- Symbian
- Ubuntu
1.4 准备表格记录APP的设备和版本
测试工作开始前,需要确定App需要测试的操作系统版本和设备列表
编号 | OS | OS Version | 分类 | Model | 制造商 | 屏幕尺寸 | 分辨率 |
---|---|---|---|---|---|---|---|
001 | iOS | 7.1 | iPhone | 5s | Apple | 4 | |
002 | iOS | 8.1 | iPhone | 6s | Apple | 4.7 | |
003 | iOS | 8.0.2 | iPhone | 6 | Apple | 4.7 | |
004 | iOS | 8.1.2 | iPhone | 6 Plus | Apple | 5.5 | |
005 | iOS | 8.0.2 | iPad | Air 2 | Apple | 9.7 | |
006 | iOS | 8.1.2 | iTouch | 5 | Apple | 4 | |
007 | Android | 5.1 | Phone | One XL | HTC | 4.7 | 1280*720 |
008 | Android | 4.5 | Phone | PRO 5 | Meizu | 5.7 | 1920*1080 |
009 | Android | 4.2 | Phone | Galaxy S6 | Samsung | ||
010 | Android | 4.4.2 | Phone | Galaxy S5 | Samsung | ||
011 | Android | 4.4.2 | Phone | MX 4 | Meizu | ||
012 | Android | 4.4.4 | Phone | Nexus 5 | |||
013 | Android | 4.4.4 | Phone | Mi 4 | Xiaomi | ||
014 | Android | 4.2.2 | Tablet | Galaxy Tab3 | Samsung |
2. APP的基本测试
2.1 “移动”测试App
由于现在3G和4G网络都已经非常普及,需要优先测试App在这两种网络环境下的表现。同时需要测试4G信号无法覆盖的时候,App切换到3G、2G的环境下进行测试甚至到无网络的环境下测试。当网络恢复的时候,App是否会自动切换回来,并且执行网络断开前用户的操作。
一般可以选择在地铁、公交、电梯、隧道灯代表性的场所进行测试。
- 网络切换
- 网络恢复
一般可以选择在地铁、公交、电梯、隧道灯代表性的场所进行测试。
测试APP在网络异常的情况下,是否发生 ANR
和 Crash
2.2 App的多任务和意外情况处理
-
多任务切换和多任务管理界面是否与App保持一致。
-
多任务管理界面直接退出App程序测试。
-
测试App的同时接听电话,是否还能够继续使用App。
<p>步骤:</p> <ol><li>正常打开被测APP</li> <li>运行APP的功能</li> <li>突然被其他应用打断(意外,短信、电话、通知)</li> <li>切换到该应用、或者、忽略该应用</li> <li>被测APP能够继续之前的操作,不发生<code>ANR</code>或者<code>Crash</code></li> </ol></li>
2.3 测试App的手势操作
- 长按屏幕呼出菜单
- 单手指从右向左滑动,弹出附加功能项
- 双手指捏合,放大放小操作等
2.4 测试App的用户体验
- 横屏功能测试
- 遵循iOS和Android的设计规范
- 字体大小设置以及美观
2.5 测试App的消息显示和通知显示*
通知显示的方式:
- 锁屏的通知:内容
- 下拉通知栏的通知:内容
- 应用程序消息栏:内容
- 图标的右上角角标:条数
测试要点
- 在安装App的时候是否申请相应的权限
- 验证收到App新的消息的时候,如何通过通知向用户进行消息展示
2.6 测试App能否及时显示和同步数据
Web端 + PC端 + APP端
- 测试在多台设备登录App,是否同步消息、设置、内容、数据等
- 测试App的消息是否同步在PC端(无论Web版本或者PC版本)
2.7 测试App能否响应不同的设备用户界面
测试App是否适应用户界面,必须使用真实设备进行测试。比如测试HTC Sense用户界面底部的黑色导航栏,测试小米MIUI系统桌面的角标提醒功能,测试iOS的角标提醒,测试魅族Flyme的SmartBar操作等。
- 非常规的控制:SmartBar
- 非常规的分辨率:魅族 MX4 MX3 MX2……
2.8 测试App中高内存使用的功能
-
测试App对于读取大量图片、视频等进行高内存占用操作的处理能力
-
查看App是否有对应的异步加载功能等
<p>主要测试场景:</p> <ul><li>检查APP是否读入全部图片到内存中</li> <li>美图秀秀打开图片</li> <li>读取一屏的图片到内存</li> <li>滚动屏幕,加载新的图片到内存</li> <li>测试APP是否设定了图片加载的阀值:比如300MB</li> <li>图片在内存中加载到阀值(300MB),会自动把最开始加载的指定图片占的内存空间释放</li> </ul></li>
2.9 测试App的流量和电量消耗
- 测试App的安装文件大小
- 测试App占用的存储空间
- 测试App使用的流量和电量
- 流量靠软件测试
- 电量测试靠功耗仪
2.10 测试App的增量升级
- 需要测试App在自动升级或者手动增量升级后,用户数据是否保存延续等
- 测试App在升级失败以后,是否可以继续使用升级之前的版本。
- 重点测试升级后数据是否可用
2.11 测试App支持的文件格式
- 测试App支持Office文件操作
- 测试App支持图片文件展示
- 测试App支持PDF文件打开
- 测试App支持视频和音频文件播放
2.12 安装卸载测试
- 不联网的情况下,会不会崩溃
- 在线下载数据不完整,能否再次启动
- 是否支持断点续传
- 下载安装后再次启动
- 安装成功后检查版本号和相关数据
2.13 应用召唤
-
不同应用之间的应用召唤
<p>测试步骤:</p> <p>【支付宝支付】</p> <ol><li>打开被测试的应用程序APP</li> <li>使用APP指定的功能</li> <li>APP支付选择“支付宝”</li> <li>测试是否提示“允许打开支付宝”(iOS测试)</li> <li>测试支付宝没有安装的情况下,APP是否有正确提示(未安装支付宝)</li> <li>测试支付宝正确安装的情况下,未登录支付宝,是否提示登录页面</li> <li>测试支付宝正确安装的情况下,已登录支付宝,是否提示支付页面</li> </ol></li>
3. 易测EasyTest
易测是一款基于无线客户端研发场景的通用测试工具, 它通过在研发人员的自持机上提供各种辅助能力&标准化的专项测试服务来提升研发质量&效率。
易测:http://mqc.aliyun.com/download.htm?spm=0.0.0.0.LKnIoR
- 实时性能数据
- 弱网环境模拟
- 手机抓包
- Monkey测试
- 截图断网等
4. ADB命令与Monkey工具
4.1 ADB 命令
adb:
adb 的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse或Android Studio时adb进程就会自动运行。
借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作
adb 在sdk的platform-tools目录中
Android SDK 下载网站 http://www.androiddevtools.cn/(非官方)
ADB 是连接 Windows 命令行(也可以是Linux或者Mac)到 Andriod手机(模拟器)的Android操作系统的 桥梁(调试桥)
ADB的测试环境搭建:
- 安装 JDK
- 安装 Android SDK Tool
- 安装 Android SDK 相关手机驱动
然后打开 Windows 命令窗口
cd C:\Users\Linty\AppData\Local\Android\android-sdk\platform-tools
ADB连接夜神模拟器示例:
ADB环境的搭建步骤(连接夜神模拟器):
-
打开Android模拟器(夜神模拟器)
也可以打开Android手机(已经ROOT),在勾选“允许USB调试”的选项后,连接手机 -
解压缩 platform-tools_r22-windows.zip 到 C:\
-
打开 cmd
-
进入解压后的文件夹
<pre class="has" name="code"><code class="hljs delphi">cd C:\<span class="hljs-keyword">platform</span>-tools_r22-windows\<span class="hljs-keyword">platform</span>-tools
连接夜神模拟器
-
<pre class="has" name="code"><code class="hljs css"><span class="hljs-selector-tag">adb</span> <span class="hljs-selector-tag">connect</span> 127<span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-pseudo">:62001</span>
<p>连接成功后,提示 connected to 127.0.0.1:62001</p> </li> <li> <p>进入 ADB Shell 模式</p> <pre class="has" name="code"><code class="hljs">adb shell
<p>成功后,进入ADB 的SHELL模式</p> <pre class="has" name="code"><code class="hljs ruby">root@android<span class="hljs-symbol">:/</span> <span class="hljs-comment">#</span>
ADB的两种模式:
- 前提:必须连接上 Android,
adb connect
- 模式一:进入 ADB SHELL 模式
adb shell
- 类似于 Linux系统的操作
- ls
- cp
- cd
- mv
- rm
- cp
- 模式二:直接 adb + 命令 来执行 ADB命令
- 如果已经进入 ADB SHELL模式,需要先
exit
- adb install + apk 文件在windows上的路径
- adb unistall + apk 的包名
- adb pull 拉,把文件从Android下载到windows中
- adb push 推,把windows文件放到Android中
- 如果已经进入 ADB SHELL模式,需要先
- adb连接前
显示当前运行的全部连接到当前电脑的设备,包括手机和模拟器等:
adb devices
连接指定的模拟器或设备
adb connect 127.0.0.1:62001
断开指定的模拟器或设备
adb disconnect
启动ADB
adb start-server
关闭ADB
adb kill-server
- 进入 adb的shell环境
进入adb的shell环境
adb shell
查看包名
-
adb shell
-
root@android:/ # ls data/data
记录无线通讯日志
-
adb shell
-
root@android:/ # logcat -b radio
删除系统应用
-
adb shell
-
root@android:/ # cd system/app
-
root@android:/ # rm xxxx.apk
退出adb的shell环境
root@android:/ # exit
- adb命令模式
安装应用程序
adb install -r C:\xxxxx.apk
获取设备中的文件
-
adb pull <remote> <local>
-
adb pull /addroid/lib/libwebcore.so c:\tmp
向设备中写入文件
-
adb push <local> <remote>
-
adb push C:\test.txt /tmp/test.txt
卸载应用程序
-
adb shell
-
cd data/app
-
rm apk包
-
exit
-
adb uninstall apk包的主包名
获取管理员权限
adb root
获取设备的序列号
adb get-serialno
进入SQLite环境
-
adb shell
-
sqlite3
SQLite的基本操作,SQLite没有用户的概 念 。
Snap1.jpg
示例:安装TPshop的Android客户端
步骤如下:
-
用ADB连接上设备
<pre class="has" name="code"><code class="hljs css"><span class="hljs-selector-tag">adb</span> <span class="hljs-selector-tag">connect</span> 127<span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-pseudo">:62001</span>
- 前提:必须连接上 Android,
用ADB的方式安装APP
-
<pre class="has" name="code"><code class="hljs css"><span class="hljs-selector-tag">adb</span> <span class="hljs-selector-tag">install</span> <span class="hljs-selector-tag">-r</span> <span class="hljs-selector-tag">C</span>:\<span class="hljs-selector-tag">tmp</span>\<span class="hljs-selector-tag">soubaoShopMobile-debug</span><span class="hljs-selector-class">.apk</span>
安装成功,在ADB SHELL环境中 执行 Monkey(压力测试工具)
-
<pre>
<ol><li> <p><code># 进入 ADB SHELL 环境</code></p> </li> <li> <p><code>adb shell</code></p> </li> <li> <p><code># 获取 TPSHOP 的APP的包名</code></p> </li> <li> <p><code>root@android:/ # ls data/data | gerp soubao</code></p> </li> <li> <p><code>com.soubao.tpshop</code></p> </li> <li> <p><code># 执行 Monkey</code></p> </li> <li> <p><code>root@android:/ # monkey -p com.soubao.tpshop -v -v -v 5000 -throttle 5000 --pct-motion 80% > sdcard/monkey_tpshop.log</code></p> </li> </ol><p></p> </li> <li> <p>用ADB 获取日志到本地C盘的tmp目录中</p> <pre>
<ol><li> <p><code># 退出 ADB SHELL 环境</code></p> </li> <li> <p><code>root@android:/ # exit</code></p> </li> <li> <p><code># 用 ADB PULL 获取文件</code></p> </li> <li> <p><code>adb pull sdcard/monkey_tpshop.log</code></p> </li> <li> <p><code>[100%] sdcard/monkey_tpshop.log</code></p> </li> </ol><p></p> </li> <li> <p>用ADB的方式卸载</p> <pre>
<ol><li> <p><code>adb shell</code></p> </li> <li> <p><code>root@android:/ # ls data/data | grep soubao</code></p> </li> <li> <p><code># 获取到 app的包名</code></p> </li> <li> <p><code>com.soubao.tpshop</code></p> </li> <li> <p><code># 退出 adb shell</code></p> </li> <li> <p><code>root@android:/ # exit</code></p> </li> <li> <p><code>adb uninstall com.soubao.tpshop</code></p> </li> </ol><p></p> </li>
4.2 Monkey 工具
Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常
Monkey 主要用于Android 的压力测试 自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash.
- Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:
/system/framework/monkey.jar
; - Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:
/system/bin/monkey
;
可以在命令行中输入
这样就可以通过在CMD窗口中执行:
adb shell monkey {+命令参数}
来进行Monkey测试了。0.00255359997618565.png
查看Monkey命令帮助
adb shell monkey –help
类别 选项 说明 常规 --help 列出简单的用法。 -v 命令行的每一个 -v 将增加反馈信息的级别。 Level 0( 缺省值 ) 除启动提示、测试完成和最终结果之外,提供较少信息。 Level 1 提供较为详细的测试信息,如逐个发送到 ActivITy 的事件。 Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity 。 事件 -s <seed> 伪随机数生成器的seed 值。如果用相同的 seed 值再次运行 Monkey ,它将生成相同的事件序列。 --throttle <milliseconds> 在事件之间插入固定延迟。通过这个选项可以减缓 Monkey 的执行速度。如果不指定该选项, Monkey 将不会被延迟,事件将尽可能快地被产成。 --pct-touch <percent> 调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)。 --pct-motion <percent> 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)。 --pct-trackball <percent> 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)。 --pct-nav <percent> 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)。 --pct-majornav <percent> 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键) --pct-syskeys <percent> 调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)。 --pct-appswitch <percent> 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。 --pct-anyevent <percent> 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。 约束限制 -p <allowed-package-name> 如果用此参数指定了一个或几个包,Monkey将只允许系统启动这些包里的Activity。如果你的应用程序还需要访问其它包里的Activity(如选择取一个联系人),那些包也需要在此同时指定。如果不指定任何包,Monkey将允许系统启动全部包里的Activity。要指定多个包,需要使用多个 -p选项,每个-p选项只能用于一个包。 -c <main-category> 如果用此参数指定了一个或几个类别,Monkey将只允许系统启动被这些类别中的某个类别列出的Activity。如果不指定任何类别,Monkey将选择下列类别中列出的Activity:Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别,需要使用多个-c选项,每个-c选 项只能用于一个类别。 调试 --dbg-no-events 设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。 --hprof 设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。这将会在data/misc中生成大文件(~5Mb),所以要小心使用它。 --ignore-crashes 通常,当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。 --ignore-timeouts 通常,当应用程序发生任何超时错误(如“Application Not Responding”对话框)时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。 --ignore-security-exceptions 通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。 --kill-process-after-error 通常,当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。当设置了此选项时,将会通知系统停止发生错误的进程。注意,正常的(成功的)结束,并没有停止启动的进程,设备只是在结束事件之后,简单地保持在最后的状态。 --monitor-native-crashes 监视并报告Android系统中本地代码的崩溃事件。如果设置了--kill-process-after-error,系统将停止运行。 --wait-dbg 停止执行中的Monkey,直到有调试器和它相连接。 实际使用的时候 Monkey的 -p -v -throttle --pct-motion 使用比较多
- 下面一个实例
-
adb shell
-
ls data/data
-
monkey -p im.tower.android -v -v -v 5000 -throttle 500 --pct-motion 80% > sdcard\monkey.log
使用monkey进行Tower的压力测试,使用级别2,操作5000个随机命令,并且每个命令延迟5秒钟,滑动的命令占80%。
- 日志分析
正常情况, 如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间;
// Monkey finished 代表执行完成\
异常情况
Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)- 程序无响应的问题: 在日志中搜索 “ANR”
- 崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug
Monkey 执行中断, 在log最后也能看到当前执行次数
5. 安全测试
- APP请求的权限(摄像头、通讯录、通话记录、短信、定位、蓝牙、WiFi、相册)是否有应用场景
- APP的消息显示(锁屏消息提醒、消息栏、图标的角标、最近通知的消息提醒)的关闭和开启
主要的测试内容:
- 易测安全扫描:上传APP到易测平台,由阿里云扫描并发报告。
- 权限的测试:
- 检查APP申请的权限,列出所有权限
- 对所有的权限进行场景描述
- 消息的控制:
- 显示消息的形式
- 显示消息的时机(锁屏是否显示)
6. APP移动测试框架
随着移动互联网的发展,移动测试技术越来越成熟,很多优秀的开源测试框架涌现出来。作为一个移动测试工程师,我们不仅要夯实自己的技术能力,也要学会从开源框架吸取经验。俗话说,站在巨人的肩膀上,我们会看得更远。移动端的测试框架主要分为自动化测试框架,性能测试框架,稳定性测试框架和安全测试框架这几种类型。下面我们分这几个类型介绍10个最常用的移动端测试框架。
6.1 自动化测试框架
- 1)Appium
官方网站:http://appium.io/
Github下载地址:https://github.com/appium/appium
说到移动端的自动化框架,最有名的当属Appium。Appium是一个开源的跨平台移动端UI自动化测试框架,它支持native,hybrid和web app的测试。目前有超过100个贡献者在github上维护和优化Appium的源代码。关于Appium的中文资料也非常多,比较齐全的是乙醇的博客,总结了11篇博文介绍Appium的用法,可以访问http://www.cnblogs.com/nbkhic/tag/appium/ 来查看。另外在testerhome上也有专门针对Appium的讨论社区,在上面你可以跟各种行业大牛沟通和交流。https://testerhome.com/topics/node23- 2) 百度Cafe
官方网站:http://baiduqa.github.io/Cafe/
Github下载地址:https://github.com/BaiduQA/Cafe
Cafe,是一款来自百度QA部门的Android平台自动化测试框架,框架覆盖了Android自动化测试的各种需求,致力于实现跨进程测试、快速测试、深度测试,解决了Android自动化测试中的诸多难题,比如业界一直没有解决的跨进程测试问题。主要亮点有:基于hook录制体系,遍历测试,跨app测试,pc agent设计,使用android 漏洞提权。- 3)阿里Athrun
Github下载地址:https://github.com/taobao-chenxu/athrun-framework
Athrun 无线测试框架是淘宝自动化测试团队开发的UI自动化测试框架,支持Android和iOS移动App的UI自动化测试。Athrun以Mobile自动化为基础,以PC2Mobile为切入点,是淘宝Mobile测试日常工作必备的平台。目前Athrun支持:Android上的自动化测试,包括自动化测试框架,持续集成体系。覆盖率工具和自动录制回放工具,也在试用完善中。iOS上的自动化测试,包括注入式自动化框架AppFramework,和基于录制的非注入式自动化框架Athrun_IOS,还有持续集成体系。目前两个框架在淘宝测试内都有用户群,都还在不断使用和演进过程中。AppFramework将会支持socket通信方式。6.2 性能测试框架
1)网易Emmagee
Github下载地址:https://github.com/NetEase/Emmagee
Wiki: https://github.com/NetEase/Emmagee/wiki
Issues: https://github.com/NetEase/Emmagee/issues
FAQ: https://github.com/NetEase/Emmagee/wiki/FAQ
Emmagee是一个实用的手工Android端性能测试工具,它可以实时监控Android App的CPU,内存,网络流量,电量等。如果手机Root的话,还可以监控top activity及堆信息。此外,它还能根据用户需要设置收集数据的时间间隔。最终以csv文件的方式将报告保存在本地。2)腾讯APT
Github下载地址:https://github.com/stormzhang/APT
Tencent APT Mirror, APT是一个Android平台高效性能测试组件,提供丰富实用的功能,适用于开发自测、定位性能瓶颈;测试人员完成性能基准测试、竞品对比测试。APT是一个eclipse插件,可以实时监控Android手机上多个应用的CPU、内存数据曲线,并保存数据;另外还支持自动获取内存快照、PMAP文件分析等,方便开发人员自测或者测试人员完成性能测试,快速发现产品问题。6.3 稳定性测试框架
1)CrashMonkey4IOS
Github下载地址:https://github.com/vigossjjj/CrashMonkey4IOS
CrashMonkey4IOS是一个iOS稳定性测试工具。它主要支持以下功能:- 支持真机测试、模拟器测试;
- 支持收集系统日志(Systemlog)、崩溃日志(Crashlog)、instrument行为日志
- 支持测试报告截图,绘制行为轨迹
- 支持测试设备信息收集
- 使用最新版的UIAutoMonkey,加入UI Holes与Application Not Repsonding ("ANR")的处理,添加custom.js作为入口脚本.加入tuneup依赖
- 修改UIAutoMonkey.js中截图策略,为每个Event Action进行截图
- 支持测试执行过程中App进入后台,自动恢复
2)CrashMonkey4Android
Github下载地址:https://github.com/DoctorQ/CrashMonkey4Android
CrashMonkey4Android,是一个依靠Cts框架,对原生Monkey进行改造后的产物,拥有以下新增功能:- 保存每一步的截图.
- 保存logcat.
- 保存每一个Monkey事件的信息.
- 分析Crash.
- Html报告.
- 支持多设备.
3)ui-auto-monkey
Github下载地址:https://github.com/jonathanpenn/ui-auto-monkey
UI AutoMonkey是一个简单的面向iOS应用程序的压力测试插件框架。 你可以通过它向你的应用程序连续发出一系列随机的点击,滑动,旋转屏幕,锁屏,解锁等事件。同时它会通过instrument对你的App的性能状况进行实时监控。当应用程序发生crash,它会收集相关的crash日志并存储在本地。6.4 安全测试框架
1)Mobile-Security-Framework-MobSF
Github下载地址:https://github.com/penghaibo203/Mobile-Security-Framework-MobSF
Mobile Security Framework (移动安全框架) 是一款智能、一体化的开源移动应用(Android/iOS)自动渗透测试框架,它能进行静态、动态的分析。- 静态分析器可以执行自动化的代码审计、检测不安全的权限请求和设置,还可以检测不安全的代码,诸如ssl绕过、弱加密、混淆代码、硬编码的密码、危险API的不当使用、敏感信息/个人验证信息泄露、不安全的文件存储等。
- 动态分析器可以在虚拟机或者经过配置的设备上运行程序,在运行过程中检测问题。动态分析器可以从抓取到的网络数据包、解密的HTTPS流量、程序dump、程序日志、程序错误和崩溃报告、调试信息、堆栈轨迹和程序的设置文件、数据库等方面进行进一步的分析。
该框架支持二进制文件(APK & IPA)和源码压缩包。该框架的另一个特点是其可扩展性,你可以轻松制定自定义规则。测试结束后程序会生成一份清晰的报告。我们会进一步拓展次框架以支持Tizen、WindowsPhone等平台。
2)AndroBugs_Framework
官方网站:http://www.androbugs.com/
Github下载地址:https://github.com/jackcn2004/AndroBugs_Framework
AndroBugs框架是一款高效的Android漏洞扫描器,可以帮助开发人员或渗透测试人员在Android应用程序查找潜在的安全漏洞。它是基于Python语言开发的,无需安装,配置相关环境即可使用。
原链接:http://www.jianshu.com/p/adff95ee997c - Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是: