本教程描述了如何部署 Parasoft 录制器、录制 API 通讯报文、生成智能 API 测试以及配置智能 API 测试生成器。在本章节中:

前提条件

为了完成本教程,您需要远程访问 SOAtest 桌面或服务器,以及为您的许可证激活的高级测试生成特性。有关更多详情,请查阅 初步了解 Parasoft 录制器

部署 SOAtest Web 代理

  1. 为您的平台运行 Parasoft 录制器 安装程序: parasoft_recorder_<version>_win32.exe for Windows or parasoft_recorder_<version>_macos.dmg for installation on Mac OS.对于 Mac OS,程序安装后,请双击 Parasoft 录制器.pkg。
  2. 在提示时接受许可协议。
  3. 在提示时选择安装位置。对于 Windows,默认为 C:\Program Files\Parasoft\Parasoft 录制器 ;对于 Mac OS,默认为 /Applications/Parasoft 。
  4. 如果您使用的是 Windows,安装程序将提示您将 SOAtest Web 代理安装为 Windows 服务。这允许使用 Windows 服务控制代理。默认端口为 40090。选择 Yes ,然后单击 Next
  5. 选择 Yes ,然后在提示安装 Parasoft 录制器 Chrome 扩展程序时单击 Next 。需要一个可以访问谷歌 Chrome 商店的互联网连接。
  6. 如果您使用的是 Mac Os,安装程序将提示您确认要在安装之后启动 web 代理,以及每次登录安装机器时启动代理。默认端口为 40090。启用两个选项并单击 Continue。必须运行 web 代理才能在 SOAtest 中生成智能测试。稍后可以禁用自动启动。
  7. 单击 Install ,完成操作。
  8. 安装程序将查找 Parasoft Web 根证书颁发机构(CA),如果找不到,则提示您安装 CA。CA 通常作为正常的 SOAtest 或 Virtualize 桌面安装的一部分安装,并且需要通过 SSL 记录流量(请查阅 安装说明)。如果出现提示,请确认是否要安装 CA 并继续。   
  9. 打开 Chrome 浏览器并在地址栏中输入 chrome://extensions 。 
  10. 单击滑块以启用插件。

 

启用插件之后,您需要配置到 SOAtest 服务器的连接。

连接到 SOAtest 服务器

  1. 单击地址栏中出现的 Parasoft 图标。如果稍后需要更改配置,还可以右键单击图标并选择 Options
  2. 单击 Options 链接以访问连接设置。
  3. 指定以下设置:
    1. Web Proxy API Port: 40090 (默认)。
    2. SOAtest 主机:运行 SOAtest 服务器的机器名或 IP 地址。
    3. SOAtest 端口:SOAtest 服务器主机的端口号。
    4. 如果 SOAtest 服务器被配置为通过 SSL 通信,请启用 Secure (HTTPS) 选项。
    5. 用户名/密码:SOAtest 服务器登录凭证。 
  4. 单击 Test Connection 验证设置是否正确,然后单击 Save ,完成连接设置的配置。

创建测试

在本节中,我们将为 ParaBank 样例应用程序创建一组测试场景。还将演示如何修改测试生成设置,以及如何教智能 API 测试生成器应用资源模板的 HTTP 身份验证、HTTP 数据头和 JSON 断言设置。在开始本教程之前,先启动 ParaBank 服务器 (请查阅 Setting Up ParaBank)。

场景 1 - 登录    

  1. 在 Chrome 浏览器中打开 ParaBank。 

  2. 单击 Parasoft 图标,启用用于 Parasoft SOAtest 选项的API 通讯报文。
     
  3. 选择 Start Recording ,然后登入应用程序(username: john, password: demo)
  4. 单击 Parasoft logo 并选择 停止录制
  5. 当提示时将测试命名为 "parabank-login",然后单击 创建测试资产
  6. 当在 CTP 中打开测试资产出现提示时,单击确认对话框。

    还可以在 SOAtest 桌面中查看资产。
  7. 双击测试 1,检查其配置。测试提交登录凭证。 
     
  8. 双击测试 2,检查其配置。测试获取帐户概述信息。
     
  9. 只要值保持不变,测试就会在连续执行时传递。

场景2 - 转移资金

  1. 登录到 Parabank,开始录制一个新的场景。
  2. 单击 Transfer Funds 链接,在 Amout 字段中输入 100。
  3. 将默认的 From 和 To 帐户字段设置为帐户编号 12345,然后单击 Transfer。 
  4. 停止录制, 在提示时指定测试的名称(比如:parabank-transfer)
  5. Create Test Asset 然后单击 the notification to log to view the test in CTP还可以在 SOAtest 桌面中审查测试。在这个场景中,我们将使用 CTP。
  6. 您将被引导到 API 测试模块,以检查测试。测试将出现在用户名下的 users 目录中。
  7. 单击测试 1("GET parabank .。.")以检查配置。该测试类似于登录场景中的测试 2,但是添加了一个 JSON 数据库,用于捕获和存储响应值。
  8. 单击测试 2,检查配置。传输数据被附加到 API 调用 URL。
  9. 返回测试。测试将失败。
  10. 单击 View Report 链接,调查错误。 
  11. 存在几个问题,但最重要的是 401 错误,它涉及未经授权的访问。单击 View Traffic 链接以获得更多详情。响应显示 SOAtest 无法登录来执行该场景。

启用身份验证

  1. 单击传输场景中的测试 1,并启用“启用 HTTP 身份验证”选项。
  2. 指定登录凭据并保存更改。
  3. 重新运行测试。测试 1 通过了,但是测试 2 仍然失败,因为没有为特定的测试配置身份验证设置。像在测试 1 中那样指定身份验证设置。 
  4. 我们需要一种更可伸缩的方法,为将来的测试启用身份验证。因此,我们将培训 SOAtest,以便为所选端点生成的所有测试启用身份验证设置。在 SOAtest 桌面中,右键单击 parabank-transfer.tst 文件,然后选择 Train Smart Test Template
  5. 确认在提示时,是否将 HTTP 身份验证设置添加到智能测试模板中。
  6. 单击智能测试模板视图中的新资源,并验证身份验证设置是否出现。

我们将记录另一个场景,以验证是否使用了身份验证设置。。 

场景 3 - 开立新账户

  1. 登录到 Parabank,开始记录一个新的场景。
  2. 单击 开立新账户 链接,并指定要使用帐户 12345 中的资金开立一个新的支票帐户。
  3. 单击 开立新账户 并停止录制。
  4. 当出现提示时,指定 parrot -new-account 作为新资产的名称,并单击“创建测试资产”。
  5. 退出 ParaBank ,并在 SOAtest 桌面或 CTP 中查看新的测试资产。您将看到测试中包含了 HTTP 身份验证设置,即使我们在录制场景之前已经登录。  
  6. 执行测试,测试失败是因为每次执行测试时,与帐户关联的余额都会更改。 
  7. 如果值的更改不重要,则可以删除 与测试一起生成的 Diff 工具,这样就不会考虑初始值。 
  8. 重新运行测试,现在它将通过。有关如何配置在测试生成期间处理的 Diff 和 JSON 断言器工具的详细信息,请查阅 Configuring Test Creation 。

添加断言

  1. 重新运行 parabank-login 测试。测试 2 将失败,因为响应中返回的值已经更改。 
  2. 删除 Diff 工具并重新运行测试。测试将通过。
  3. 尽管我们不关心 GET 调用在此阶段返回的值,但是我们希望通过添加一个 JSON 断言器来验证调用是否返回数据。右键单击测试 2,并在 SOAtest 桌面中选择 Add Output... 。 
  4. 在左窗格中选择 Response> Traffic ,在工具选项面板中选择 JSON Assertor 。 
  5. 单击 Finish 并单击 Configuration 选项卡。
  6. 单击 Add 并从 Structure Assertions 文件夹选择 Has Content Assertion 。 
  7. 单击 Next 并选择一个 id 元素。 
  8. 单击 Next 并选择 "Apply to All "item[*]” 选项,以便断言器应用于响应中的所有兄弟姐妹。
  9. 在 Configuration 选项卡中,从 set 的 Has content 下拉列表中选择 Fixed ,并设置值为 true。 
  10. 保存更改并运行测试。 
  11. 测试通过了,但是我们希望确保所有生成的测试都以相同的方式对 id 元素断言。右键单击测试并选择 Train Smart Test Template
  12. 检查更改并单击 OK。 
  13. 将向资源模板中添加一个 JSON 断言器工具。该工具被配置为使用来自流量的值。
  14. 按照前面 Scenario 1 -Logging In中描述的过程,创建一个名为 parabank-login2 的新测试。 
  15. 测试将在智能测试模板中配置身份验证和断言设置。
     
  16. 运行测试以验证它是否通过。

配置测试的创建

使用 Diffs 和 JSON 断言器工具的测试在测试执行期间期望特定的值。如果测试场景不需要特定的值,则您可以通过在 tst_create.properties 配置文件中禁用这些工具来防止 web 代理自动创建这些工具。有关更多详情,请查阅 Parasoft 录制器高级配置 。  

  1. 打开配置文件。该文件位于 SOAtest 桌面工作区的 TestAssets 目录中。如果您使用 CTP 而不是 SOAtest 桌面来创建和执行 API 测试,那么您可以配置 tst_create.properties 文件随安装目录中 SOAtest 智能 API 测试生成器一起提供。对于 Mac Os,您需要右键单击 SOAtest Web 代理应用程序图标,并选择 Show Package Contents。 
  2. 取消对 disableDiffCreation 和 disableAssertorCreation 属性的测试,并将其设置为 true
  3. 保存文件 
  4. 您可以通过创建一个新的测试来验证测试创建设置。
  • No labels