在手动测试期间,可以使用 SOAtest 智能 API 测试生成器为 web 应用程序自动创建 API 测试。智能 API 测试生成器的开箱即用实现旨在帮助更快地启用 API 测试,但也可以“训练”它为您的项目创建更具体的测试。在本章节中:
可以通过创建智能测试模板(.stt)文件来定义决定测试生成行为的规则。智能测试模板文件由一个或多个资源套件组成,其中允许确定将应用规则的路径。资源套件包含一个或多个资源模板。可以将工具链接到资源模板中,并配置它们来定义特定的测试生成行为。资源模板还允许配置 链接的规则将应用于的特定范围。
在智能 API 测试生成器创建新的 API 测试时,它将读取并应用 .stt 文件中指定的规则。
可以使用 Smart Test Templates View创建并管理 .stt 文件。此外,可以添加多个 .stt 文件并将它们组织到文件夹中。
选择要创建的资源套件类型。可以创建一个空的套件,或者基于服务初始化套件。
如果正在使用定义文件,请查阅以下部分以获得更多信息。
从 Method 下拉菜单中选择一种方法,并在 Match 字段中指定一种模式来标识端点 you want the rules in this suite to apply to (请查阅 Defining Smart API Test Generation Scope)。Resolved 字段呈现模式预览。资源模板继承父资源套件的 Match 设置。如果希望智能 API 测试生成器为 Match 字段中指定的所有子路径生成测试,则可以禁用 Exact Match 选项。Exact Match 选项默认是启用的。
当智能 API 测试生成器匹配资源模板中的设置时,会应用所有链接工具的配置。可以确定如何构造模板文件并相应地配置匹配的模式。关于常见用例,请查阅 Example Smart Test Template 。
JSON 断言器 工具,链接到资源模板的该工具可以配置为使用当前通讯报文中的值。有关其他信息,请查阅 Adding JSON Assertions |
从现有通讯报文文件生成测试 或使用 SOAtest 智能 API 测试生成器 将应用的 .stt 文件中定义的浏览器扩展和配置来创建新测试。
在资源套件和资源模板中定义的模式将根据以下规则进行匹配:
{},
表示通配符并可以包含任意文本。例如,可以指定翻译为 scheme、host 和 port 的模式:{scheme}://{host}:{port}
*
) 也表示通配符。一个单星号加一个花括号,如,{},可以互换使用:{scheme}://{host}:*/parabank/*/accounts/{id}
{scheme}://{host}:*/parabank/**/{id}
/parabank/services_proxy/bank/accounts/{id
}65535
的数。默认情况下,智能 API 测试生成器将为场景中调用的所有资源创建测试,并且只对使用资源模板工具标识的资源应用培训工具。然而,可以配置智能 API 测试生成器,通过在 tst_configuration.properties 文件中的 includeURLPatterns
和 excludeURLPatterns
中指定 Ant 风格模式,包含或排出测试生成中特定的资源 URL。有关更多详情,请查阅 Test Creation Properties 。
智能 API 测试生成器使用 HTTP 身份验证工具来为测试配置身份验证凭证。HTTP 身份验证工具是一种特殊的工具,您只能在 .stt 文件中使用它。当智能 API 测试生成器匹配资源模板工具中的设置时,在 HTTP 身份验证工具中配置的凭证将应用于生成的测试。
关于配置身份验证设置的更多信息,请查阅以下部分:
SOAtest
Virtualize
智能 API 测试生成器使用 HTTP 数据头工具来为测试添加数据头字段。HTTP 数据头工具是一种特殊的工具,您只能在 .stt 文件中使用它。当智能 API 测试生成器匹配资源模板工具中的设置时, 在 HTTP 数据头工具中配置的任何数据头 都将自动添加到生成的测试。也可以使用功能此工具来覆盖测试在创建期间捕获到的数据值。
可以配置链接到资源模板工具的 JSON 断言来使用通讯报文中的值。使用 ==
或 equals
作为操作符,并设置值字段 [Smart - From Traffic]
。
可以在测试中使用几种类型的的断言(查阅 JSON 断言器 以获得其他信息)。以下部分描述智能 API 测试生成器如何为每种断言类型应用设置。
[Smart - From Traffic]
,则将从记录的通讯报文中设置值断言的 Expected Value 字段。[Smart - From Traffic]
并且操作设置为 ==
或 equal
,那么将根据记录的通讯报文设置值出现断言、数字断言和字符串比较断言的元素值字段和期望值字段。[Smart - From Traffic]
并且操作设置为 ==
,那么值出现断言的期望值字段被设置为 1
或 0
。[Smart - From Traffic]
并且操作设置为 ==
,那么出现断言的期望值字段被设置为 1
或 0
。[Smart - From Traffic]
并且通讯报文值验证成功,则 Base Value 字段将根据记录的通讯报文设置。[Smart - From Traffic]
,则该字段将被设置为 0
。[Smart - From Traffic]
并且值验证成功,则该字段将根据记录的通讯报文来设置。在本例中,相同的通讯报文值将应用于断言中的所有字段。默认情况下,智能 API 测试生成器忽略时间戳,但是可以将其配置为忽略其他参数以满足您的需要。有关更多详情,请查阅 Test Creation Parameters 。
可以将现有 .tst 文件中的断言逻辑应用来培训智能 API 测试生成器。请查阅 Training the Smart API Test Generator Using a .tst File。
可以在您的 .stt 文件中引用其他测试套件,这使您能够包含可能是正确执行测试所必需的额外设置步骤。每个资源模板工具只会添加一个被引用的测试套件。引用包含的测试作为生成套件中的第一个测试添加。 有关引用的更多信息,请查阅 重用和模块化端到端测试的测试套件 。
可以使用现有的 REST Clients 来教智能 API 测试生成器身份验证设置和 JSON 断言逻辑。可以从 .tst 文件、测试套件或 REST 客户机节点创建培训规则。SOAtest 将在与 REST 客户机中指定的路径最接近的资源模板下创建 HTTP 身份验证或 JSON 断言器。如果没有找到匹配项,那么将为每个规则创建新的 .stt 文件。.stt 文件将包含资源套件和资源模板,配置它们的 Match 设置以匹配 REST 客户机的端点。
新的 .stt 文件的匹配模式基于正在教的智能 API 测试生成器的规则类型。对于断言,使用 REST 客户机的 basePath 设置父套件匹配。子路径在嵌套套件匹配和/或资源模板匹配中配置。资源模板将配置来匹配特定方法类型上的 "Exact" 字段。
对于身份验证,使用 REST 客户机的 schema、host 和 port 设置父套件匹配。父套件中包含的资源模板将被配置来匹配 REST 客户机的 basePath 和所有子路径和方法类型。
提示时查看规则。智能 API 测试生成器将尝试配置现有 .stt 文件中的资源,并相应地添加新规则。如果没有找到匹配的 .stt,则将创建一个新文件。
具有固定值的等价断言(使用 新断言将被添加到 .stt 问价浓重的现有断言器。 |
测试模板的结构将取决于您想要如何测试应用程序。在本例中,.stt 表示被测试的应用程序(CTP)。
资源套件配置来匹配主机 "emdemo” 上的任何 schema、port 和路径。因此,为 emdemo 生成的任何测试都将在测试引用套件中包含工具引用。此外,测试将分别在 HTTP 身份验证和 HTTP 数据头工具中配置身份验证和数据头设置。
每个资源模板都指向 emdemo 下的特定路径。每个资源模板中指定路径生成的任何测试都将包含链接工具中的配置。例如, "Resource 3” 配置来匹配 "/em/virtualassets/manage” 路径。因此, 包含此路径的测试 将包括一个 JSON 断言器,该断言器被配置为验证 响应中返回的资产配置。