跳到主要内容

构建 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 服务之间存在显着差异。该主题过于广泛,无法在用户手册中涵盖。请参阅其他来源以更好地了解差异。

JMeter 按照它们在树中出现的顺序发送请求。

首先使用菜单 File → Templates... 并选择模板Building a SOAP Webservice Test Plan。然后,单击创建按钮。

图 9.1.0。 网络服务模板

图 9.1.0。网络服务模板

更改以下内容:

  1. HTTP 请求默认值中更改 IP 的服务器名称

  2. 肥皂请求中,更改路径:

    图 9.1.1 Web 服务路径

    图 9.1.1 Web 服务路径

接下来,选择HTTP Header Manager并更新SOAPAction标头以匹配你的 Web 服务。在这种情况下,某些 web 服务可能不使用 SOAPAction 将其删除。
目前,只有 .NET 使用 SOAPAction,因此对于所有其他 Web 服务,有一个空白的 SOAPAction 是正常的。该列表包括 JWSDP、Weblogic、Axis、The Mind Electric Glue 和 gSoap。

图 9.1.2 Web 服务标头

图 9.1.2 Web 服务标头

最后一步是将 SOAP 消息粘贴到Body Data文本区域中。

图 9.1.3 Web 服务主体

图 9.1.3 Web 服务主体

9.2 添加用户

线程组 告诉 JMeter 你想模拟的用户数量,用户应该多久发送一次请求,以及他们应该发送多少个请求。

如果尚未选择树中的线程组元素,请选择它。你现在应该在 JMeter 窗口的右侧看到线程组控制面板(参见下面的图 9.2)

图 9.2。 具有默认值的线程组

图 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 中,控制面板会在你进行更改时自动接受你的更改。如果更改元素的名称,则在离开控制面板后(例如,选择另一个树元素时),将用新文本更新树。

有关已完成的 JMeter 用户线程组,请参见图 9.2。

图 9.3。 JMeter 用户线程组

图 9.3。JMeter 用户线程组

9.3 添加监听器以查看存储测试结果

你需要添加到测试计划的最后一个元素是 Listener 。此元素负责将 HTTP 请求的所有结果存储在文件中并呈现数据的可视化模型。

选择 JMeter Users 元素并添加一个 Aggregate Graph 侦听器(Add → Listener → Aggregate Graph)。接下来,你需要指定输出文件的目录和文件名。你可以在文件名字段中键入它,或者选择浏览按钮并浏览到一个目录,然后输入一个文件名。

图 9.4。 图表结果监听器

图 9.4。图表结果监听器

9.4 休息网络服务

测试一个 REST Web 服务非常相似,你只需要在 HTTP 请求中修改

  • 方法:选择你要测试的那个
  • 正文数据:可以是 JSON、XML 或任何自定义文本

你可能还需要修改HTTP Header Manager以选择正确的Content-Type