2023年6月29日发(作者:)
Ranore⾃动化测试应⽤介绍及⽤例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等⽼牌⾃动化测试⼯具⽽⾔是⼀个后来者,也就是最近这些年才冒出来的,但是也在逐渐地发展起来,也有很多⾃⼰的特⾊,更详细的介绍请登录官⽹了解(/doc/ /)例如:1、⽀持以⾃动化库的形式供C#、/doc/ 调⽤,让我们可以采⽤这些标准的编程语⾔,⽽不是⼚商脚本语⾔来进⾏⾃动化测试代码的开发,⽀持在/doc/ 等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, SWT applicationsWeb Testing, Adobe Flash/Flex Testing安卓及IOS的应⽤测试;2. Ranorex⾃定义Action在《ranorex⾃动化测试框架简介-铭鸿.pptx》,我们提到数据驱动接⼝测试,Recorder模块中可以使⽤变量,⽽不是⼀直使⽤录制过程中的固定字符串值。在Action表内的单元格中,任何你可以改变或者设置值的地⽅,在那⾥都可以使⽤变量。当某天发现这样的数据驱动已经不能满⾜你的测试需求了,还能有更强⼤的功能吗?答案是肯定的,在Recorder提供的功能不能够满⾜的情况下,Ranorex可以使⽤⾃定义代码。下⾯的⼀些例⼦,可以⽅便演⽰⾃定义代码Action。在项⽬视图窗⼝中,仔细看⼀个录制模块⽂件,你会看到有两个相关的代码⽂件。以上制模块‘SayHello’有两个代码⽂件,在Ranorex Studio每个录制模块都对应两种类型的源代码⽂件:⾃动⽣成的主录制模块的源代码⽂件.⽤户⾃定义代码的⽂件.USERCODE.每次你更改并保存录制模块,主代码⽂件‘’就会重新⽣成⼀次。如果需要修改代码⼀定要在‘’⽂件中进⾏。创建⾃定义代码Action你可以,通过转换现有的action创建⽤户⾃定义代码Action,或通过⼯具栏按钮'Add New Action'增加⼀个新的“⽤户⾃定义代码”Action条⽬。2.1、转换为⽤户⾃定义的代码在录制模块中,选取第4步,⿏标右键打开菜单,选取‘convert to user code’。输⼊⼀个⾃定义的函数名字即可。(也可以为⾃定义函数增加参数)现在可以通过右击Action,从右键菜单中选择'View Code'跳转到⽣成的代码。⾃Ranorex3.3开始,就可以在⾃定义代码Action使⽤参数。可以通过(字符串)值向⽅法传递,这样就能在测试环境中获得更⼤的灵活性。要在⼀个新的⾃定义代码Action中使⽤参数,只需按⼀下旁边的单元格中键⼊⼀个值作为⽅法的参数(如‘VSayHelloPara’)。例如增加以下代码,(); //将输⼊焦点放⼊TextBox框内lue=""; //设置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”字符时,就会终⽌测试⽤例,返回⼀个带错误标记的测试报告。例程代码:();if (ns("Hello")){s("返回成功" ,"结果信息包含Hello字符");}else{throw new xException("返回失败 ,结果找不到 Hello 字符");4.2. 抓图及⽐较图⽚在该章节中,我们将会获知Ranorex如何获取对象的位图,如何⽤对象的位图和系统中的位图进⾏⽐较了。其实图⽚的⽐较是⼤多数GUI⾃动测试都会涉及到的内容,Ranorex提供了很多强⼤的功能,这⾥我们还是先从最最基本的位图截图及⽐较开始吧。我们依然使⽤⼩程序作为待测应⽤。建⽴⼀个全新的c#测试项⽬,然后将上右侧的两个按钮(ColorBtn, ChangeColorBtn)的动作,录制捕获后放到对象库中。然后创建⼀个⽤户⾃定义Action(CompareImg)如下图:编写以下代码:这⼏⾏代码,我们⾸先⽣成了⼀个名为BmColorBtn的Bitmap对象,它使⽤Imaging类的⽅法CaptureImage来获得对象‘ColorBtn’位图数据,接下来直接使⽤save函数,保存这个位图数据为⼀个位图⽂件存放到D盘根⽬录下,这样就完成了某个控件的抓图了,⾮常简便快捷。接下来,点击了ChangeColorBtn这个按钮,这时ColorBtn这个控件上的颜⾊发⽣了变化,我们将此时的ColorBtn的位图与刚刚保存好的位图BmColorBtn进⾏⽐较(这⾥是⽐较内存的内容),允许的冗余是10%,也就是说只要两幅位图的内容相似程度⾼于或者等于90%就认为对⽐通过,否则Validate类会报错,其实这个结果是我们可以预知⼀定是以下报告的结果了。附上代码:public void CompareImg(){Bitmap BmColorBtn = eImage(tn);("D:/");();tions myFindOptions = new tions(0.90);/doc/ pareImage(tn,BmColorBtn, myFindOptions);}报告截图:其实从这个例⼦,我们可以猜测出Ranorex如何加载硬盘⾥的图⽚进⾏⽐较的⽤例,⼤家尝试⼀下。5. Ranorex创建代码模块5.1. 在代码模块中使⽤对象库Ranorex可以完全按⾃定义的流程去组建测试⽤例,这个时候你需求⽤到代码模块了。⼤家可以通过点击⼯具栏上的'AddCode Module'按钮,创建⼀个新的代码模块。输⼊代码模块的名称,点击“创建”按钮后,项⽬中会⾃动添加⼀个新的⽂件,并且在⽂件视图中⾃动打开。Ranorex Studio会创建⼀个新的测试模块类,它包含⼀个“Run”的⽅法,可以⽤来进⾏扩展⾃动化测试代码。在代码模块中使⽤对象库跟你在录制模式下使⽤对象库识别对象⼀样,你也可以在你的代码中使⽤录制时候识别的对象库。只需在代码模块的初始化定义处,添加⼀个新的成员代表你的对象库,如下所⽰:然后就可以在Run函数模块内,⾃由地通过代码控制测试的流程了。void (){tMoveTime = 300;tKeyPressTime = 100;actor = 1.0;lue ="⼴东铭鸿数据有限公司";();}5.2. 代码中实现读取⽂本⽂件的内容Ranorex没有⾃⼰的脚本语⾔,其代码的实现完全与C#或VB⼀致。以下以C#语⾔为例://读取E盘java_out⽬录下的⽂件。(以Windows默认的编码⽅式)放⼊⼀个line的string数组内。string[] line= lLines(@"E:java_out 1009 记账卡客户资料管理",t);//循环地处理string数组内的信息,将⽂件内的每⼀⾏信息提取到StrTemp变量中。⽤户再⾃⾏处理//StrTemp变量的数值for (int i = 0; i < ; i++)string StrTemp=line[i] ;备注:需要在代码模块中增加引⽤包 using ;5.3. 代码中获取数据库信息Ranorex可以C#语⾔以ODBC的⽅式连接数据库,以获取数据库信息,另测试⽤例更灵活;//Sybase 参考代码string odbcstr ="Dsn=ytk;uid=ytk_test;pwd=CStest";string ResultStr ="";OdbcConnection conn=new OdbcConnection(odbcstr);OdbcDataReader ocReader =null;try{();/doc/ ("数据库连接成功:");OdbcCommand oc=new OdbcCommand();tion =conn;/doc/ mandText ="select * from card_inlet_info ";ocReader =eReader();while (()){string res_temp = ing(0) + ing(1)+ocReader["s_license_hex"].ToString()+";";ResultStr +=res_temp;}();/doc/ ("数据库连接成功:"+ResultStr);}catch (Exception e){("数据库连接失败");}//Oracle 范例string odbcstr ="DSN=GZCS;Uid=acc_st;Pwd=acc_st;";string ResultStr ="";OdbcConnection conn = new OdbcConnection(odbcstr);OdbcDataReader ocReader =null;try{();OdbcCommand oc=new OdbcCommand();tion =conn;/doc/ mandText ="select * from op_prm_stationwhere record_flag='0'"; ocReader =eReader();while (()){string res_temp = ing(0) + ing(1) + ocReader["chinese_name"].ToString()+";";ResultStr +=res_temp;}();/doc/ ("数据库连接成功:"+ResultStr);}catch (Exception e){("数据库连接失败");}备注:需要在代码模块中增加引⽤包using ;using ent;6. Ranorex测试Android App⾃动化测试Android App,需要先搭建Android的测试环境,然后再创建和执⾏⼀个测试。6.1. Android的测试环境Android⾃动化测试环境,只需要确保被测系统(移动设备)和运⾏测试的电脑(Ranorex安装的机器)是在同⼀⽹段的⼀个⽹络中即可。通过Wifi连接是最简单的测试连接⽅式。见下图:图:通过Wi-Fi⾃动化测试Android App6.1.1. Ranorex服务App被测系统(Android移动设备)需要确保安装了Ranorex服务App。我们先来安装⼀下APP,在⼀个新的录制模块中,点击录制按钮,选取Mobile。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1688020261a67367.html
评论列表(0条)