正如第2课:Ranorex模块 - 测试操作中已经提到的那样,建议将测试用例分成可重复使用和可参数化的测试自动化模块。在Ranorex测试套件中,您不仅可以通过组合现有的自动化模块轻松创建新的测试用例 - 还可以指定全局参数和数据连接器来设置数据驱动的测试用例。
在下面的课程中,您将了解到:
在验证步骤中,Ranorex自动为持有KeePass版本号的单元创建一个新的储存库项 - 文本本身用于识别单元(路径)。由于单元格的内容(KeePass的版本号)用于识别,更高的版本号会导致测试用例失败,因为单元格不再被找到 - 独立于验证步骤本身版本号的匹配。为了避免这种情况,这个单元格的路径应该被修改为更健壮。路径可以使用路径编辑器进行编辑。另外,它不应该使用版本号本身来识别。
模块组编辑器
您可以使用右键单击模块组出现的上下文菜单项“数据绑定...”为模块组中的模块定义数据绑定。
模块组的数据绑定与模块的工作方式完全相同。
有关使用模块和数据绑定的更多详细信息,请参见第2课:Ranorex模块和测试操作以及第3课:数据驱动的测试。
测试套件的一般结构
#1测试套件 | 表示整个测试套件并且是结构的根级别 |
#2测试用例 | 代表一个测试用例 |
#3安装区域 | 用于准备测试用例的组模块(例如,启动被测系统,初始化数据库等) |
#4智能文件夹 | 用于组织其他项目。智能文件夹可以嵌套(智能文件夹可能包含其他智能文件夹) |
#5模块组 | 用于将几个模块分组为一个可重用的集合 |
#6拆解区域 | 用于清理测试用例的组模块(例如删除测试执行期间生成的文件,关闭应用程序等) |
#7代码模块 | 用代码编写的自动化模块 |
#8录制模块 | 自动化模块通过记录生成 |
这些项目遵循层次结构。这意味着有一些规则可以定义哪些项目可以直接添加到测试套件结构中的其他项目中。下表说明了这一点。
设置和拆卸区域
安装和拆卸区域用于准备和清理单个测试用例/智能文件夹运行。
设置区域将在测试用例/智能文件夹保存的任何其他模块之前运行,并且应该包含将测试系统正好置于测试可以开始的状态所需的任何模块。使用本节的典型案例是启动待测试应用程序并与用户一起登录。
拆卸区域将在测试用例/智能文件夹中的所有模块之后运行,或者当错误导致测试用例/智能文件夹运行中止时运行拆卸区域。拆解区域应该包含清理被测系统所需的任何模块,并使其达到原始状态。使用此部分的典型案例是删除所有添加的数据并关闭测试中的应用程序。
安装区域将自动放置在开始处,拆卸区域将自动放置在测试套件,测试用例或智能文件夹的末尾。
使用上下文菜单指定来自测试用例或智能文件夹的哪些模块或模块组应该是设置或拆卸过程的一部分。
为了快速停用某个模块,而不是删除它,请使用上下文菜单项“禁用”。
运行测试套件
要运行测试套件,请单击测试套件编辑器工具栏中显示的“RUN”按钮或Ranorex Studio工具栏中的运行按钮。这将始终使用当前选定的运行配置运行测试套件。
运行配置
运行配置定义测试期间将执行哪些测试用例和智能文件夹。使用复选框指定要运行的元素。选中测试套件级别的复选框将勾选所有其他选项。您也可以保存您当前的配置。就是这样:
- 选中所需元素的框。
- 单击测试套件编辑器工具栏中的下拉菜单并选择“管理运行配置...”。
- 点击“添加”。
- 输入名称并单击确定。
- 您现在可以通过从下拉菜单中选择运行配置来应用运行配置。
注意运行配置只能与创建它们的测试套件一起使用。
激活不同的测试套件运行配置
添加或删除测试套件运行配置
运行迭代
运行迭代可让您在测试运行期间运行特定的测试用例或智能文件夹任意次。您可以按如下方式启用它们:
- 点击您想要迭代的测试用例或智能文件夹。
- 转到“查看”并点击“属性”或按F4。属性栏会出现。
- 在“迭代计数”中输入所需的迭代次数。
所选项目现在将在测试执行期间运行指定的次数。
自动重试
使用此选项,您可以在不中断测试执行的情况下自动重新运行失败的测试用例或智能文件夹一段指定的时间。这很有用,因为在UI测试中,错误有时会发生,因为AUT没有响应。在这些情况下,解决方案是简单地重新运行测试。
要激活此选项,请按照下列步骤操作:
- 选择一个测试用例或智能文件夹
- 按F4以显示其属性。
- 在“重试计数”字段中输入所需的重试次数。
如果有数据绑定或运行迭代,重试将在故障点开始。例如,如果失败发生在迭代3或5,那么重试将开始。只有每次重试失败的测试用例或智能文件夹才会在报告中标记为失败。
在没有Ranorex Studio的情况下运行测试
正如您在第一课 - 入门中学到的,Ranorex Studio会从您的测试套件项目中创建一个可执行文件。为了在运行时环境中执行测试套件,必须将生成的可执行文件(* .EXE)和测试套件文件(* .RXTST)放在同一个目录中。如果您的Ranorex Studio解决方案包含多个项目,则需要确保库(* .DLL)文件也是同一目录的一部分。简而言之,要将Ranorex测试部署到运行时机器,需要将完整的输出文件夹(例如'bin / debug')复制到目标机器。
您可以使用以下某种方法在Ranorex Studio之外执行测试套件:
- Ranorex测试套件亚军
- 命令行
Ranorex测试套件亚军
另外,您可以像在Ranorex Studio项目中一样创建新的运行配置。
通过命令行运行测试
注意以下所有示例均基于Ranorex Studio中包含的桌面和iOS示例项目。
使用以下命令模式,可以从命令行执行测试套件:
<GeneratedTestSuite> .EXE
例如
KeePassTestSuite.exe。可执行程序
要使用其中一个可用参数,请使用以下命令模式:
<GeneratedTestSuite> .exe / <参数>
例如
KeePassTestSuite.exe /帮助。exe / help
要使用多个参数,请使用空格分隔参数,如下所示:
<GeneratedTestSuite> .exe / <第一个参数> / <第二个参数>
例如
KeePassTestSuite.exe / zr / ju。exe / zr / ju
注意当从命令行执行测试套件时,返回值'0'表示测试脚本成功执行,返回值'-1'表示失败,返回值'42'表示没有可用许可证。
下表列出了所有可用的命令行参数。大多数论据都有完整和简短的版本。您可以随意使用,甚至可以混合使用。
将尖括号<>中的任何文字替换为项目的相应值。
充分的论据 | 简洁版本 | 描述 |
---|---|---|
帮帮我 | ? |
显示包含所有可用参数的帮助文本。 例如 KeePassTestSuite.exe /帮助 。exe / help 要么 KeePassTestSuite.exe /?。exe /? |
listconfigparams | LCP |
列出所有可设置的配置参数及其值。 例如 KeePassTestSuite.exe / listconfigparams。exe / listconfigparams 或例如 KeePassTestSuite.exe / lcp。exe / lcp |
config:<配置参数名称> = <值> | cfg:<配置参数名称> = <值> |
设置配置参数的值。 例如 KeePassTestSuite.exe /config:adapter.defaultsearchtimeout=15000ms。exe / config :适配器。defaultsearchtimeout = 15000ms 要么 KeePassTestSuite.exe /cfg:adapter.defaultsearchtimeout=15000ms。exe / cfg :适配器。defaultsearchtimeout = 15000ms |
端点:<端点名称> | ep:<端点名称> |
在测试执行期间显示将用作自动化根的端点的名称。如果未指定端点,则使用“localhost”。 例如 iOSKeePassSample.exe /端点:iPad。exe / endpoint :iPad 要么 iOSKeePassSample.exe / ep:iPad。exe / ep :iPad 请注意:该解决方案没有端点。终点iPad被选为演示目的。 |
reportfile:<报告文件路径> | rf:<报告文件路径> |
设置报告文件的名称(和路径)。如果没有提供路径,则使用当前目录。默认情况下,使用rxtst文件中指定的文件名。(例如:%S_%Y%M%D_%T.rxlog)。 例如 KeePassTestSuite.exe /reportfile:C:\AllReports\%H\%S_%Y-%M-%D_%T.rxlog。exe / reportfile :C :\ AllReports \%H \%S_ %Y - %M - %D_ %T 。rxlog 要么 KeePassTestSuite.exe /rf:C:\AllReports\%H\%S_%Y-%M-%D_%T.rxlog。exe / rf :C :\ AllReports \%H \%S_ %Y - %M - %D_ %T 。rxlog |
zipreport | ZR |
将报告(包括关联文件)压缩到单个存档(“.rxzlog”扩展名)。 例如 KeePassTestSuite.exe / zipreport。exe / zipreport 要么 KeePassTestSuite.exe / zr。exe / zr |
JUnit的 | 菊 |
也以JUnit格式创建报告。报告将放置在原Ranorex报告的相同位置。 例如 KeePassTestSuite.exe / junit。exe / junit 要么 KeePassTestSuite.exe / ju。exe / ju |
zipreportfile:<zip报告文件路径> | zrf:<zip报告文件路径> |
与参数zipreport一起使用时 ,设置压缩报表文件的名称(和路径)。如果没有提供路径,则使用报告文件的路径。如果文件扩展名不是“.rxzlog”,则扩展名将替换为“.rxzlog”。默认情况下,rxtst文件中指定的报告文件名或参数reportfile的值与扩展名“.rxzlog”(例如:%S_%Y%M%D_%T.rxzlog)一起使用。 例如 KeePassTestSuite.exe /zipreportfile:C:\AllReports\%H\zipped\%S_%Y-%M-%D_%T.rxzlog。exe / zipreportfile :C :\ AllReports \%H \ zipped \%S_ %Y - %M - %D_ %T 。rxzlog 要么 KeePassTestSuite.exe /zrf:C:\AllReports\%H\zipped\%S_%Y-%M-%D_%T.rxzlog。exe / zrf :C :\ AllReports \%H \ zipped \%S_ %Y - %M - %D_ %T 。rxzlog |
reportlevel:<report level> | rl:<报告级别> |
设置日志消息需要包含在日志文件中的最小报告级别。可能的值包括:无,调试,信息,警告,错误,成功,失败或任何整数值。指定'无'来完全禁用报告。这些级别对应于以下整数值:Debug = 10,Info = 20,Warn = 30,Error = 40,Success = 110,Failure = 120 例如 KeePassTestSuite.exe / reportlevel:警告。exe / reportlevel :警告 要么 KeePassTestSuite.exe / rl:警告。exe / rl :警告 |
listglobalparams | 唱片 |
列出所有全局参数及其值。 例如 KeePassTestSuite.exe / listglobalparams。exe / listglobalparams 要么 KeePassTestSuite.exe / lp。exe / lp |
listtestcaseparams:<测试用例或智能文件夹的名称或指导> | ltcpa:<测试用例或智能文件夹的名称或指导> |
列出所有测试用例或智能文件夹参数及其值。 例如 KeePassTestSuite.exe / listtestcaseparams:AddEntryByCodeModule。exe / listtestcaseparams :AddEntryByCodeModule 要么 KeePassTestSuite.exe / ltcpa:AddEntryByCodeModule。exe / ltcpa :AddEntryByCodeModule |
测试用例:<测试用例或智能文件夹的名称或指导> | tc:<测试用例或智能文件夹的名称或指导> |
仅运行此测试用例或智能文件夹。 例如 KeePassTestSuite.exe / testcase:AddNewEntry。exe / testcase :AddNewEntry 要么 KeePassTestSuite.exe / tc:AddNewEntry。exe / tc :AddNewEntry |
测试套件:<测试套件文件的路径> | ts:<测试套件文件的路径> |
运行测试套件(rxtst)文件定义的测试用例或智能文件夹。
默认
例如 KeePassTestSuite.exe /testsuite:AlternativeKeePassTestSuite.rxtst。exe / testsuite :AlternativeKeePassTestSuite 。rxtst 要么 KeePassTestSuite.exe /ts:AlternativeKeePassTestSuite.rxtst。exe / ts :AlternativeKeePassTestSuite 。rxtst 请注意:该解决方案只附带一个测试套件。测试套件文件'AlternativeKeePassTestSuite'被选为演示目的。 |
runconfig:<运行配置名称> | rc:<运行配置名称> |
运行指定运行配置的测试用例或智能文件夹。运行配置可以使用Ranorex Studio或TestSuiteRunner进行编辑。默认情况下,使用当前选择的运行配置。 例如 KeePassTestSuite.exe / runconfig:SmokeTest。exe / runconfig :SmokeTest 要么 KeePassTestSuite.exe / rc:SmokeTest。exe / rc :SmokeTest |
模块:<模块名称或GUID> | mo:<模块的名称或指导> |
使用指定的名称或guid运行模块。搜索由<GeneratedTestSuite>加载的程序集和rxtst文件中引用的程序集。 例如 KeePassTestSuite.exe /模块:ValidateEntry。exe / module :ValidateEntry 要么 KeePassTestSuite.exe / mo:ValidateEntry。exe / mo :ValidateEntry |
参数:<全局参数名称> = <值> | pa:<全局参数名称> = <值> |
设置或覆盖全局参数的值。 例如 iOSKeePassSample.exe / param:Global_DeviceName = iPhone6。exe / param :Global_DeviceName = iPhone6 要么 iOSKeePassSample.exe / pa:Global_DeviceName = iPhone6。exe / pa :Global_DeviceName = iPhone6 |
testcaseparam:<测试用例或智能文件夹的名称或GUID>:<参数名称> = <值> | tcpa:<测试用例或智能文件夹的名称或指导>:<参数名称> = <值> |
设置或覆盖测试用例或智能文件夹参数的值。 例如 KeePassTestSuite.exe / testcaseparam:AddEntryWithArguments:DefaultTitle = Ranorex。exe / testcaseparam :AddEntryWithArguments :DefaultTitle = Ranorex 要么 KeePassTestSuite.exe / tcpa:AddEntryWithArguments:DefaultTitle = Ranorex。exe / tcpa :AddEntryWithArguments :DefaultTitle = Ranorex 请不要:解决方案中不存在测试用例AddEntryWithArguments的参数,只是为了解释上面的用法。 |
runlabel:<自定义值> | rul:<自定义值> |
为测试运行设置自定义运行标签。 例如 KeePassTestSuite.exe / runlabel:SpecialRunLabel。exe / runlabel :SpecialRunLabel 要么 KeePassTestSuite.exe / rul:SpecialRunLabel。exe / rul :SpecialRunLabel |
testcasedatarange:<测试用例或智能文件夹的名称或指导> = <数据范围> | tcdr:<测试用例或智能文件夹的名称或指导> = <数据范围> |
设置测试用例或智能文件夹的数据范围。 例如 KeePassTestSuite.exe / testcasedatarange:AddEntryByRecording = 2。exe / testcasedatarange :AddEntryByRecording = 2 要么 KeePassTestSuite.exe / tcdr:AddEntryByRecording = 2。exe / tcdr :AddEntryByRecording = 2 |
testrail |
通过API将测试运行结果报告给TestRail。需要'truser'和'trpass'参数。 例如 KeePassTestSuite.exe / testrail / truser=janedoe@jane.com / trpass =密码。exe / testrail / = janedoe @ jane 。com / trpass = 密码 | |
truser = <电子邮件> |
需要'testrail'。用于登录TestRail的电子邮件。 例如 KeePassTestSuite.exe / testrail / truser=janedoe@jane.com / trpass = securepassword。exe / testrail / = janedoe @ jane 。com / trpass = securepassword | |
trpass = <密码> |
需要'testrail'。用'truser'指定的用户的密码或API密钥。 例如 KeePassTestSuite.exe / testrail / truser=janedoe@jane.com / trpass =密码。exe / testrail / = janedoe @ jane 。com / trpass = 密码 | |
trrunid = <运行ID> |
需要'testrail':(可选)TestRail中现有测试运行的标识符,以将测试结果报告给TestRail。没有这个参数,就会创建一个新的测试运行。 例如 KeePassTestSuite.exe / testrail / truser=janedoe@jane.com / trpass = password / trrunid = 123。exe / testrail / = janedoe @ jane 。com / trpass = password / trrunid = 123 | |
trrunname = < “名称”> |
需要'testrail':(可选)在TestRail中创建一个新的测试运行,并使用指定的名称向其报告测试结果。没有这个参数,使用默认名称。 例如 KeePassTestSuite.exe / testrail / truser=janedoe@jane.com / trpass = password / trrunname =“TestRun”。exe / testrail / = janedoe @ jane 。com / trpass = password / trrunname = “TestRun” |
注意压缩报告文件(* .rxzlog)可以通过在资源管理器中右键单击并从上下文菜单中选择“提取”来提取。可以通过在资源管理器中右键单击报告文件(* .rxlog)并从上下文菜单中选择“压缩”来压缩报告文件(* .rxlog)。
测试套件设置
一般测试套件设置
名称 | 指定测试套件的名称(与在测试套件编辑器中显示的相同) |
描述 | 测试套件的描述(与测试套件编辑器的描述栏中显示的相同)。使用HTML文本编辑器格式化描述并添加指向描述的链接。格式化的描述将在生成的报告中表示为HTML内容 |
显示进度对话框 | 指定在测试套件执行期间是否应显示进度对话框 |
报告级别 | 指定与报告文件一起显示的消息的最小报告级别 |
警告未绑定的变量 | 指定是否应显示未绑定变量的警告 |
全局参数
测试套件中的每个测试用例都可以访问和使用全局指定的参数。KeePassTestSuite示例项目使用全局参数来指定被测应用程序的目录路径。您可以轻松地将全局参数与测试案例'TC_AddEntry'中显示的变量连接起来。另外,您可以使用全局参数在测试用例之间传输值或状态。
其他报告设置
启用报告 | 指定是否应生成测试报告 |
报告文件目录 | 指定生成的报告文件的目录 |
报告文件 | 指定报告生成的文件名; 以下占位符可用: %T时间 %D日 %M月 %%Y年 %L运行标签 %C运行配置名称 %H主机名称 %S测试套件名称 %X测试套件结果 |
自动保存间隔 | 指定报告文件在执行过程中保存的频率 |
时间戳 | 指定相对于测试套件开始时间或相对于测试模块开始时间计算时间戳还是应该计算机器时间 |
压缩副本 | 指定是否应将报告的副本生成为压缩文件夹 |
JUnit兼容文件 | 指定除了测试报告之外是否应该生成JUnit兼容文件。 |
在一个子目录中收集截图 | 指定创建的屏幕截图是存储在每个报告的特定文件夹中还是直接存储在报告文件夹中 |
在值中显示不可见的字符 | 指定是否在报告消息中显示不可见字符(如空格或制表符) |
报告模板 | 指定保存自定义样式文件的目录,而不是Ranorex默认样式来显示报告; 按第8课:报告 - 创建自定义报告模板中所述,按“创建自定义模板”按钮即可创建新模板; 可以通过按“选择自定义模板”按钮来选择现有模板 |
跟踪屏幕截图模式 | 指定是在前台(执行操作之前)还是后台(执行操作时)捕获屏幕截图,或者捕获跟踪屏幕截图是否被禁用 |
质量 | 指定捕获的屏幕截图的图像质量 |
测试用例和智能文件夹设置
测试用例或智能文件夹属性对话框的'常规'选项卡主要用于设置测试用例或智能文件夹如何影响测试套件中的其他测试用例或智能文件夹。
名称 | 测试用例/智能文件夹的名称 |
描述 | 测试用例/智能文件夹的说明(与测试套件编辑器的说明栏中显示的相同)。使用HTML文本编辑器格式化描述并添加指向描述的链接。格式化的描述将在生成的报告中表示为HTML内容 |
报告级别 | 指定写入报告文件的消息级别 |
错误行为 | 指定测试用例/智能文件夹和测试套件在发生错误时的行为。欲了解更多信息,请查看下一段。 |
下面的图试图说明几个错误行为设置:
继续迭代: Ranorex将继续进行当前测试用例或智能文件夹的下一次迭代。
继续使用兄弟: Ranorex将停止执行当前测试用例或智能文件夹,而是继续使用下一个兄弟测试用例或智能文件夹。
继续使用父项: Ranorex将停止执行当前的测试用例或智能文件夹,而是继续使用下一个父测试用例或智能文件夹。
停止: Ranorex将完全中止测试。
不同种类的数据容器
模块变量:
变量是模块和包含测试用例或智能文件夹之间的接口,或者 - 如果使用模块组,则分别是模块组。
变量可以用在
常数值:
可以在模块组中使用常数值来隐藏模块组之外的模块变量。这可以帮助降低复杂性并提高模块组的清晰度。
有关详细信息,请参阅关于模块组编辑器的部分。
组变量:
在模块组中,组变量是嵌套模块和嵌套测试用例之间的接口。
有关详细信息,请参阅关于模块组编辑器的部分。
数据列:
数据连接器的列称为数据列,并指定来自外部数据源的列。
查看数据连接器部分(数据连接器),以获得关于不同类型的数据连接器的概述。数据列可以连接到测试用例的数据绑定对话框中的变量,如变量与测试数据组合中所述。
参数:
模块变量也可以绑定到参数。本地参数是特定测试用例或智能文件夹的一部分,可以在测试用例/智能文件夹和所有子智能文件夹中使用,也可以在整个测试套件中提供全局参数。
与本地参数不同,可以从命令行设置全局参数,如通过命令行运行测试一节中所述。
查看将变量与参数组合在一起 以查看参数如何连接到变量。
修改参数和数据列值
参数值和数据列值可以通过模块进行更改。为了将值从一个模块传送到另一个模块,一旦模块完成执行,参数或数据列值将从其绑定的模块变量更新。
这意味着您可以在参数或数据列的范围内自由传输值。
此应用程序的一个示例是动态从UI中获取应该在另一个模块中重用的值,如第5课:Ranorex Recorder - 其他编辑选项 - 解决Get Value操作或代码示例的操作类型- 访问测试用例和测试套件上下文。
条件
条件允许您根据您可以定义的特定规则控制是否在测试执行期间运行测试容器。您可以为每个测试用例或智能文件夹设置一个条件,但条件最多可以有10条规则。
要设置条件,请右键单击测试套件中的测试容器,然后单击“条件...”
条件窗口将打开。
如果条件不包含任何规则,则它处于空白状态,如下所示:
点击'添加规则'将第一条规则添加到条件中。窗口将会变成如下所示:
#1 | 这是测试容器的整个条件。 |
#2 | 点击此复选框以激活或取消激活条件。在测试执行期间只会应用活动条件。 |
#3 | 如果您已经为条件添加了多个规则,请指定是否需要为要运行的测试容器匹配全部或任意数量的规则。如果条件只包含一个规则,则可以忽略此选择。 |
#4 | 规则尚未完成。请参阅下面的规则更详细的说明。 |
#5 | 点击此处清除条件中的所有规则并将其返回到其空闲状态。 |
#6 | 点击此处从条件中清除此规则。 |
#7 | 点击此处为条件添加另一个规则。您最多可以为条件添加10条规则。 |
规则
规则告诉Ranorex应该检查什么来确定整个条件是否已经满足。规则可以应用于数据源或参数源。根据两条规则中哪一条适用,您可以进行的选择将会改变。完成配置规则后,即视为已完成。这由规则旁边的蓝色图标表示。如果规则不完整,橙色图标将出现在缺少的字段和规则旁边。
完整的规则,如蓝色图标所示
一个不完整的规则,如橙色图标所示
注意规则完成时,仅表示所有字段都包含有效值。这并不意味着该规则将在测试执行期间匹配。
配置规则以应用于数据源
- 选择数据源。
- Ranorex将自动选择测试容器的数据源。如果没有数据源分配给测试容器,则该规则无法完成。
- 选择包含您希望规则检查的值的列。
- 选择操作员。
- 选择从3中选择的列取得的现有值,或者输入您自己的值。
配置要应用于参数的规则
- 选择参数。
- 选择参数是全局参数还是本地参数。
- 选择您希望规则检查其值的参数。
- 选择操作员。
- 选择从您在3中选择的参数中获取的现有值,或者输入您自己的值。
添加完所有规则后,点击“应用”或“确定”保存条件。点击'取消'会将条件恢复到上次保存的状态并放弃更改。
状态的状态将由测试套件视图中的图标指示。您可以双击该图标直接访问条件窗口。