iOS 测试自动化框架——smallapple
来源:互联网 发布:python数组最大值下标 编辑:程序博客网 时间:2024/06/05 17:08
继上面几篇博客所讲的 iOS 专项测试,本篇给大家介绍一款好用的自动化测试框架——smallapple。
该框架由百度移动云测试部的同事开源在 github上,我 fork了一个分支进行二次开发。下面我先来讲一下这个框架的用法,跟官网上有些不同,因为在使用过程中遇到一些钉子,在此文中也给大家一一指出,防止重复踩坑。
1. smallapple简介
1)下载地址
github:https://github.com/elisaxu/smallapple
2)介绍
Smallapple是一个开源的IOS自动化测试工具,旨在提供一套完整的IOS自动化测试解决方案,提供针对IOS App的功能和性能测试,同时提供类似Android adb、重签名、instruments结果解析、录制回放等工具集。
Smallapple通过一键式的执行方式,自动完成App重签名、安装、测试、性能采集(包括CPU、内存、流量等)、Crash检测和结果报告等工作。
3)特性
Smallapple致力于以最简单的方式,最小的代价提供给用户使用。
- 支持非越狱设备
- 不需要依赖源码
- 支持Appstore或者第三方下载的App安装测试
- 完全的命令行模式
Smallapple是基于苹果官方的instruments工具来开发,测试脚本支持原生的UI Automation,同时扩展了很多功能使得自动化测试更加便捷、易用。
2.如何部署
首先,硬件方面需要:
- 一台 MAC( macbook pro、air、iMac均可)
- 要求OSX 10.9+
- 安装 XCode 5.1+
- 确保已安装Apple Developer Tools (command line tools)
其次,在苹果开发者网站上$99(688RMB)买一个开发者帐号,购买步骤请自行百度,本文不再赘述。
然后按照下图的步骤,添加 development证书,认证 App ID,添加你的测试设备,生成 develop profiles.
IOS Developer开发者证书(Certificates),可通过以下命令在终端查看。
security find-identity -v -p codesigning
好,关于硬件和开发者帐号搞完之后,可以从 github上下载最新的 smallapple了。解压之后,把用上面的开发者帐号打好的包放到 smallapple根目录下,如下图。(什么?你还不会打包?请百度之)
3.快速开始
cd到 smallapple根目录下,在终端里输入:
sh smallapple.sh automation -p mobileprovision的绝对路径 -i "开发证书,通过security find-identity -v -p codesigning命令获得" -o result yourapp.ipa
运行完之后,如果没啥报错,在根目录下会生成一个 result文件夹,打开该文件夹下的 result.html可查看测试报告,华丽丽有木有。点击橙色的小点可以查看该时间点的截图。
4.扩展
大多数情况下,只需要提供一个编译好的App(.ipa or .app)即可进行自动化的测试。
建议每次新跑测试时将原来的result目录删除或者-o指定其它目录。
man一下:
usage: smallapple automation [options] <.ipa/.app path | bundle id>options: -s <device id> : specify device id. default the first found device -b : use bundle id instead of app path -o <result dir> : result direcotry. default $PWD/resultscript options: -t <template> : instruments template. default SMALLAPPLE/templates/Automation_Monitor_CoreAnimation_Energy_Network.tracetemplate -c <script> : instruments automation js. default SMALLAPPLE/scripts/UIAutoMonkey.jsresign options: -p <.mobileprovision path> : .mobileprovision path or -e <entitlement path> : entitlement path -i <developer identity> : ios developer identitycrash options: -d <dsym path> : dSYM path for crash analyzeexample: smallapple automation test.ipa smallapple automation -b com.baidu.BaiduMobile smallapple automation -c <testcase> -b com.baidu.BaiduMobile smallapple automation -s <device> -p <provision> -i <identity> -c <testcase> test.ipa
好,知道了-c -o的含义后,我们来做点更有意思的配置。
4.1 Monkey测试
在没有指定测试脚本情况下,smallapple会对test.ipa进行默认Monkey测试,crash、性能数据和报告都会保存在result目录下。
$ sh smallapple.sh automation -o result test.ipa$ open result/report.html
4.2 指定run.js脚本测试
$ sh smallapple.sh automation -c run.js -o result test.ipa
4.3 对已安装在设备上的开发版App测试
需要Bundle Id来指定App,如果不记得可通过以下两种方式获取:
通过App对应的安装包
$ sh smallapple.sh appinfo CFBundleIdentifier test.ipa
或者通过iosutil查看已安装App,找到对应的Bundle Id
$ bin/iosutil listapp
对Bundle Id为com.smallapple.abc的App进行测试
$ sh smallapple.sh automation -c run.js -o result -b com.smallapple.abc
4.4 对第三方App重签名测试
使用-p指定描述文件(Provisoning Profiles),-i指定开发者证书(Certificates)
$ sh smallapple.sh automation -p <provision path> -i "iPhone Developer: smallapple" -c run.js -o result other.ipa
4.5 可视化脚本录制回放
smallapple record或者直接open bin/iOSRecorder.app即可打开录制回放工具
$ sh smallapple.sh record
5.更多介绍
5.1 覆盖安装测试
bin/iosutil可以查看指定App的数据文件,并且可以将App的Documents和Library目录下文件拷贝到Mac机进行旧版本数据的备份,或者将Mac机文件还原上传到这2个目录下。
查看com.baidu.BaiduMobile的Documents目录
$ bin/iosutil ls -b com.baidu.BaiduMobile /Documents
备份com.baidu.BaiduMobile的Documents目录下data文件
$ bin/iosutil pull -b com.baidu.BaiduMobile /Documents/data ./backup
完成新版本安装后,还原com.baidu.BaiduMobile的Documents目录下data文件
$ bin/iosutil push -b com.baidu.BaiduMobile ./backup/data /Documents
待续未完。。
- iOS 测试自动化框架——smallapple
- iOS自动化测试之smallapple 使用翻译
- IOS、Android自动化测试框架
- 【ios自动化测试】iOS自动化测试框架分析与选择
- 软件测试框架——自动化测试框架(专题)
- 软件测试框架——自动化测试框架
- Espresso——Android自动化测试框架
- 几种iOS 自动化测试框架对比
- IOS、Android自动化测试框架Appium
- Appium——iOS自动化测试
- iOS自动化测试之UI自动化框架调研
- 自动化测试中级篇——LazyAndroid UI自动化测试框架使用指南
- 如何进行Android、IOS APP的自动化测试—东舟自动化测试解决方案
- 开源Web自动化测试框架——Watir试用手记
- 开源Web自动化测试框架——Watir试用手记
- 开源Web自动化测试框架——Watir试用手记
- GUI自动化测试——框架及其状态模型
- Selenium——开源的自动化测试框架
- tableviewcell 侧滑删除 点击返回按钮 程序崩溃 [ tableView:canEditRowAtIndexPath:]:message sent to deallocated insta
- 数据结构之双链表
- 近段研究sip服务器和客户端的体会
- Python基础技术问题总结
- 4. oracle学习入门系列之四 oracle数据库简介
- iOS 测试自动化框架——smallapple
- python 第十一周 python条件与循环语句
- JSON-lib与Google-gson比较
- STL hashmap
- 初识nodeJs
- 对于可信QoS的服务聚类调研
- Objective-C 底层数据类型分析(一)
- 四轴PID讲解
- C语言函数返回整形数组