关于测试变量

测试变量是用户定义的“名称/值”对,它在整个测试中以及各测试之间存储和引用信息。

在测试之间共享变量

变量在测试的“测试变量”部分中声明,但是变量可在整个测试中用作对可替换的任何字段的引用。从测试变量替换数据的操作是通过使用“测试数据源”视图的“测试变量”页面完成的。声明变量时为变量赋予了缺省值。该值也可使用 Set Variable 语句进行更改。Set Variable 语句通过“测试编辑器”的“添加”和“插入”菜单进行创建。变量可设置为硬编码的值,或者从数据源(例如 Set 语句之前出现的数据池或引用)检索到的值。

要在测试之间共享变量,两个测试都必须包含名称相同的变量,而且这两个变量都必须将可视区域选项设置为该用户的所有测试。当满足这些条件而且已在调度中放置了多个测试后,变量中由一个测试设置的数据可在其他测试中使用。

在测试之间共享数据的一个常见原因是执行数据关联。 通过数据关联,变量将设置为来自一个测试中的请求的响应,并将在其他测试中执行的请求中使用。假定您要测试员工数据库。 “创建员工”测试将创建员工记录,“修改员工”测试将修改员工记录。创建新的记录时,将为其分配一个记录标识。变量可用于将记录标识从“创建员工”测试中的响应传递到“修改员工”测试。

用户定义的变量不会在不同虚拟用户之间共享。该变量仅在相同虚拟用户的不同测试之间共享。另外,如果将可视区域设置为仅该测试,那么由一个测试设置的数据不可用于另一个测试,即使这两个测试包含名称相同的变量也是如此。

使用变量来访问数据池

可将变量定义为在整个测试中共享来自数据池的数据。此操作是通过从数据池替换 Set Variable 语句的值字段来完成的。这样,调度中出现的第一个测试可从数据池设置变量,并将该变量与调度中的其他测试共享。

假定您有两个测试使用来自数据池的用户标识登录到应用程序。 第一个测试可从数据池设置变量的值,并且这两个测试都可使用该变量,而不是直接使用数据池。在本例中,它们都使用来自数据池的相同记录。 这类似于数据池的“每个用户仅访存一次”行为。 但是,访存一次意味着回放期间一个虚拟用户将仅从数据池获取一条记录。即使测试处于循环中而且由虚拟用户运行多次,一条记录的限制也成立。通过使用用户定义的变量,虚拟用户将在每次通过循环时检索新记录,并且这两个测试都可使用同一条记录。

注: 赋值 (set) 运算符不仅可从数据池替换变量值,还可以在变量的声明中进行替换。实际上,您可以从任何数据源替换赋值运算符和变量值,因此该值也可在测试之间共享。

数组变量

您可以创建数组变量,在一个变量中添加多个值。如果您创建了辅助 HTTP 请求,可在回放期间藉由定制代码,在数组变量中添加请求的完整路径。


反馈