手把手教你ranorex_android自动化测试第一个示例


 

 

要说android的自动化,那真是折腾死我了,从早期的monkeyrunner,到后来的robotium,再到最新的uiautomator,各有各的问题,总之性价比都不够高,不太适合我的使用场景。于是不愿意将研究结果投入实践,一直等待。今年的适配问题越发突出,再不自动化,回归就该搞死人了。

 

于是最后研究比对instrumetation和uiautomator,终于确定了uiautomator方案,其实也是勉为其难,不过总算也是可以实现的。先准备好脚本,批量修改了所有布局文件,增加了contentDescription属性,少许的动态生成的布局,可以在开发配合下代码中增添,到时候提交到svn,以后再有新模块,都要求增加该属性,提交给测试增加自动化测试模块就可以了。

 

不过需要通过sdk的tools目录下的uiautomatorviewer.bat(管理员权限运行),查看界面元素,然后一一引用并进行操作,一是需要开发的大力配合,二是全都要一点点自己写,三是需要编译成jar包,push到手机上才能运行,也就是说只能通过日志暴力调试。

 

峰回路转,本来是有项目找方法测试C#的WPF,在搞定了这事以后,发现ranorex还可以测试ios和android程序,大喜之。于是试了试,发现可以和最传统的自动化测试工具一样进行对象识别,录制和回放,真是大爽呀。(事后经过测试,发现不适合我,因为ranorex和robotium一样,不可以跨应用,只能用回uiautomator解决方案)

 

整个步骤大致是:

1.      Instrument源代码,编译出一个可测版本(这个我回头单独写一章,如何进行instrument源码);

2.      创建一个android的测试项目;

3.      连接上手机,手机上会安装一个service;

4.      部署之前编译的可测试apk到手机上;

5.      录制,回放。

 

这个东西很好的一点是使用的instrument,也就是说他不是从一个孤零零的apk外围做的,而是直接从源码装hook,那要访问到程序的任何东西都可以了。这样就不担心google有一天对外关闭大门,instrumentation可是他自己的东西。

 

先说创建项目吧:

001.png

 

002.png

 

Module和advanced里面可以创建cmd控制台程序,也可以创建测试的模块库,还可以创建窗体程序,我就缺省选择了Testsuite

003.png

 

创建完以后就这个样子了。

 

不管三七二十一,直接开始录制:

004.png

 

005.png


这里的apk是将源码处理过的,其实deploy的时候勾选上instrument就可以了,不过我还是细细说说instrument的细节吧。参考:手把手教你ranorex_android源码instrument

 

006.png

 

提示JRE1.6 not found:

填写JRE的目录:

C:\xxx\android\Java\jdk1.6.0_03\jre

 

随口说一句:Jre就是java程序的运行环境;jdk是你做java开发的那套东西。

 

007.png

 

 

 

出错:

008.png

 

1.      检查apk是否混淆(obfuscated)

2.      必须使用api8以上版本,也就是sdk2.2以上版本;

3.      手机上是否安装了一个没有instrumented的版本

 

依次检查发现都没有问题,仔细一看,我倒,怎么手机连接是个叉叉,于是删除手机重新添加,于是就大功告成了。

 

所以别以为选择上了设备就可以,要随时留心检查一下设备状态是钩钩还是叉叉:

009.png

 

 

在deploy apk之前手机上会先启动一个服务:

010.png

 

这个样子就是安装成功了:

011.png

 

 

点开服务界面中的那个被测程序,会看到一个toast提示:ranorex connected

 

在ranorex上打开view spy

012.png

 

013.png

 

所有的对象都被识别出来了,要知道引用方式,只需找到对象然后点击一下track,爽吧。

 

然后在

014.png

 

 

 

对象库中(这个例子是TandroidRepository.cs)中可以看到引用到的界面元素,录制的操作在Recording1.cs(这个文件头部分强调:// DO NOT MODIFY THIS FILE! It is regenerated by the designer.),不过没关系,还有Recording1.UserCode.cs,你的代码可以写在这里,把录制的代码拷贝来改巴改巴就可以用了。

 

 

好了,这个ranorex工程和android的例子,我都一起打包,提供给大家下载试试吧。

 

http://download.csdn.net/detail/testingba/6939451



 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Ranorex用户指南chm版本,主要包含: [Ranorex Studio - 布局] [课程 1: 开始] 准备录制用户动作 待测系统:KeePass 录制一个测试 分析录制步骤 执行测试 [课程 2: Ranorex 模块 - 测试动作] [课程 3: 数据驱动测试] 在录制中使用变量 在对象库中使用变量 创建测试数据 绑定变量和测试数据 绑定变量和参数 Invoking 动作: 选择 执行数据驱动测试 [课程4:Ranorex测试套件] 测试套件编辑器 模块组编辑器 一个测试套件和它的测试用例的通用结构 运行一个测试套件 不使用Ranorex Studio运行测试 测试套件设置 测试用例设置 在测试套件中使用数据 课程5:Ranorex Recorder 开始录制前 录制之后 录制过程中 回放和调试Action Recorder变量 自定义代码Action 其他编辑选项 基于图像的自动化 [课程6:Ranorex对象库映射UI] 适配一个已存在的对象库 添加库条目 等待UI元素 - 库超时 编辑RanoreXPath 库的拆分 对象库设置对话框 库条目的属性 [课程 7: 代码模块] 创建代码模块 在代码模块中使用对象库 在代码模块中访问屏幕快照 代码模块中使用变量 在测试用例中使用代码模块 课程8:报告 阅读Ranorex报告 报告级别 记录特定信息 更新自定义报告格式 创建一个自定义的报告模板 [课程 9: Ranorex Spy] 跟踪UI元素 RanoreXPath的编辑模式 创建Ranorex快照文件 Ranorex常规设置 [课程10: RanoreXPath编辑器] 何如访问高级RanoreXPath编辑器 高级编辑器的布局 树状试图部分 属性比较部分 比较的类型 关系操作符 适配器类型 可选的路径元素 定义变量 有动态功能的在线视图和离线视图 [代码示例] 在代码中使用对象库 使用对象库等待UI元素 建立Adapter来访问更多的属性和方法 为对象库元素建立一组Adapter 使用Validate类 强制一个测试用例失败 设置automation speed 访问测试用例和测试套件的上下文 高级代码示例 如何做基于图像的自动化 如何查找和比较图像 处理意外出现的对话框 [数据连接器] 管理数据源 数据连接器的类型 简单数据表 CSV文件 SQL连接器 Excel文件 调制向导 从命令行运行调制向导 Java AWT / Swing Adobe Flash / Flex Mozilla Firefox Google Chrome Apple Safari Android iOS [在3.X项目测试套件中使用2.X的项目] 添加 2.X项目到3.X项目中 使用2.X录制模块 适配2.X数据驱动录制模块 使用2.X代码模块 关键变化 技术调制 Flash/Flex测试 java应用的测试 Qt测试 传统应用程序的测试 SAP应用程序的测试 一般故障排除 [RanoreXPath] [Ranorex UI适配器] Android测试 基础设施 开始 录制您的Andr​​oid测试 任意Android设备上运行测试 管理设备 故障排除 使用源代码调制 iOS测试 基础设施 开始 录制你的iOS测试 在任何iOS设备上运行你的测试 测试移动网站 [Web测试] [源码控制] 添加解决方案到源码控制系统中 从源码控制系统中check out解决方案 用Visual Stuido打开已经存在的Renorex TFS解决方案 用Ranorex打开已经存在的Visual Studio TFS解决方案 [Ranorex Studio IDE] 创建 构建 运行 增加新的项目 解决方案浏览器 调试 代码补全 代码转换 代码导航 代码生成 重构 [Visual Studio 集成] [系统需求] [64位平台] [远程运行Ranorex] [Ranorex的静默安装] [许可证] [常见问题解答]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Testingba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值