在继续本节之前,让我们先了解一些有关webservicesapi的关键概念。

webservices

web服务被定义为旨在通过网络支持两台机器之间交互的软件系统。它被设计为具有以通常在web服务描述语言(wsdl)中指定的机器可处理格式描述的接口。通常,“http”是最常用的通信协议。web服务还使用soap,rest和xml-rpc作为通信手段。

web服务可能不包含完整的规范集,有时可能无法执行完整api可能执行的所有任务。

api(应用程序编程接口)

api充当两个不同应用程序之间的接口,以便它们可以相互通信。这是第三方供应商可以编写与其他程序轻松连接的程序的方法。api可以使用任何通信方式来启动应用程序之间的交互。例如,linux内核api使用中断调用系统调用。

api包含一套完整的规则和规范,供软件程序遵循以便于交互。

webapi

webapi可以被视为web服务中的一种开发,其中重点已经转移到更简单的基于表示状态转移(rest)的通信。restfulapi不需要基于xml的web服务协议(soap和wsdl)来支持其接口。

web服务大致分为两类:

1) 简单对象访问协议(soap)

2) 代示状态转移(rest)

为了测试目的,我们将使用一些公开可用的restapi来测试jmeter。

可以在internet上搜索各种可公开使用的restapi。并获取api密钥以在jmeter中设置测试。您还可以使用任何开发环境构建整个web服务项目,并将其部署在jmeter上以运行测试计划。

对于此测试,我们使用的是开放天气地图网站在url下提供的api:

https://openweathermap.org/api

下图显示了open weather map网站提供的api部分。

可以在此网站上注册以访问您的api密钥,该密钥随后用于获取正确的天气报告。

在我们的例子中,生成的api密钥
:3f25ec8eed9e1951e21407a34312c2c8

下图显示了成功登录后生成的api密钥。

现在,我们将使用此api密钥以及调用api的方法来获得所需的结果。调用api的方法包括服务器名称,后跟城市代码/城市名称和api密钥。

下图显示了openweathermap网站提供的api调用示例。

现在,我们将创建一个测试计划来测试openweathermap网站提供的rest api。

创建jmeter测试计划

  • 进入到jmeter/bin文件夹,双击jmeter.bat文件以启动jmeter界面。
  • 单击“test plan”节点。
  • 将此测试计划节点重命名为: webservicetest
  • 选择 webservicetest 节点,然后右键单击所选项。
  • 鼠标悬停在“add” 选项上,然后将显示元素列表。
  • 选择“线程(用户)”>“线程组”。

修改线程组的以下属性:

  • 名称 – webservice user
  • 线程数(用户) – 2
  • 加速期 – 保留默认值(1)。
  • 循环计数-1

添加采样器

  • 选择webservice user 元素(线程组),然后右键单击所选项。
  • 鼠标悬停在“add”选项上,然后将显示元素列表。
  • 选择sampler> http request

在http request控制面板中设置以下字段:

  • 名称 – http请求
  • 服务器名称或ip – api.openweathermap.org
  • 路径 – data/2.5/weather
  • 参数 – q = london
  • appid = 3f25ec8eed9e1951e21407a34312c2c8

添加监听器

listener元素将负责将http请求的所有结果存储在文件中,并呈现数据的可视化模型。

  • 选择webservice user元素。
  • 鼠标悬停在“add”选项上,然后将显示元素列表。
  • 选择listener> view results tree选项。

保存并执行测试计划

  • 单击 file > save test plan as
  • 将整个测试计划保存为http_test.jmx

单击run > start以执行测试计划。

验证输出

可以在侦听器中看到以下输出。

在响应数据选项卡中,可以看到openweathermap网站提供的实际天气报告。