本教程描述了如何部署 Parasoft 录制器、录制 API 通讯报文、生成智能 API 测试以及配置智能 API 测试生成器。在本章节中:
前提条件
为了完成本教程,您需要远程访问 SOAtest 桌面或服务器,以及为您的许可证激活的高级测试生成特性。有关更多详情,请查阅 初步了解 Parasoft 录制器 。
部署 SOAtest Web 代理
- 为您的平台运行 Parasoft 录制器 安装程序: parasoft_recorder_<version>_win32.exe for Windows or parasoft_recorder_<version>_macos.dmg for installation on Mac OS.对于 Mac OS,程序安装后,请双击 Parasoft 录制器.pkg。
- 在提示时接受许可协议。
- 在提示时选择安装位置。对于 Windows,默认为
C:\Program Files\Parasoft\Parasoft 录制器
;对于 Mac OS,默认为/Applications/Parasoft
。 - 如果您使用的是 Windows,安装程序将提示您将 SOAtest Web 代理安装为 Windows 服务。这允许使用 Windows 服务控制代理。默认端口为 40090。选择 Yes ,然后单击 Next。
- 选择 Yes ,然后在提示安装 Parasoft 录制器 Chrome 扩展程序时单击 Next 。需要一个可以访问谷歌 Chrome 商店的互联网连接。
- 如果您使用的是 Mac Os,安装程序将提示您确认要在安装之后启动 web 代理,以及每次登录安装机器时启动代理。默认端口为 40090。启用两个选项并单击 Continue。必须运行 web 代理才能在 SOAtest 中生成智能测试。稍后可以禁用自动启动。
- 单击 Install ,完成操作。
- 安装程序将查找 Parasoft Web 根证书颁发机构(CA),如果找不到,则提示您安装 CA。CA 通常作为正常的 SOAtest 或 Virtualize 桌面安装的一部分安装,并且需要通过 SSL 记录流量(请查阅 安装说明)。如果出现提示,请确认是否要安装 CA 并继续。
- 打开 Chrome 浏览器并在地址栏中输入
chrome://extensions
。 - 单击滑块以启用插件。
启用插件之后,您需要配置到 SOAtest 服务器的连接。
连接到 SOAtest 服务器
- 单击地址栏中出现的 Parasoft 图标。如果稍后需要更改配置,还可以右键单击图标并选择 Options 。
- 单击 Options 链接以访问连接设置。
- 指定以下设置:
- Web Proxy API Port: 40090 (默认)。
- SOAtest 主机:运行 SOAtest 服务器的机器名或 IP 地址。
- SOAtest 端口:SOAtest 服务器主机的端口号。
- 如果 SOAtest 服务器被配置为通过 SSL 通信,请启用 Secure (HTTPS) 选项。
- 用户名/密码:SOAtest 服务器登录凭证。
- 单击 Test Connection 验证设置是否正确,然后单击 Save ,完成连接设置的配置。
创建测试
在本节中,我们将为 ParaBank 样例应用程序创建一组测试场景。还将演示如何修改测试生成设置,以及如何教智能 API 测试生成器应用资源模板的 HTTP 身份验证、HTTP 数据头和 JSON 断言设置。在开始本教程之前,先启动 ParaBank 服务器 (请查阅 Setting Up ParaBank)。
场景 1 - 登录
在 Chrome 浏览器中打开 ParaBank。
- 单击 Parasoft 图标,启用用于 Parasoft SOAtest 选项的API 通讯报文。
- 选择 Start Recording ,然后登入应用程序(username: john, password: demo)。
- 单击 Parasoft logo 并选择 停止录制。
- 当提示时将测试命名为 "parabank-login",然后单击 创建测试资产。
- 当在 CTP 中打开测试资产出现提示时,单击确认对话框。
还可以在 SOAtest 桌面中查看资产。 - 双击测试 1,检查其配置。测试提交登录凭证。
- 双击测试 2,检查其配置。测试获取帐户概述信息。
- 只要值保持不变,测试就会在连续执行时传递。
场景2 - 转移资金
- 登录到 Parabank,开始录制一个新的场景。
- 单击 Transfer Funds 链接,在 Amout 字段中输入 100。
- 将默认的 From 和 To 帐户字段设置为帐户编号 12345,然后单击 Transfer。
- 停止录制, 在提示时指定测试的名称(比如:parabank-transfer)。
- Create Test Asset 然后单击 the notification to log to view the test in CTP。还可以在 SOAtest 桌面中审查测试。在这个场景中,我们将使用 CTP。
- 您将被引导到 API 测试模块,以检查测试。测试将出现在用户名下的 users 目录中。
- 单击测试 1("GET parabank .。.")以检查配置。该测试类似于登录场景中的测试 2,但是添加了一个 JSON 数据库,用于捕获和存储响应值。
- 单击测试 2,检查配置。传输数据被附加到 API 调用 URL。
- 返回测试。测试将失败。
- 单击 View Report 链接,调查错误。
- 存在几个问题,但最重要的是 401 错误,它涉及未经授权的访问。单击 View Traffic 链接以获得更多详情。响应显示 SOAtest 无法登录来执行该场景。
启用身份验证
- 单击传输场景中的测试 1,并启用“启用 HTTP 身份验证”选项。
- 指定登录凭据并保存更改。
- 重新运行测试。测试 1 通过了,但是测试 2 仍然失败,因为没有为特定的测试配置身份验证设置。像在测试 1 中那样指定身份验证设置。
- 我们需要一种更可伸缩的方法,为将来的测试启用身份验证。因此,我们将培训 SOAtest,以便为所选端点生成的所有测试启用身份验证设置。在 SOAtest 桌面中,右键单击 parabank-transfer.tst 文件,然后选择 Train Smart Test Template。
- 确认在提示时,是否将 HTTP 身份验证设置添加到智能测试模板中。
- 单击智能测试模板视图中的新资源,并验证身份验证设置是否出现。
我们将记录另一个场景,以验证是否使用了身份验证设置。。
场景 3 - 开立新账户
- 登录到 Parabank,开始记录一个新的场景。
- 单击 开立新账户 链接,并指定要使用帐户 12345 中的资金开立一个新的支票帐户。
- 单击 开立新账户 并停止录制。
- 当出现提示时,指定 parrot -new-account 作为新资产的名称,并单击“创建测试资产”。
- 退出 ParaBank ,并在 SOAtest 桌面或 CTP 中查看新的测试资产。您将看到测试中包含了 HTTP 身份验证设置,即使我们在录制场景之前已经登录。
- 执行测试,测试失败是因为每次执行测试时,与帐户关联的余额都会更改。
- 如果值的更改不重要,则可以删除 与测试一起生成的 Diff 工具,这样就不会考虑初始值。
- 重新运行测试,现在它将通过。有关如何配置在测试生成期间处理的 Diff 和 JSON 断言器工具的详细信息,请查阅 Configuring Test Creation 。
添加断言
- 重新运行 parabank-login 测试。测试 2 将失败,因为响应中返回的值已经更改。
- 删除 Diff 工具并重新运行测试。测试将通过。
- 尽管我们不关心 GET 调用在此阶段返回的值,但是我们希望通过添加一个 JSON 断言器来验证调用是否返回数据。右键单击测试 2,并在 SOAtest 桌面中选择 Add Output... 。
- 在左窗格中选择 Response> Traffic ,在工具选项面板中选择 JSON Assertor 。
- 单击 Finish 并单击 Configuration 选项卡。
- 单击 Add 并从 Structure Assertions 文件夹选择 Has Content Assertion 。
- 单击 Next 并选择一个 id 元素。
- 单击 Next 并选择 "Apply to All "item[*]” 选项,以便断言器应用于响应中的所有兄弟姐妹。
- 在 Configuration 选项卡中,从 set 的 Has content 下拉列表中选择 Fixed ,并设置值为
true
。 - 保存更改并运行测试。
- 测试通过了,但是我们希望确保所有生成的测试都以相同的方式对
id
元素断言。右键单击测试并选择 Train Smart Test Template。 - 检查更改并单击 OK。
- 将向资源模板中添加一个 JSON 断言器工具。该工具被配置为使用来自流量的值。
- 按照前面 Scenario 1 -Logging In中描述的过程,创建一个名为
parabank-login2
的新测试。 - 测试将在智能测试模板中配置身份验证和断言设置。
- 运行测试以验证它是否通过。
配置测试的创建
使用 Diffs 和 JSON 断言器工具的测试在测试执行期间期望特定的值。如果测试场景不需要特定的值,则您可以通过在 tst_create.properties 配置文件中禁用这些工具来防止 web 代理自动创建这些工具。有关更多详情,请查阅 Parasoft 录制器高级配置 。
- 打开配置文件。该文件位于 SOAtest 桌面工作区的 TestAssets 目录中。如果您使用 CTP 而不是 SOAtest 桌面来创建和执行 API 测试,那么您可以配置 tst_create.properties 文件随安装目录中 SOAtest 智能 API 测试生成器一起提供。对于 Mac Os,您需要右键单击 SOAtest Web 代理应用程序图标,并选择 Show Package Contents。
- 取消对
disableDiffCreation
和disableAssertorCreation
属性的测试,并将其设置为true
。 - 保存文件
- 您可以通过创建一个新的测试来验证测试创建设置。