9. 构建 WebService 测试计划¶
在本节中,您将学习如何创建 测试计划来测试 Web 服务。您将创建五个向一页发送请求的用户。此外,您将告诉用户运行他们的测试两次。因此,请求总数为(5 个用户)x(1 个请求)x(重复 2 次)=10 个 HTTP 请求。要构建测试计划,您将使用以下元素: 线程组、 HTTP 请求和 聚合图。
如果采样器似乎从 Web 服务收到错误,请仔细检查 SOAP 消息并确保格式正确。特别是,确保 xmlns属性与 WSDL 完全相同。如果 xml 命名空间不同,webservice 可能会返回错误。
9.1 创建 WebService 测试计划¶
在我们的测试计划中,我们将使用 .NET Web 服务。我们不会深入讨论编写 Web 服务的细节。如果您不知道如何编写 Web 服务,请在 Google 上搜索 Web 服务并熟悉为 Java 和 .NET 编写 Web 服务。应该注意的是,.NET 和 Java 如何实现 Web 服务之间存在显着差异。该主题过于广泛,无法在用户手册中涵盖。请参阅其他来源以更好地了解差异。
首先使用菜单 Building a SOAP Webservice Test Plan ”。然后,单击“创建”按钮。
更改以下内容: 并选择模板“- 在“ HTTP 请求默认值”中更改“ IP 的服务器名称”
- 在“肥皂请求”中,更改“路径: ”
接下来,选择“ HTTP Header Manager ”并更新“ SOAPAction ”标头以匹配您的 Web 服务。在这种情况下,某些 web 服务可能不使用 SOAPAction 将其删除。
目前,只有 .NET 使用 SOAPAction,因此对于所有其他 Web 服务,有一个空白的 SOAPAction 是正常的。该列表包括 JWSDP、Weblogic、Axis、The Mind Electric Glue 和 gSoap。
最后一步是将 SOAP 消息粘贴到“ Body Data ”文本区域中。
9.2 添加用户¶
线程组告诉 JMeter 你想模拟的用户数量,用户应该多久发送一次请求,以及他们应该发送多少个请求。
如果尚未选择树中的线程组元素,请选择它。您现在应该在 JMeter 窗口的右侧看到线程组控制面板(参见下面的图 9.2)
首先为我们的线程组提供一个更具描述性的名称。在名称字段中,输入 JMeter 用户。
接下来,将用户数(称为线程)增加到 10。
在下一个字段 Ramp-Up Period 中,保留默认值 0 秒。该属性告诉 JMeter 在启动每个用户之间延迟多长时间。例如,如果您输入 5 秒的 Ramp-Up Period,JMeter 将在 5 秒结束时完成启动所有用户。因此,如果我们有 5 个用户和 5 秒的 Ramp-Up Period,那么启动用户之间的延迟将为 1 秒(5 个用户 / 5 秒 = 1 个用户/秒)。如果您将该值设置为 0,那么 JMeter 将立即启动您的所有用户。
最后,清除标记为“ Forever ”的复选框,并在 Loop Count 字段中输入值2 。此属性告诉 JMeter 重复测试多少次。如果您输入循环计数值0,那么 JMeter 将只运行一次测试。要让 JMeter 重复运行您的测试计划,请选中Forever 复选框。
有关已完成的 JMeter 用户线程组,请参见图 9.2。
9.3 添加监听器以查看存储测试结果¶
您需要添加到测试计划的最后一个元素是 Listener。此元素负责将 HTTP 请求的所有结果存储在文件中并呈现数据的可视化模型。
选择 JMeter Users 元素并添加一个Aggregate Graph侦听器( )。接下来,您需要指定输出文件的目录和文件名。您可以在文件名字段中键入它,或者选择“浏览”按钮并浏览到一个目录,然后输入一个文件名。
9.4 休息网络服务¶
测试一个 REST Web 服务非常相似,你只需要在 HTTP 请求中修改
- 方法:选择你要测试的那个
- 正文数据:可以是 JSON、XML 或任何自定义文本