资源描述
MobileRunner
移动设备自动化测试软件
技术白皮书
泽众软件
目录
1产品理念 - 3 -
1.1系统定位 - 3 -
1.2适用范围 - 3 -
2系统构架 - 3 -
3对外编程接口API - 4 -
3.1API定义 - 4 -
4系统基本功能 - 7 -
4.1 测试案例创建 - 7 -
4.2 测试案例录制 - 7 -
4.2 测试案例执行 - 12 -
4.3 测试报告分析 - 13 -
1产品理念
1.1系统定位
MobileRunner1.2.2.4(下文简称“MR”)是上海泽众软件科技有限公司开发的,拥有自主产权的移动设备自动化测试工具,缩写MR。
MR是伴随着移动设备测试自动化的理念孕育而生的自动化测试软件产品,它专注于移动设备的系统及应用软件的自动化功能测试、兼容性测试、性能测试等领域,通过将自动化方法和黑盒测试方法相结合,快速发现和定位问题,并向使用用户提供问题跟踪和解决建议,有效地从源头解决各种软件质量问题。
1.2适用范围
MR支持Android2.3系统以上的移动设备,可以根据测试用例完成对系统软件及手机应用:录制测试脚本,并回放测试脚本,生成测试报告。开发工程师可以通过查看报告总结分析问题,使代码合理化、规范化,从而提高程序质量。
2系统构架
MR的工作原理和流程如下图:
功能测试
兼容性测试
性能测试
APP
测试报告
MR的软件测试分为功能测试、兼容性测试、性能测试三个层面。
用户将APP软件提交后,通过MR功能、兼容性、性能的三个层面的测试,生成测试报告,通过测试报告分析及解决问题。
3对外编程接口API
3.1API定义
1) JAR 文件
API 库
MobileRunner.jar
用于录制,回放脚本,生成测试报告。
依赖库
bsh-2.0b4.jar
用于执行脚本
dom4j-l.6.l.jar
用于脚本组件xml解析
jxl.jar
用于创建参数表文件
log4j.jar
用于打印脚本回放信息日志
parser.jar
解析类文件的核心JAR 包
javacv.jar
图像识别核心JAR包
动态库
opencv_core245.dll
opencv 解析核心动态库
opencv_imgproc245.dll
opencv 解析核心动态库
JavaAccessBridge.dll
java解析核心动态库
JAWTAccessBridge.dll
java 解析核心动态库
MobileRunner.dll
MobileRunner核心动态库
注:该JAR 文件使用JAVA6 编译,使用时需将所有的JAR 文件全部放在CLASSPATH 当中
2) Class1 AndroidAR
包:com.spasvo.android
类:public Android
注: 此类在JAR 文件MobileRunner.jar 中,
此类是一个工具类,提供得到单例的getInstance()方法得到实例。
获取操作对象实例
static AndroidAR getInstance();
param:
<no params>
returns:
AndroidAR: 操作对象实例
初始化方法
public void init()
Param:
<no params>
return:
No returns
设置设备标号
public boolean setChimpDevice(int index)
param:
index:设备标号;
return:
Boolean:设置成功或失败
得到所有连接设备
public List<IDevice> getDevices()
prama:
No params;
return:
List<IDevice>: 获取所有设备
检查图片对象正确性
public boolean checkPoint(String element,int x,int y,int width,int height) param:
String element :组件id
int x:横坐标
int y:纵坐标
int width:宽度
int height:高度
returns:成功或失败
3) Class2 MobileRunnerScript
包:com.spasvo.android
类:public MobileRunnerScript
注:此类在JAR 文件MobileRunner.jar 中,用于脚本回放。
属性
String fileStorePath;//测试用例的根路径
String srcFilePath:被解析的类文件的路径;
ParameterData parameterData;//脚本参数化;
CvRect openCVFindRect;//使用OpenCV找到的元素的范围;
private int findTime = 10000;//查找组件的超时时间;
List listFlag = new ArrayList():脚本回放结果集合;
int findSleepTime = 1000;//查找组件的间隔时间
构造方法
public MobileRunnerScript(AdbChimpDevice device,String fileStorePath);
param:
device:回放设备
fileStorePath:文件的绝对路径
returns:<no returns>
方法
提供所有属性的Getter 和Setter 方法
4) Class3 ImageUtil
包:com.spasvo.android
类:public ImageUtil
注:此类在JAR 文件MobileRunner.jar 中,用于转化图片格式
检查图片对象正确性
public static String bufferedImageToBase64Str(BufferedImage image)
param:
BufferedImage image:图片对象。
return:
String:BASE64字符串
构造方法
默认构造方法
4系统基本功能
4.1 测试案例创建
4.1.1 创建测试案例
用户能够创建一个测试案例,在项目浏览器中使用右键菜单或者系统的菜单来创建测试案例。
4.2 测试案例录制
4.2.1录制脚本
当用户从菜单或者工具条启动“录制”命令,系统开始记录你对手机的所有操作,包括触摸、长按、滑屏等操作,并在记录过程中把生成的脚本文件显示在编辑器上面,使用户彻底摆脱了文字式的测试用例,测试用例不再需要手工书写,用例编写效率至少提升 200%。
下表列出MR支持的脚本命令:
命令名称
命令参数
命令举例
startActivity
APP包名及主类名称
mr.startActivity("com.android.camera/.Camera");
touch
七个参数,分别代表点击获取的图片名称,图片X坐标,图片Y坐标,图片宽度,图片高度,点击的X坐标,点击的Y坐标
mr.touch("po151015.jpg",596,210,67,67,619,217);
touchKey
输入点击的物理按键的名称
mr.touchKey("BACK");
longTouch
七个参数,分别代表点击获取图片名称,图片X坐标,图片Y坐标,图片宽度,图片高度
mr.touch("test11100625.jpg",549,851,101,101,600,900);
touchMove
五个参数,要求输入滑屏时的起始坐标、结束坐标和用时
mr.touchMove(100,110,500,300,2000);
enterContext
输入文本内容
mr.enterContext("hello,spasvo");
checkPoint
五个参数,要求输入保存检查图的文件名,图片坐标及大小
mr.checkPoint("d1171940.png",59,583,587,92);
installPackage
输入adndroid应用文件路径
mr.installPackage("C:/Users/lyndan/Desktop/3601.3.2.apk");
removePackage
输入android应用的包名
mr.removePackage("com.test.myapp");
callScript
输入脚本文件全路径
mr.callScript("c://test.bsh");
录制的结果是得到了一个可以被执行的测试脚本文件。
4.2.2测试案例编辑
MobileRunner 提供了强大的测试案例编辑功能, 第一,提供了java 脚本的关键字识别技术,能够识别系统的关键字,避免语法错误;第二,提供了实时代码提示的功能。
4.2.3 检查点
支持图片检查点。
测试的目的是看执行一个过程,结果是否和预期结果一样。验证的方法就是查看结果是否一致,这个点我们称作“检查点”。 检查成功则继续执行,检查不成功也需要继续执行,并且把结果写入测试报告。
增加检查点
用户可以在录制时来增加检查点,点击设置检查点按钮,系统会自动弹出当前设备的界面图,用户通过鼠标选择需要检查的内容。
4.2.4参数化
系统自带资源库,录制的过程中系统会自动往资源库里边添加资源,我们可以根据资源的不同,进行参数化,从而实现相同的步骤的测试用例,只是资源不同的参数化。资源库支持编辑资源,删除资源。
点击循环参数列表在脚本中加入参数列表, for(ParameterData pd : mr.getParameterDataList("ttt.xls")/*.subList(0, 1)*/)
{
//mr.parameterData = pd;//mr.parameterData可用于脚本之间传递参数
pd.getFrom(“aa”);
}
4.3 测试案例执行
4.3.1 案例执行
当测试案例只有能够被执行才有意义,测试脚本首先被编译,然后执行。用户通过菜单上的“执行”项,可以执行这个测试案例,目前移动设备种类众多,屏幕分辨率也较多,同一用例可以在不同分辨率下执行该项功能有着重大的实际意义,用户在一款设备分辨率下录制的测试用例,可以在不同分辨率的设备上执行。
4.3.2 查看设备信息
用户选中设备列表中显示的一个设备,点击查看按钮,可以看到连接设备的有关信息,设备的状态包括online,offline
4.4 测试报告
4.4.1 存放测试报告
当用户执行已创建的测试计划时,系统会提示用户选择保存测试报告的位置。
4.4.2 测试报告格式及内容
当用户创建的测试计划执行完成,会自动生成相对应的测试报告,格式为Html文件,在报告里详细记录了测试设备的相关硬件参数、测试脚本的每一条内容及执行的成功或失败的记录等相关信息,从而更好的帮助用户完成对测试内容的分析。
展开阅读全文