Web Services

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

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

API(应用程序编程接口)

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

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

Web API

Web API可以被视为Web服务中的一种开发,其中重点已经转移到更简单的基于表示状态转移(REST)的通信。 Restful API不需要基于XML的Web服务协议(SOAP和WSDL)来支持其接口。

Web服务大致分为两类:

  • 简单对象访问协议(SOAP)
  • 代示状态转移(REST)

为了测试目的,我们将使用一些公开可用的REST API来测试JMeter。

可以在Internet上搜索各种可公开使用的REST API。并获取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网站提供的实际天气报告。

最新文章

  1. WEB API异常处理
  2. 对想进入Unity开发新人的一些建议
  3. zookeeper Eclipse 开发环境搭建及简单示例
  4. 《Play for Java》学习笔记(二)基本的CRUD应用
  5. 8 种 NoSQL 数据库系统对比
  6. linux驱动系列之makefile
  7. web04--cookie
  8. docker10件事
  9. 使用Cookie来统计浏览次数,当天重复刷新不增加
  10. 纯js实现html转pdf
  11. Hibernate原理
  12. 如何实现跨 Docker 主机存储?- 每天5分钟玩转 Docker 容器技术(73)
  13. MongoDB入门系列(四):权限管理
  14. Android系统层次解析
  15. mysql外键使用
  16. SQL 必知必会·笔记<15>创建和操纵表
  17. 011-ThreadFactory线程工厂
  18. 动手动脑-Java的继承与多态
  19. WAS 忘记密码
  20. DB中字段为null,为空,为空字符串,为空格要怎么过滤取出有效值

热门文章

  1. IDEA入门(1)--lombok和Junit generator2插件的运用
  2. Libevent:6辅助函数以及类型
  3. python 约束. 异常处理. MD5. 日志处理
  4. MongoDB 基础API使用
  5. JS高级第1天
  6. 如何入门 C++ AMP 教程
  7. angularjs 自定义指令弹窗
  8. sublime简介
  9. LA 4973 Ardenia (3D Geometry + Simulation)
  10. SuperSocket 服务器管理器客户端