Ranorex自动化测试应用介.docx

上传人:b****1 文档编号:14766809 上传时间:2023-06-27 格式:DOCX 页数:33 大小:2.76MB
下载 相关 举报
Ranorex自动化测试应用介.docx_第1页
第1页 / 共33页
Ranorex自动化测试应用介.docx_第2页
第2页 / 共33页
Ranorex自动化测试应用介.docx_第3页
第3页 / 共33页
Ranorex自动化测试应用介.docx_第4页
第4页 / 共33页
Ranorex自动化测试应用介.docx_第5页
第5页 / 共33页
Ranorex自动化测试应用介.docx_第6页
第6页 / 共33页
Ranorex自动化测试应用介.docx_第7页
第7页 / 共33页
Ranorex自动化测试应用介.docx_第8页
第8页 / 共33页
Ranorex自动化测试应用介.docx_第9页
第9页 / 共33页
Ranorex自动化测试应用介.docx_第10页
第10页 / 共33页
Ranorex自动化测试应用介.docx_第11页
第11页 / 共33页
Ranorex自动化测试应用介.docx_第12页
第12页 / 共33页
Ranorex自动化测试应用介.docx_第13页
第13页 / 共33页
Ranorex自动化测试应用介.docx_第14页
第14页 / 共33页
Ranorex自动化测试应用介.docx_第15页
第15页 / 共33页
Ranorex自动化测试应用介.docx_第16页
第16页 / 共33页
Ranorex自动化测试应用介.docx_第17页
第17页 / 共33页
Ranorex自动化测试应用介.docx_第18页
第18页 / 共33页
Ranorex自动化测试应用介.docx_第19页
第19页 / 共33页
Ranorex自动化测试应用介.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Ranorex自动化测试应用介.docx

《Ranorex自动化测试应用介.docx》由会员分享,可在线阅读,更多相关《Ranorex自动化测试应用介.docx(33页珍藏版)》请在冰点文库上搜索。

Ranorex自动化测试应用介.docx

Ranorex自动化测试应用介

 

Ranorex自动化测试应用介绍

 

版本号

日期

编写者

审核者

描述

V1.0

2017.05.05

质量管理部

初版

 

在录制模块中,选取第4步,鼠标右键打开菜单,选取‘converttousercode’。

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

(也可以为自定义函数增加参数)

现在可以通过右击Action,从右键菜单中选择'ViewCode'跳转到生成的代码。

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

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

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

例如增加以下代码,

repo.SimpleGUI.Text.Click();//将输入焦点放入TextBox框内

repo.SimpleGUI.Text.TextValue="";//设置TextBox的值为空

这样每次TextBox的内容就是你最近一次的输入了。

截图如下:

1.Ranorex的其他编辑选项

我们已经了解到Recorder通常是用来记录用户action的。

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

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

1.1.添加新的Action

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

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

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

●使用'AddNewAction'按钮添加一个新的Action条目,打开'AddNewAction'下拉菜单,如下图所示:

●拖放对象库中的对象来启动添加一个新的Action,如下面图所示,你也可以把对象库条目拖放到Action表中创建新的一行。

下图:

使用拖放为特定的对象库条目创建一个新的Action(Report–ScreenShot)

拖放对象到action表中后,会提示指定Action类型。

更多可用的action信息,请参阅下面信息

Action条目的类型

Mouse在当前位置添加一个新的鼠标action条目

MouseWheel添加一个新的鼠标滚轮Action条目

TouchEvent在当前位置添加一个新的触摸事件Action条目

KeyShortcut添加一个新的快捷键action条目(例如'Ctrl+C'或'Ctrl+V')

KeySequence添加一个新的键盘输入action条目(例如'Hello')

OpenBrowser打开一个浏览器并导航到指定的URL

RunApplication运行指定路径的应用程序

Report添加一个新的报告Action条目

Delay添加一个新的延时Action条目

Screenshot:

这个Action将一个特定的对象库条目的截图和用户定义的文本输出到测试报告中。

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

UserCode这是用来添加一个新的自定义代码Action条目,例如实现用户特定的验证代码

1.2.Action条目失败继续运行和禁用

表中列出的每个Action条目,都可以设置为禁用或“失败继续运行”。

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

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

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

上图:

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

1.3.增加对象库识别对象

在项目视图,找到对象库,打开后,点击‘Track’。

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

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

下图是增加的可识别对象截图:

2.Ranorex自定义常用代码

2.1.自动测试途中强制一个用例失败退出

Ranorex使用异常处理来决定一个测试用例是失败还是成功。

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

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

再次看看以下用例:

在Ranorex使用自定义代码如下:

在跑以上测试用例时,如果我们遇上返回的结果没有“Hello”字符时,就会终止测试用例,返回一个带错误标记的测试报告。

例程代码:

repo.SimpleGUI.SayBtn.Click();

if(repo.SimpleGUI.ResultLabel.TextValue.Contains("Hello"))

{

Report.Success("返回成功","结果信息包含Hello字符");

}

else{

thrownewRanorex.RanorexException("返回失败,结果找不到Hello字符");

2.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类会报错,其实这个结果是我们可以预知一定是以下报告的结果了。

附上代码:

publicvoidCompareImg()

{

BitmapBmColorBtn=Imaging.CaptureImage(repo.SimpleGUI.ColorBtn);

BmColorBtn.Save("D:

/RanorexRes.bmp");

repo.SimpleGUI.ChangeColorBtn.Click();

Imaging.FindOptionsmyFindOptions=newImaging.FindOptions(0.90);

Validate.CompareImage(repo.SimpleGUI.ColorBtn,BmColorBtn,myFindOptions);

}

报告截图:

其实从这个例子,我们可以猜测出Ranorex如何加载硬盘里的图片进行比较的用例,大家尝试一下。

3.Ranorex创建代码模块

3.1.在代码模块中使用对象库

Ranorex可以完全按自定义的流程去组建测试用例,这个时候你需求用到代码模块了。

大家可以通过点击工具栏上的'AddCodeModule'按钮,创建一个新的代码模块。

输入代码模块的名称,点击“创建”按钮后,项目中会自动添加一个新的文件,并且在文件视图中自动打开。

RanorexStudio会创建一个新的测试模块类,它包含一个“Run”的方法,可以用来进行扩展自动化测试代码。

在代码模块中使用对象库跟你在录制模式下使用对象库识别对象一样,你也可以在你的代码中使用录制时候识别的对象库。

只需在代码模块的初始化定义处,添加一个新的成员代表你的对象库,如下所示:

然后就可以在Run函数模块内,自由地通过代码控制测试的流程了。

voidITestModule.Run()

{

Mouse.DefaultMoveTime=300;

Keyboard.DefaultKeyPressTime=100;

Delay.SpeedFactor=1.0;

Mypro.SimpleGUI.Text.TextValue="广东铭鸿数据有限公司";

Mypro.SimpleGUI.SayBtn.Click();

}

3.2.代码中实现读取文本文件的内容

Ranorex没有自己的脚本语言,其代码的实现完全与C#或VB一致。

以下以C#语言为例:

//读取E盘java_out目录下的文件。

(以Windows默认的编码方式)放入一个line的string数组内。

string[]line=File.ReadAllLines(@"E:

\java_out\1009记账卡客户资料管理\TestCase.txt",

System.Text.Encoding.Default);

//循环地处理string数组内的信息,将文件内的每一行信息提取到StrTemp变量中。

用户再自行处理//StrTemp变量的数值

for(inti=0;i

stringStrTemp=line[i];

备注:

需要在代码模块中增加引用包usingSystem.IO;

3.3.代码中获取数据库信息

Ranorex可以C#语言以ODBC的方式连接数据库,以获取数据库信息,另测试用例更灵活;

//Sybase参考代码

stringodbcstr="Dsn=ytk;uid=ytk_test;pwd=CStest";

stringResultStr="";

OdbcConnectionconn=newOdbcConnection(odbcstr);

OdbcDataReaderocReader=null;

try

{

conn.Open();

Report.Info("数据库连接成功:

");

OdbcCommandoc=newOdbcCommand();

oc.Connection=conn;

oc.CommandText="select*fromcard_inlet_info";

ocReader=oc.ExecuteReader();

while(ocReader.Read())

{

stringres_temp=ocReader.GetString(0)+ocReader.GetString

(1)

+ocReader["s_license_hex"].ToString()+";";

ResultStr+=res_temp;

}

conn.Close();

Report.Info("数据库连接成功:

"+ResultStr);

}

catch(Exceptione){

Report.Error("数据库连接失败");

}

//Oracle范例

stringodbcstr="DSN=GZCS;Uid=acc_st;Pwd=acc_st;";

stringResultStr="";

OdbcConnectionconn=newOdbcConnection(odbcstr);

OdbcDataReaderocReader=null;

try

{

conn.Open();

OdbcCommandoc=newOdbcCommand();

oc.Connection=conn;

oc.CommandText="select*fromop_prm_stationwhererecord_flag=\'0\'";

ocReader=oc.ExecuteReader();

while(ocReader.Read())

{

stringres_temp=ocReader.GetString(0)+ocReader.GetString

(1)+

ocReader["chinese_name"].ToString()+";";

ResultStr+=res_temp;

}

conn.Close();

Report.Info("数据库连接成功:

"+ResultStr);

}

catch(Exceptione){

Report.Error("数据库连接失败");

}

备注:

需要在代码模块中增加引用包

usingSystem.Data.Odbc;

usingSystem.Data.SqlClient;

4.Ranorex测试Andr​​oidApp

自动化测试Andr​​oidApp,需要先搭建Android的测试环境,然后再创建和执行一个测试。

4.1.Android的测试环境

Android自动化测试环境,只需要确保被测系统(移动设备)和运行测试的电脑(Ranorex安装的机器)是在同一网段的一个网络中即可。

通过Wifi连接是最简单的测试连接方式。

见下图:

图:

通过Wi-Fi自动化测试AndroidApp

4.1.1.Ranorex服务App

被测系统(Andr​​oid移动设备)需要确保安装了Ranorex服务App。

我们先来安装一下APP,在一个新的录制模块中,点击录制

按钮,选取Mobile。

在打开的对话框中,点击‘Adddevice…’

在ManageDevices对话框选取‘add’,然后选取‘Android’-【Next】-选取‘NetWork’点击【Next】,通过使用二维码阅读器程序来扫描二维码,或通过输入说明中的URL,就可以下载Ranorex服务App并安装到被测的移动设备上。

下载并安装后,安装了Ranorex服务App的设备,就可以通过”Network”连接在列表中被看到,选择该设备,并点击“添加”按钮。

以下截图表明已经配置好And​​r​​oid设备,测试环境已经搭建成功了。

4.2.部署APP到测试设备

测试环境配置好后,就可以将要进行自动化测试的App调制部署到设备上。

参考上一节,找到【Addapp…】页面。

如下图:

(请确保您的机器上已经安装了JRE1.6或1.7)

点击【Addapp…】按钮。

选择好APK文件,Ranorex会自动调制到选定的设备上,详见下图。

上图为调制过程,当完成调制后,APP将在移动设备上安装。

下面的截图为APK安装时要进行的确认。

在移动设备安装好App后,点击【Finish】按钮。

4.3.录制Andr​​oid应用测试

准备好设备,并调制好APK后,,选择对应的设备以及要执行的App,就可以开始录制了。

当你点击录制按钮时,刚才调制在移动设备上的App将自动运行,并在录制机器桌面上弹出通知,告之用户移动设备上的操作将被录制。

在录制过程中,Ranorex的Action表将清晰得显示已执行的步骤,并且是实时更新。

在移动设备上进行测试后,可以按下“停止”按钮停止录制过程。

录制并修改Action表之后,按下“运行”按钮,这样就能在移动设备上执行测试。

5.问题集

5.1.参数化录入,多次循环录入的实现

问题:

Ranorex录制后,有多个字段的数据,这些数据要求按照某个表格的数据进行输入,这个哪里设置怎么设置?

而且这些字段的值不能与上一条记录重复的,此处,需要写脚本做循环吗?

回复:

字段按照某个表格的数据进行输入,可以通过参数化实现,Ranorex叫做数据源。

它是在TestSuite模块实现的。

以下举个例子:

在乌市轨道系统,需要增加票卡主类型这个参数,页面截图如下:

其主类型ID与票卡名称需要参数化,并可以循环增加多个字段。

实现步骤如下:

1、录制增加票卡类型的整个操作;截图如下

2、增加需要参数化的变量;截图如下:

按照以上三幅截图,增加两个变量VarCardTpe,VarCardNam。

如下图:

3、编辑一个Excel文本(保存为“namestr.xlsx”)。

如下图:

4、在Ranorex的Suite模块内,选定某一个测试用例(TestCase),点击“Datasource…”

选取第3步编辑好的Excel文件。

点击OK后,程序的界面出现以下信息,表示这个测试用例将自动按数据源的数量循环执行4次。

5、变量有了,数据源也设置好了,现在需要的绑定变量。

在点击相应的“DataSource..”按钮,将弹出数据源设置页面,点击“DataBinding”,按照以下截图设置。

以上步骤即可以完成了。

Ranorex目前可以支持4种数据源格式:

简单表格、CSV、Excel及ODBC等。

使用数据源、参数化录入特别需要注意自动化输入的信息要在一个单独的事务中进行。

上面的例子由于事务含登录操作,那这个自动化时,将发现不断地打开新的页面,输入登录信息及增加参数等操作。

实际应用中需要多加注意。

5.2.数据库应用相关

问题:

Ranorex可以连接数据库进行相关的操作吗?

回复:

是可以的;

5.2.1.配置ODBC

需要确保系统的ODBC配置正确;以下为Oracle配置成功的截图

5.2.2.引入命名空间

在相应的模块引入命名空间,令代码可以使用C#的数据库相关函数;

5.2.3.数据库查询SQL的调用

ODBC的配置如下:

要获取车站配置表某些字段的信息,代码如下:

stringodbcstr="Dsn=WUMQCS;uid=w_acc_st;pwd=w_acc_st";

stringResultStr="";

OdbcConnectionconn=newOdbcConnection(odbcstr);

OdbcDataReaderocReader=null;

try

{

conn.Open();

Report.Info("数据库连接成功:

");

OdbcCommandoc=newOdbcCommand();

oc.Connection=conn;

stringSqlStr="0";

oc.CommandText="SELECTt.*FROMw_op_prm_stationtwheret.record_flag='"+SqlStr+"'";

ocReader=oc.ExecuteReader();

while(ocReader.Read())

{

stringres_temp=ocReader.GetString(0)+ocReader.GetString

(1)+

ocReader["chinese_name"].ToString()+";/r/n";

ResultStr+=res_temp;

}

conn.Close();

Report.Info("数据库连接成功:

"+ResultStr);

}

catch{

Report.Error("数据库连接失败");

}

5.2.4.数据库增、删、改的调用

这些不用获取返回值的SQL执行见下面代码:

stringStrtemp="";

stringodbcstr="Dsn=WUMQCS;uid=w_acc_st;pwd=w_acc_st";

stringResultStr="";

OdbcConnectionconn=newOdbcConnection(odbcstr);

OdbcDataReaderocReader=null;

try

{

conn.Open();

OdbcCommandoc=newOdbcCommand();

oc.Connection=conn;

oc.CommandText="deleteFROMw_op_prm_dev_codetwheret.record_flag='3'andt.line_id='01'"

+"andt.station_id='01'andt.dev_type_id='03'andt.device_id='001'";

oc.ExecuteNonQuery();

oc.CommandText="commit";

oc.ExecuteNonQuery();

conn.Close();

Report.Warn("数据库删除车站配置成功。

");

}

catch{

Report.Error("数据库连接失败");

}

5.2.5.有参数的存储过程的调用

调用存储过程的例子如下:

stringStrtemp="";

stringodbcstr="Dsn=WUMQCS;uid=w_acc_st;pwd=w_acc_st";//数据源

intvInReturnDay=1;//等待日1以内,2以外

intvBuRecTyp=1;//业务类型1非即退4挂失

intvResult=0;//存储过程返回值

//初始化非即退的申请(调用的存储过程有4个参数,其中两个是输入、两个是输出)

OdbcConnectionconn=newOdbcConnection(odbcstr);

OdbcDataReaderocReader=null;

try

{

conn.Open();

OdbcCommandoc=newOdbcCommand("{callW_ST_CS_NON_RTN(?

?

?

?

)}",conn);

oc.CommandType=CommandType.StoredProcedure;

//存储过程的输入参数

oc.Parameters.Add("InReturnDay",OdbcType.Int).Direction=ParameterDirection.Input;

oc.Parameters["InReturnDay"].Value=vInReturnDay;

oc.Parameters.Add("BuRecTyp",O

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2