本文概述
在继续本节之前, 让我们首先了解有关Web服务API的一些关键概念。
网页服务
Web服务被定义为一种软件系统, 旨在支持网络上两台计算机之间的交互。它被设计为具有一个接口, 该接口通常以Web服务描述语言(WSDL)中指定的机器可处理格式进行描述。通常, “ HTTP”是最常用的通信协议。 Web服务还使用SOAP, REST和XML-RPC作为通信手段。
Web服务可能不包含完整的规范集, 有时可能无法执行完整API可能完成的所有任务。
API(应用程序编程接口)
API充当两个不同应用程序之间的接口, 以便它们可以彼此通信。通过这种方法, 第三方供应商可以编写与其他程序轻松交互的程序。API可以使用任何通信方式来启动应用程序之间的交互。例如, Linux内核API使用中断来调用系统调用。
API包含一套完整的规则和规范, 供软件程序遵循以促进交互。
网络API
Web API可以看作是Web服务的一种开发, 其中重点已转向基于更简单的表示状态传输(REST)的通信。宁静的API不需要基于XML的Web服务协议(SOAP和WSDL)来支持其接口。
Web服务大致分为两类:
简单对象访问协议(SOAP)
代表性状态转移(REST)
出于测试目的, 我们将使用一些公共可用的REST API与JMeter进行测试。
你可以在互联网上搜索各种公开可用的REST API?S, 并获取API密钥以在JMeter中进行测试。你还可以使用任何开发环境来构建整个Web服务项目, 并将其部署在JMeter上以运行测试计划。
对于此测试, 我们使用Open Weather Map网站在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文件夹, 然后双击ApacheJMeter.jar文件以启动JMeter界面。
单击“测试计划”节点。
将该测试计划节点重命名为WebServiceTest。
选择WebServiceTest节点, 然后右键单击所选项目。
将鼠标悬停在“添加”选项上, 然后将显示元素列表。
选择线程(用户)>线程组。
修改线程组的以下属性:
名称-Web服务用户
线程数(用户)-2
加速时间-保留默认值(1)。
循环计数-1
添加采样器
选择Webservice用户元素(线程组), 然后右键单击所选项目。
将鼠标悬停在“添加”选项上, 然后将显示元素列表。
选择采样器> HTTP请求。
在“ HTTP请求”控制面板中设置以下字段:
名称-HTTP请求
服务器名称或IP-api.openweathermap.org
路径-数据/2.5/天气
参数-q =伦敦
appid = 3f25ec8eed9e1951e21407a34312c2c8
添加监听器
Listener元素将负责将HTTP请求的所有结果存储在文件中, 并提供数据的可视模型。
选择Webservice用户元素。
将鼠标悬停在“添加”选项上, 然后将显示元素列表。
选择“侦听器”>“查看结果树”选项。
保存并执行测试计划
单击文件>将测试计划另存为。
将整个测试计划另存为HTTP_test.jmx。
单击运行>开始以执行测试计划。
验证输出
在侦听器中可以看到以下输出。
在“响应数据”选项卡中, 你可以查看OpenWeatherMap网站提供的实际天气报告。