1、 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 -
2、 1产品理念 1.1系统定位 MobileRunner1.2.2.4(下文简称“MR”)是上海泽众软件科技有限公司开发的,拥有自主产权的移动设备自动化测试工具,缩写MR。 MR是伴随着移动设备测试自动化的理念孕育而生的自动化测试软件产品,它专注于移动设备的系统及应用软件的自动化功能测试、兼容性测试、性能测试等领域,通过将自动化方法和黑盒测试方法相结合,快速发现和定位问题,并向使用用户提供问题跟踪和解决建议,有效地从源头解决各种软件质量问题。 1.2适用范围 MR支持Android2.3系统以上的移动设备,可以
3、根据测试用例完成对系统软件及手机应用:录制测试脚本,并回放测试脚本,生成测试报告。开发工程师可以通过查看报告总结分析问题,使代码合理化、规范化,从而提高程序质量。 2系统构架 MR的工作原理和流程如下图: 功能测试 兼容性测试 性能测试 APP 测试报告 MR的软件测试分为功能测试、兼容性测试、性能测试三个层面。 用户将APP软件提交后,通过MR功能、兼容性、性能的三个层面的测试,生成测试报告,通过测试报告分析及解决问题。 3对外编程接口API 3.1API定义 1) JAR 文件 API 库 MobileRunner.jar 用于录制,回放脚本,生成
4、测试报告。 依赖库 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 ja
5、va 解析核心动态库
MobileRunner.dll
MobileRunner核心动态库
注:该JAR 文件使用JAVA6 编译,使用时需将所有的JAR 文件全部放在CLASSPATH 当中
2) Class1 AndroidAR
包:com.spasvo.android
类:public Android
注: 此类在JAR 文件MobileRunner.jar 中,
此类是一个工具类,提供得到单例的getInstance()方法得到实例。
获取操作对象实例
static AndroidAR getInstance();
param:
6、
returns:
AndroidAR: 操作对象实例
初始化方法
public void init()
Param:
7、有设备 检查图片对象正确性 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 文件MobileRunn
8、er.jar 中,用于脚本回放。 属性 String fileStorePath;//测试用例的根路径 String srcFilePath:被解析的类文件的路径; ParameterData parameterData;//脚本参数化; CvRect openCVFindRect;//使用OpenCV找到的元素的范围; private int findTime = 10000;//查找组件的超时时间; List listFlag = new ArrayList():脚本回放结果集合; int findSleepTime = 1000;//查找组件的间隔时间 构造方
9、法
public MobileRunnerScript(AdbChimpDevice device,String fileStorePath);
param:
device:回放设备
fileStorePath:文件的绝对路径
returns:
10、atic String bufferedImageToBase64Str(BufferedImage image) param: BufferedImage image:图片对象。 return: String:BASE64字符串 构造方法 默认构造方法 4系统基本功能 4.1 测试案例创建 4.1.1 创建测试案例 用户能够创建一个测试案例,在项目浏览器中使用右键菜单或者系统的菜单来创建测试案例。 4.2 测试案例录制 4.2.1录制脚本 当用户从菜单或者工具条启动“录制”命令,系统开始记录你对手机的所有操作,包括触摸、长按、滑屏等操作,并
11、在记录过程中把生成的脚本文件显示在编辑器上面,使用户彻底摆脱了文字式的测试用例,测试用例不再需要手工书写,用例编写效率至少提升 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); touchKe
12、y 输入点击的物理按键的名称 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 五个参数,要求输入保存
13、检查图的文件名,图片坐标及大小 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"); 录制的结果是得到了一个可以被执行的测试脚
14、本文件。 4.2.2测试案例编辑 MobileRunner 提供了强大的测试案例编辑功能, 第一,提供了java 脚本的关键字识别技术,能够识别系统的关键字,避免语法错误;第二,提供了实时代码提示的功能。 4.2.3 检查点 支持图片检查点。 测试的目的是看执行一个过程,结果是否和预期结果一样。验证的方法就是查看结果是否一致,这个点我们称作“检查点”。 检查成功则继续执行,检查不成功也需要继续执行,并且把结果写入测试报告。 增加检查点 用户可以在录制时来增加检查点,点击设置检查点按钮,系统会自动弹出当前设备的界面图,用户通过鼠标选择需要检查的内容。 4.2.4参
15、数化 系统自带资源库,录制的过程中系统会自动往资源库里边添加资源,我们可以根据资源的不同,进行参数化,从而实现相同的步骤的测试用例,只是资源不同的参数化。资源库支持编辑资源,删除资源。 点击循环参数列表在脚本中加入参数列表, for(ParameterData pd : mr.getParameterDataList("ttt.xls")/*.subList(0, 1)*/) { //mr.parameterData = pd;//mr.parameterData可用于脚本之间传递参数 pd.getFrom(“aa”); } 4.3 测试案例执行 4.3.1 案例执
16、行 当测试案例只有能够被执行才有意义,测试脚本首先被编译,然后执行。用户通过菜单上的“执行”项,可以执行这个测试案例,目前移动设备种类众多,屏幕分辨率也较多,同一用例可以在不同分辨率下执行该项功能有着重大的实际意义,用户在一款设备分辨率下录制的测试用例,可以在不同分辨率的设备上执行。 4.3.2 查看设备信息 用户选中设备列表中显示的一个设备,点击查看按钮,可以看到连接设备的有关信息,设备的状态包括online,offline 4.4 测试报告 4.4.1 存放测试报告 当用户执行已创建的测试计划时,系统会提示用户选择保存测试报告的位置。 4.4.2 测试报告格式及内容 当用户创建的测试计划执行完成,会自动生成相对应的测试报告,格式为Html文件,在报告里详细记录了测试设备的相关硬件参数、测试脚本的每一条内容及执行的成功或失败的记录等相关信息,从而更好的帮助用户完成对测试内容的分析。






