本主题解释了如何自定义测试套件的属性(如,它的名称以及如何运行单个测试套件)。在本章节中:

访问测试套件配置面板

双击测试用例资源管理器中的测试套件,访问并更改其属性。

将注释、需求、任务、缺点、功能需求与测试相关联

测试套件配置面板的 Requirements and Notes 选项卡允许将需求、缺点、任务、功能需求、注释与测试套件中的特定测试相关联。

HTML 报告将表明与每个引用的测试相关联的构件。例如,这是引用一个带有相关联注释测试的报告:



您定义的需求将出现在 Structure 报告和连接的 DTP 系统中(如果适用)。这一点有助于管理人员和审阅者确定是否完成了特定的测试需求。有关 Structure 报告的更多详情,请查阅 创建测试套件结构化报告

添加关联性和注释

  1. 双击测试用例资源管理器中的测试套件,然后单击 Requirements and Notes 选项卡。
  2. 在需求跟踪部分中选择关联和/或注释应用的范围。可以将这信息用于测试套件、嵌套的测试套件和测试。
     
  3. 单击 Add 按钮,并从 Type 下拉菜单中选择一个标签。DTP 将使用此信息将测试套件的测试用例与指定元素类型关联起来。可以根据 指示代码和测试相关性中所描述的那样创建自定义组件。默认标记有:
  4. 输入需求所需的 IDURL ,单击 OK



    如果启用 Preferences> Reports> Report 内容选项便获得 Requirement/defect 详情,则这里特定的关联将显示在 HTML 报告中。如果指定了 URL,则 HTML 报告将包括超链接。
  5. 若要添加注释(如:“这个测试部分地测试了需求”或“这个测试完全测试了需求”),请将其输入到 Comment 字段。这里指定的注释将显示在 HTML 报告中。



  6. 若要添加关于测试套件的更多详情,请将其输入到 Notes 字段中。

指定执行选项(测试流逻辑、回归选项等)

可以配置套件的测试如何执行,包括:

这些选项在 Execution Options 选项卡中进行配置,它有三个子选项卡,分别是:Test ExecutionTest Flow Logic Regression Options

Test Execution

可以在 Execution Options 的子选项卡 Test Execution 中自定义以下选项。

Execution Mode

启用 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 individuallyRun as group作为该组的一部分运行所有子组
SOAP 客户端 1 行 1SOAP 客户端 1 行 1SOAP 客户端 1 行 1
SOAP 客户端 1 行 2SOAP 客户端 2 行 1SOAP 客户端 2 行 1
SOAP 客户端 2 行 1SOAP 客户端 2 行 2SOAP 客户端 3 行 1
SOAP 客户端 2 行 2SOAP 客户端 3 行 1SOAP 客户端 1 行 2
SOAP 客户端 3 行 1SOAP 客户端 3 行 2SOAP 客户端 2 行 2
SOAP 客户端 1 行 2SOAP 客户端 1 行 2SOAP 客户端 3 行 2

SOAP 客户端 2 行 1

SOAP 客户端 2 行 2

SOAP 客户端 3 行 1

SOAP 客户端 3 行 2

启用 Abort Scenario 选项,从下拉菜单中选择 Fatal ErrorAny 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 允许您在两种主测试流类型之间进行选择:

例如:

设置选项

若要配置在整个测试套件上应用的测试流逻辑选项:

  1. 打开 Execution Options> Test Flow Logic 选项卡,然后选择上级节点。。



  2. 选择所需的流类型。
  3. (可选项)自定义 Maximum number of loops 设置,它确定当永远不满足特定条件时要运行的循环数。
  4. 如果选择 while pass/fail 流来指定循环条件,通过跳转至 Loop until,选择 Every test 或者 One test,然后选择 succeeds fails,这取决于您希望在测试套件执行之前发生的结果。



  5. 如果选择了 while variable 流,则如下设置 while 和 do 条件语句。

有关如何应用“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。

添加新变量

  1. 单击 Add 按钮。
  2. Name 字段中输入新变量名称。
  3. Type 框中选择 IntegerBooleanStringData Source
  4. 指定是要使用本地值,还是要使用父测试套件中的值。
  5. (只适用于数据源类型)指定存储合适变量的数据源和列的名称。  数据源应该在父测试套件中(引用当前测试套件的测试套件)。
  6. Value 字段中输入变量值。如果选择了 Use local value,则变量将始终被设置为特定的值(除非重新设置数据源库工具或扩展工具中的值)。如果选择了 Use value from parent test suite,则此处指定的值将只在没有在父测试套件中找到相应的值时使用。



  7. 然后单击 OK

使用变量

一旦完成添加,则变量可以:

通过脚本设置变量和逻辑

通常情况下,测试套件逻辑和变量将取决于服务本身的响应。可以使用扩展工具,设置变量来影响测试流执行。例如,如果测试 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

可以配置以下 SOAP 相关联的测试套件选项:

指定浏览器回放选项

Browser Playback Options 选项分为以下几个部分:

上面的选项 不能用于测试命令行接口中的测试

在命令行模式下(使用 soatestcli),SOAtest 默认以无头模式运行 web 场景。如果不希望从 cli 以无数据头模式运行,则使用带 soatestcli 的  -browserTestsVisible 命令行,(如 在命令行界面使用 - soatestcli 进行测试中所述)。

身份验证设置

支持 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 安全首选项中指定的身份验证信息。如果使用了身份验证并在记录期间成功,则身份验证信息将记录在浏览器回放选项中。