当前位置:文档之家› Ranorex自动化测试应用-介绍与用例

Ranorex自动化测试应用-介绍与用例

Ranorex自动化测试应用介绍1. Ranorex特色 (5)2. Ranorex自定义Action (5)3. Ranorex的其他编辑选项 (8)3.1. 添加新的Action (8)3.2. Action条目失败继续运行和禁用 (10)3.3. 增加对象库识别对象 (10)4. Ranorex自定义常用代码 (11)4.1. 自动测试途中强制一个用例失败退出 (11)4.2. 抓图及比较图片 (13)5. Ranorex创建代码模块 (14)5.1. 在代码模块中使用对象库 (14)5.2. 代码中实现读取文本文件的内容 (16)5.3. 代码中获取数据库信息 (16)6. Ranorex测试Android App (19)6.1. Android的测试环境 (19)6.1.1. Ranorex服务App (19)6.2. 部署APP到测试设备 (21)6.3. 录制Android应用测试 (23)7. 问题集 (25)7.1. 参数化录入,多次循环录入的实现 (25)7.2. 数据库应用相关 (29)7.2.1. 配置ODBC (30)7.2.2. 引入命名空间 (30)7.2.3. 数据库查询SQL的调用 (30)7.2.4. 数据库增、删、改的调用 (32)7.2.5. 有参数的存储过程的调用 (32)7.2.6. 调用只有单个结果返回SQL的应用 (33)1. Ranorex特色Ranorex相对于QTP、RFT等老牌自动化测试工具而言是一个后来者,也就是最近这些年才冒出来的,但是也在逐渐地发展起来,也有很多自己的特色,更详细的介绍请登录官网了解(c:\iknow\docshare\data\cur_work\)例如:1、支持以自动化库的形式供C#、调用,让我们可以采用这些标准的编程语言,而不是厂商脚本语言来进行自动化测试代码的开发,支持在等IDE中进行自动化脚本开发。

2、支持用XPath来识别GUI元素,验证状态和值、过滤信息等。

3、价格优势€1,190.00 ;Ranorex支持多种语言和平台的测试:.NET, WPF (framework versions 1.1, 2.0, 3.5)Win32 applications (MFC, Delphi)Support for 3rd party controls like Infragistics, DevExpress, QT, etc.Java SWT applicationsWeb Testing, Adobe Flash/Flex Testing安卓及IOS的应用测试;2. Ranorex自定义Action在《ranorex自动化测试框架简介-铭鸿.pptx》,我们提到数据驱动接口测试,Recorder模块中可以使用变量,而不是一直使用录制过程中的固定字符串值。

在Action表内的单元格中,任何你可以改变或者设置值的地方,在那里都可以使用变量。

当某天发现这样的数据驱动已经不能满足你的测试需求了,还能有更强大的功能吗?答案是肯定的,在Recorder提供的功能不能够满足的情况下,Ranorex可以使用自定义代码。

下面的一些例子,可以方便演示自定义代码Action。

在项目视图窗口中,仔细看一个录制模块文件,你会看到有两个相关的代码文件。

以上制模块‘SayHello’有两个代码文件,在Ranorex Studio每个录制模块都对应两种类型的源代码文件:自动生成的主录制模块的源代码文件<RecordingName>. <CS>用户自定义代码的文件<RecordingName>.USERCODE.<CS>每次你更改并保存录制模块,主代码文件‘SayHello.cs’就会重新生成一次。

如果需要修改代码一定要在‘SayHello .UserCode.cs’文件中进行。

创建自定义代码Action你可以,通过转换现有的action创建用户自定义代码Action,或通过工具栏按钮'Add New Action'增加一个新的“用户自定义代码”Action条目。

2.1、转换为用户自定义的代码在录制模块中,选取第4步,鼠标右键打开菜单,选取‘convert to user code’。

输入一个自定义的函数名字即可。

(也可以为自定义函数增加参数)现在可以通过右击Action,从右键菜单中选择'View Code'跳转到生成的代码。

自Ranorex3.3开始,就可以在自定义代码Action使用参数。

可以通过(字符串)值向方法传递,这样就能在测试环境中获得更大的灵活性。

要在一个新的自定义代码Action中使用参数,只需按一下旁边的单元格中键入一个值作为方法的参数(如‘VSayHelloPara’)。

例如增加以下代码,repo.SimpleGUI.Text.Click(); //将输入焦点放入TextBox框内repo.SimpleGUI.Text.TextValue=""; //设置TextBox的值为空这样每次TextBox的内容就是你最近一次的输入了。

截图如下:3. Ranorex的其他编辑选项我们已经了解到Recorder通常是用来记录用户action的。

录制完成后,可能需要编辑录制的数据,例如合并被分割的键盘录入、删除错误记录的Action及自定义Action。

你还可以添加新的Action,例如像添加一个验证步骤,或在录制过程中没考虑到的Action。

3.1. 添加新的Action在Action表中,有两种手动添加action的方式。

一种方法是指定Action本身('添加新Action'),然后分配对应的对象库条目(在多数情况下)。

第二种方法是直接把对象库条目拖放到Action表内,然后生成action。

●使用'Add New Action'按钮添加一个新的Action条目,打开'Add New Action'下拉菜单,如下图所示:●拖放对象库中的对象来启动添加一个新的Action,如下面图所示,你也可以把对象库条目拖放到Action表中创建新的一行。

下图:使用拖放为特定的对象库条目创建一个新的Action(Report –ScreenShot)拖放对象到action表中后,会提示指定Action类型。

更多可用的action信息,请参阅下面信息Action条目的类型Mouse 在当前位置添加一个新的鼠标action条目Mouse Wheel 添加一个新的鼠标滚轮Action条目Touch Event 在当前位置添加一个新的触摸事件Action条目Key Shortcut 添加一个新的快捷键action条目(例如'Ctrl + C'或'Ctrl + V')Key Sequence 添加一个新的键盘输入action条目(例如'Hello')Open Browser 打开一个浏览器并导航到指定的URLRun Application 运行指定路径的应用程序Report 添加一个新的报告Action条目Delay 添加一个新的延时Action条目Screenshot:这个Action将一个特定的对象库条目的截图和用户定义的文本输出到测试报告中。

如果没有分配对象库条目,那么会对整个桌面截图。

User Code 这是用来添加一个新的自定义代码Action条目,例如实现用户特定的验证代码3.2. Action条目失败继续运行和禁用表中列出的每个Action条目,都可以设置为禁用或“失败继续运行”。

设置action条目为“失败继续运行”时,如果遇到错误,模块不会停在那个位置,而是继续执行。

可以通过右键菜单或属性窗口设置这两个选项。

设置为“失败继续运行的条目在Action表中以斜体表示,而禁用的Action条目显示为灰色。

上图:禁用的Action是灰色的,而“失败继续运行'Action以斜体字体表示,对应的步骤有“[ ]”标记。

3.3. 增加对象库识别对象在项目视图,找到对象库,打开后,点击‘Track’。

就可以为对象库增加可识别的对象了。

将Ranorex识别对象红色框,放在需要识别的对象上点击鼠标,相关可识别的对象就会增加到项目的对象库中。

下图是增加的可识别对象截图:4. Ranorex自定义常用代码4.1. 自动测试途中强制一个用例失败退出Ranorex使用异常处理来决定一个测试用例是失败还是成功。

只要所有的ranorex方法都没有抛出异常,测试将会成功。

如果你想自己决定是否一个测试用例失败,你需要在测试用例自动测试途中抛出Ranorex 异常强制这个测试用例失败。

再次看看以下用例:在Ranorex使用自定义代码如下:在跑以上测试用例时,如果我们遇上返回的结果没有“Hello”字符时,就会终止测试用例,返回一个带错误标记的测试报告。

例程代码:repo.SimpleGUI.SayBtn.Click();if (repo.SimpleGUI.ResultLabel.TextValue.Contains("Hello")){Report.Success("返回成功" ,"结果信息包含Hello字符");}else{throw new Ranorex.RanorexException("返回失败,结果找不到Hello 字符");4.2. 抓图及比较图片在该章节中,我们将会获知Ranorex如何获取对象的位图,如何用对象的位图和系统中的位图进行比较了。

其实图片的比较是大多数GUI自动测试都会涉及到的内容,Ranorex提供了很多强大的功能,这里我们还是先从最最基本的位图截图及比较开始吧。

我们依然使用小程序SimpleGUI.exe作为待测应用。

建立一个全新的c#测试项目,然后将SimpleGUI.exe 上右侧的两个按钮(ColorBtn, ChangeColorBtn)的动作,录制捕获后放到对象库中。

然后创建一个用户自定义Action(CompareImg)如下图:编写以下代码:这几行代码,我们首先生成了一个名为BmColorBtn的Bitmap对象,它使用Imaging类的方法CaptureImage来获得对象‘ColorBtn’位图数据,接下来直接使用save函数,保存这个位图数据为一个位图文件RanoRexRes.bmp存放到D盘根目录下,这样就完成了某个控件的抓图了,非常简便快捷。

接下来,点击了ChangeColorBtn这个按钮,这时ColorBtn这个控件上的颜色发生了变化,我们将此时的ColorBtn的位图与刚刚保存好的位图BmColorBtn进行比较(这里是比较内存的内容),允许的冗余是10%,也就是说只要两幅位图的内容相似程度高于或者等于90%就认为对比通过,否则Validate类会报错,其实这个结果是我们可以预知一定是以下报告的结果了。

相关主题