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

前提条件

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

部署 SOAtest Web 代理

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

 

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

连接到 SOAtest 服务器

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

创建测试

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

场景 1 - 登录    

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

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

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

场景2 - 转账

  1. 登录到 Parabank,开始录制一个新的场景。
  2. 点击 Transfer Funds 链接,在 Amount 字段中输入 100。
  3. 将默认的 FromTo 帐户字段设置为帐户编号 12345 并点击 Transfer。 
  4. 停止录制,根据提示指定测试的名称(例如 parabank-transfer)
  5. 点击创建测试资产并点击在 CTP 中查看测试的通知。还可以在 SOAtest 桌面中审查测试。在这个场景中,我们将使用 CTP。
  6. 您将被定向到 API 测试模块以检查测试。测试将出现在用户名下的 users 目录中。
  7. 点击测试 1("GET parabank ...")以检查配置。该测试类似于登录场景中的测试 2,但是添加了一个 JSON 数据库,用于捕获和存储响应值。
  8. 点击测试 2,检查配置。传输数据被附加到 API 调用 URL。
  9. 返回测试。测试将失败。
  10. 点击查看报告链接,调查错误。 
  11. 存在几个问题,但最重要的是 401 错误,它涉及未经授权的访问。点击查看通讯报文链接以获得更多详情。响应显示 SOAtest 无法登录来执行该场景。

启用身份验证

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

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

场景 3 - 开立新账户

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

添加断言

  1. 重新运行 parabank-login 测试。测试 2 将失败,因为响应中返回的值已经更改。 
  2. 删除比较工具并重新运行测试。测试将通过。
  3. 尽管我们不关心 GET 调用在此阶段返回的值,但是我们希望通过添加一个 JSON 断言器来验证调用是否返回数据。右键点击测试 2,并在 SOAtest 桌面端中选择添加输出...。 
  4. 在左窗格中选择响应> 通讯报文,在工具选项面板中选择JSON 断言器。 
  5. 点击完成并点击配置选项卡。
  6. 点击添加并从结构断言文件夹选择有内容断言。 
  7. 点击下一步并选择一个 id 元素。 
  8. 点击下一步并选择应用于所有的 "item[*]" 选项,以便断言器应用于响应中的所有同级元素。
  9. 在配置选项卡中,为有内容选择固定值,将值设为 true。 
  10. 保存更改并运行测试。 
  11. 测试通过了,但是我们希望确保所有生成的测试都以相同的方式对 id 元素断言。右键点击测试并选择训练智能测试模板
  12. 检查更改并点击 OK。 
  13. 将向资源模板中添加一个 JSON 断言器工具。该工具被配置为使用来自通讯报文的值。
  14. 按照Scenario 1 -Logging In中描述的流程,创建名为“parabank-login2”的新测试。 
  15. 测试将在智能测试模板中配置身份验证和断言设置。
     
  16. 运行测试以验证它是否通过。

配置测试的创建

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

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