您可以从测试场景页面直接在 SOAtest 服务器上添加测试场景和测试套件,打开 API 测试模块即可访问该页面。
创建新的测试场景(.tst 文件)
测试场景是可以在作业或供应期间执行的最小单元。它以 .tst 文件的形式存储在 SOAtest 工作空间中。
从 CTP 添加一个新的 .tst:
- 在左窗格中,选择要添加新测试场景的服务器或文件夹。
- 从页面级操作菜单选择 创建测试场景 。
- (可选)修改新建测试场景的名称。
- 指示希望如何创建场景。
测试场景创建选项
Empty: 若要创建框架(空的)测试场景,请将 Create 设置为 Empty,然后单击 Save。这里不需要额外的步骤(稍后可以添加测试)。
RAML: 若要自动生成基于 RAML 描述中找到的端点的测试场景,请将 Create 设置为 From RAML,输入用于查找 RAML 定义的绝对 URI,然后单击 Save。支持 RAML 0.8 和 1.0。
Swagger: 若要自动生成基于 Swagger 描述中找到的端点的测试场景,请将 Create 设置为 From Swagger,输入用于查找 Swagger 定义的绝对 URI,然后单击 Save。支持 Swagger 规范 1.0 - 2.0。
WSDL: 若要自动地从 WSDL(每个服务操作一个测试)生成测试场景,请将 Create 设置为 From WSDL,指定 WSDL 位置,然后单击 Save。
通讯报文:若要自动地从通讯报文文件(由 Parasoft 代理驱动程序记录或其他实用程序创建)生成测试场景,请将 Create 设置为 From Traffic,指定模板或数据资源库设置,然后单击 Save。
关于从通讯报文创建测试的技巧:
- 为了从通讯报文中创建一个新的测试场景,您需要进行以下操作:a) 共同安装 Parasoft SOAtest 与 Parasoft Virtualize;b) 访问运行 Parasoft 数据存储库;c) 至少一个通讯报文文件(例如,由代理记录或事件消息导出),该文件必须保存在 VirtualAssets 项目中。
- (可选)如果希望使用保存在 Parasoft SOAtest 模板中的“create from traffic”配置来创建创建测试,请指定要使用哪个模板(可以在给定 SOAtest 服务器上的 traffic_templates 文件夹中选择任何可用的模板)。一旦指定了模板,相关字段将自动设置并不可编辑。
- 在指定数据存储库名称时,可以使用现有存储库,也可以指定新存储库。
- 通讯报文的消息内容必须是格式良好的(比如,如果是 XML,则它必须是格式良好的);否则,从通讯报文中自动创建测试可能会失败。SOAP 消息必须只有一个顶级 XML 元素。
这个 .tst(包括任何生成的 SOAP 客户机工具)将被添加到指定的 SOAtest 服务器。您可以通过选择关联的树节点来查看添加的 SOAP 客户机。
- 如果从通讯报文创建测试:则这些工具将使用存储在指定的 Parasoft 数据存储库中的值自动配置和参数化。
- 如果从 RAML 或 Swagger 创建测试:测试场景将为定义中的每个资源/方法对包含一个 REST 客户机。每个 REST 客户机的资源 URL、HTTP 方法和有效负载(如果适用)都相应地配置。服务的基本 URL 配置为“BASEURL”变量。每个资源 URL 都使用“BASEURL”变量进行参数化。查询参数与服务定义定义的默认值或示例值(如果可用)一起包含。有效负载包含一个实例消息(如果适用的话)。如果服务定义包含 JSON 模式,则将从该 JSON 模式构建示例有效负载。
- 如果从 WSDL 创建测试:则将自动配置工具的名称、请求消息、端点和 SOAP 操作。为端点值创建一个变量。将端点设置为一个灵活的变量,而不是硬编码值,您可以在不修改测试本身的情况下运行相同的测试和不同的环境。生成的变量在生成的变量集中定义。
变量值可以在测试作业级别和组件实例级别进行调整。
创建框架测试套件
若要在现有测试场景(.tst 文件)添加一个框架测试套件:
- 请在左窗格中,选择要添加新测试套件的 .tst 或测试套件。
- 从页面级操作菜单选择 Add Test Suite 。
- (可选)修改新建测试场景的名称。
测试套件将添加到指 .tst 文件中指定的 SOAtest 服务器。
添加工具
您可以直接从 CTP 界面添加常用的 API 测试工具(如 REST 客户机、SOAP 客户机、Diff、XML/JSON 断言器和 XML/JSON 数据库工具)的设置。可以从 SOAtest 桌面添加其他工具。
有关详情,请查阅 。
参数化工具
可以使用数据源或提取的值参数化工具值。有关更多详情,请查阅 使用数据源和数据库值参数化 。