本主题解释了如何自定义测试套件的属性(如,它的名称以及如何运行单个测试套件)。在本章节中:
双击测试用例资源管理器中的测试套件,访问并更改其属性。
测试套件配置面板的 Requirements and Notes 选项卡允许将需求、缺点、任务、功能需求、注释与测试套件中的特定测试相关联。
HTML 报告将表明与每个引用的测试相关联的构件。例如,这是引用一个带有相关联注释测试的报告:
您定义的需求将出现在 Structure 报告和连接的 DTP 系统中(如果适用)。这一点有助于管理人员和审阅者确定是否完成了特定的测试需求。有关 Structure 报告的更多详情,请查阅 创建测试套件结构化报告。
@task: 针对任务。
可以配置缺陷/问题跟踪标记,以匹配组织用于引用缺陷或者功能需求的语言。有关更多详情,请查阅 Indicating Code and Test Correlations。 |
可以配置套件的测试如何执行,包括:
这些选项在 Execution Options 选项卡中进行配置,它有三个子选项卡,分别是:Test Execution、 Test Flow Logic和 Regression Options。
可以在 Execution Options 的子选项卡 Test Execution 中自定义以下选项。
启用 Tests run sequentially 选项,每次分别运行此测试套件的每个测试和子测试套件。
启用 Tests run concurrently 选项,同时运行此测试套件的所有测试和子测试套件。测试将同时运行。
这些选项确定 SOAtest 如何遍历数据源行。
启用 Tests are individually runnable option (默认)。遍历每个测试的所有数据源行。当单个测试执行时,它将在下一个测试或测试套件执行之前使用每一个数据源行。当执行子测试套件时,SOAtest 将等待其所有子元素完成,然后才会执行下一个测试或测试套件。
启用 Tests run as group 选项(场景默认),运行数据源每一行的所有测试。在这种情况下,选择一个数据源行,并为该行执行每个测试和子测试套件。 一旦所有子元素都执行完毕,就会选中新的一行并重复这个过程。Abort scenario on 选项在 Tests run as group 启用时变得活跃(请查阅关于 Abort scenario on 选项的更多详情)。
启用 Tests run all sub-groups as part of this group 选项,作为此测试套件的直接子组件运行此测试套件中包含的测试。然后 SOAtest 将作为一个组遍历它们。Abort scenario on 选项在 Tests run as group 启用时变得活跃(请查阅关于 Abort scenario on 选项的更多详情)。
例如,考虑以下测试套件中的安排:
在这种情况下,假定测试套件 2 和测试套件 3 启用了 Tests are individually runnable 选项,表中有 2 行数据,并且测试套件 1 的每个测试关系选项下运行一个测试。下表中演示了针对测试套件 1 不同执行选项的测试运行顺序。这还假设测试套件 2 和测试套件 3 启用了 Run individually 选项。
Run individually | Run as group | 作为该组的一部分运行所有子组 |
---|---|---|
SOAP 客户端 1 行 1 | SOAP 客户端 1 行 1 | SOAP 客户端 1 行 1 |
SOAP 客户端 1 行 2 | SOAP 客户端 2 行 1 | SOAP 客户端 2 行 1 |
SOAP 客户端 2 行 1 | SOAP 客户端 2 行 2 | SOAP 客户端 3 行 1 |
SOAP 客户端 2 行 2 | SOAP 客户端 3 行 1 | SOAP 客户端 1 行 2 |
SOAP 客户端 3 行 1 | SOAP 客户端 3 行 2 | SOAP 客户端 2 行 2 |
SOAP 客户端 1 行 2 | SOAP 客户端 1 行 2 | SOAP 客户端 3 行 2 |
SOAP 客户端 2 行 1 | ||
SOAP 客户端 2 行 2 | ||
SOAP 客户端 3 行 1 | ||
SOAP 客户端 3 行 2 |
启用 Abort Scenario 选项,从下拉菜单中选择 Fatal Error 或 Any Error ,停止运行特定条件下的测试。如果上一个测试导致致命错误,请选择 Abort Scenario on Fatal Error 多选框。该选项只在 Tests run Sequentially 选中并且 Tests are individually runnable 未选中的情况下才可用。 在测试套件中的一组测试相互依赖,并且无法独立运行(必须按顺序运行)的情况下,就会发生这种情况。 如果启用了该选项,并且如果场景中正在运行的测试存在致命错误,则场景中剩下的测试将不会运行。 如果禁用了该选项,即使出现了致命错误,场景中的其余测试也将运行。
从 Multiple data source iteration 下拉菜单中选择一个选项,确定 SOAtest 在一个(不是单独运行的)测试套件内使用多个数据源时将如何进行遍历。如果所有数据源的行数不同,则迭代将在最小数据源的最后一行停止。可用选项包括:
启用 Show all iterations 选项,计数和显示所有数据源迭代,包括可单独运行的测试的迭代(默认启用)。当该选项禁用时,SOAtest 不会显示可单独运行测试的所有数据源迭代。换句话说,如果在包含 50 行的数据源上参数化测试,SOAtest 会将其作为单个测试运行报告。 因此,如果多个数据源行上出现故障,则故障出现的数量可能比测试运行的数量还要多。
SOAtest 允许创建依赖于上一次测试、设置测试或拆装测试的成功或失败的测试。这一点有助于您在测试套件内创建有效的工作流。此外,还可以通过创建依赖于变量值的 while 循环和 if/else 语句影响测试套件逻辑。
可以在测试套件级别或为特定测试设置选项(应用于测试套件所有测试的选项)。
在大多数情况下,您可能希望 SOAtest 在某个条件满足之前反复执行某个操作。测试套件流逻辑允许对此进行配置。
了解选项
为了帮助您对这样的场景中的测试进行自动化,SOAtest 允许您在两种主测试流类型之间进行选择:
例如:
设置选项
若要配置在整个测试套件上应用的测试流逻辑选项:
有关如何应用“while pass/fail”测试流逻辑的逐步说明,请查阅 Looping Until a Test Succeeds or Fails - Using Test Flow Logic。 |
特定测试有以下可用选项:
如果任何设置和拆卸测试可用,则它们将显示在左侧 GUI 面板中,并且您可以如下配置测试逻辑:
该功能允许在设置测试失败时停止测试(或运行测试)。 |
Regression Options 控件选项允许自定义如何在回归测试中使用数据源,以及哪个测试套件有回归控制。注意,该选项卡不适用于 web 场景测试。可用选项包括:
如果向数据源中插入新的行,或从数据源中删除新的行,则所有与该数据源相关联的回归控制都将更新。 |
Variables 选项卡允许配置用来简化测试定义的变量,以及创建灵活且可复用的测试套件。添加变量之后,测试可以根据该变量进行参数化。
可以将变量设置为特定值,然后在整个当前测试套件中使用该变量来引用该值。通过这种方式,您无需再多次输入相同值。并且,如果希望更改值,则只需要在一个地方更改它即可。
作为一种手动设置变量为特定值的选择,您可以让数据库工具(如,XML 数据库)或扩展工具“动态”设置该变量的值。
而且,如果有一个引用的测试套件(由父测试套件引用的测试套件,请查阅 Using Test Suite References 以获得更多详情),则可以使用变量以访问父测试套件的数据源。
变量可以作为参数化的值在工具配置面板中使用(使用 ${env_name} 规范
),也可以通过使用 com.parasoft.api.ExtensionToolContext.getValue(String)
和 setValue(String, String)
编写脚本。 值的类型为字符串类型、整数类型和布尔类型。
测试执行期间,无论测试是处于同一个测试套件、子套件还是父套件中,在测试套件中定义的变量都适用于该测试套件中的所有测试,以及该测试套件之后执行的任何测试。例如,假定您拥有以下测试套件结构,并且按以下顺序执行测试:
测试套件 A 中定义的任何测试变量将适用于 A、B 或 C 中的任何测试;B 中定义的变量将只适用于 B 和 C。
一旦完成添加,则变量可以:
title variable
变量中的值,则可以如下进行配置:soa_env
前缀来引用环境变量。例如, ${soa_env:Variable}/calc_values.xlsx
通常情况下,测试套件逻辑和变量将取决于服务本身的响应。可以使用扩展工具,设置变量来影响测试流执行。例如,如果测试 1 返回变量 x=3,则测试 2 将运行。
通过 TestSuiteVariable API,您可以访问变量,并将其设置为一个值,或者从中获取一个值。 使用该值,配置测试流逻辑。 有关更多详情,请查阅扩展 API Javadocs 中 com.parasoft.api 中的 TestSuiteVariable 接口。可以通过选择 Parasoft> Help,然后打开 Parasoft SOAtest Extensibility API 书访问 Javadocs。
例如,可以将以下内容输入到扩展工具中,设置变量:
from com.parasoft.api import Application def setVar(input, context): context.setValue("x", input.toString()) |
若要获取 TestSuiteVariable 对象 x 中的值:
varValue = context.getValue("x")
其中在 varValue
将作为字符串返回。
例如,可以向测试添加一个 XML 转换器,并且从该测试中提取某个值。然后,可以向 XML 转换器添加扩展输出,并且输入脚本以获取转换器中的值。最后,可以设置第二个测试以只在第一个测试返回正确值时运行。
若要配置 SOAtest 来显示在运行时实际使用的变量,请设置控制台首选项 (Parasoft> Preferences> Parasoft> Console) ,以使用正常信息显示级别或更高信息显示级别。
每次测试后,控制台视图 (Show View> Parasoft> Console) 都将显示运行时使用的变量。例如:
Scenario: ICalculator Test 1: first add - success get x=0 set x=10.0 set Test 1: type=xsd:float Test 2: second add - success get x=10 set x=20.0 Test 3: third add - success get x=20 set x=30.0 Test 1: first add - success get x=30 set x=50.0 set Test 1: type=xsd:float Test 2: second add - success get x=50 set x=70.0 Test 3: third add - success get x=70 set x=90.0 |
查看这些变量对于诊断发生任何问题的原因都很有用。
关于如何使用变量的逐步说明,请查阅 Creating Reusable (Modular) Test Suites。
客户端选项卡分为以下几个部分:
可以配置以下常规的测试套件选项:
可以配置以下 SOAP 相关联的测试套件选项:
Browser Playback Options 选项分为以下几个部分:
上面的选项 不能用于测试命令行接口中的测试。 在命令行模式下(使用 soatestcli),SOAtest 默认以无头模式运行 web 场景。如果不希望从 cli 以无数据头模式运行,则使用带 |
支持 Basic, NTLM, Digest, 和 Kerberos 的身份验证模式,可以在此面板中指定。可以输入 Basic, NTLM, and Digest 身份验证的用户名和密码,和 Kerberos 身份验证的服务主体。
身份验证有三个主要的选项:
若要指定什么时候应该应用该测试套件指定的身份验证,请指示希望进行身份验证的路径或域。如果访问多个服务器的场景中只有一个服务器要求身份验证,则可以指定该服务器使用的路径或域。然后,身份验证将只应用与与该路径或域匹配的请求。例如,如果输入路径 http://www.example.com/
,则它将造成所提供的身份验证仅用于以 "http://www.example.com”开头的任何请求。.
如果希望身份验证应用于每个请求,则将路径和域保留为空。
可以为访问以不同方式进行身份验证的许多服务器的场景输入多个身份验证凭证。SOAtest 将使用路径和域来确定应该在什么时候将身份验证模式应用到请求中。
对于该场景,Digest 身份验证将应用于任何以 http://www.example.com开头的请求。Kerberos 身份验证将应用于任何以 http://www.parasoft.com开头的请求。
注意,SOAtest 尝试在第一次记录场景时使用 SOAtest 安全首选项中指定的身份验证信息。如果使用了身份验证并在记录期间成功,则身份验证信息将记录在浏览器回放选项中。