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网站提供的实际天气报告。

JMeter Webservice API测试计划的更多相关文章

  1. 使用JMeter进行API功能测试

    使用JMeter进行API功能测试 Apache JMeter是一种流行的开源软件,用于性能测试. 在本博客中,我们将阐明如何使用JMeter for REST API自动化进行功能测试. 我们使用了 ...

  2. JMeter - REST API测试 - 完整的数据驱动方法(翻译)

    https://github.com/vinsguru/jmeter-rest-data-drivern/tree/master 在本文中,我想向您展示一种用于REST API测试的数据驱动方法.如果 ...

  3. 性能测试分享:Jmeter的api监控工具解决方案

    性能测试分享:Jmeter的api监控工具解决方案 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询q ...

  4. Jmeter 建立数据库测试计划

    建立数据库测试计划(Building a Database Test Plan) 在本节中,将学习如何创建测试数据库服务器一个简单的测试计划.您将创建五十个用户向数据库服务器发送2个SQL请求.并且, ...

  5. 六、Jmeter测试元件-测试计划

    启动Jmeter时,会默认建好一个测试计划,启动一个Jmeter只有个测试计划 测试用到的源码下载地址 https://www.cnblogs.com/fanfancs/p/13557062.html ...

  6. JMeter Webservice测试计划

    一.新建测试计划:HelloWorld测试计划 二.添加线程组 编辑线程组属性: 三.添加 SOAP/ XML-RPC 请求元素 四.填入url地址及请求报文 此处的请求报文,是用soapUI生成的, ...

  7. 使用Jmeter对API进行性能测试

    先补充刚才测试的部分截图余下,后续详细补充内容. API Test.jmx 如下: <?xml version="1.0" encoding="UTF-8" ...

  8. 使用JMeter创建FTP测试计划

    FTP服务主要提供上传和下载功能.有时间需要我们测试服务器上传和下载的性能.在这里我通过JMeter做一个FTP测试计划的例子. 当然,JMeter官方网站的用户手册也有例子,但由于版本较早,我也算是 ...

  9. JMeter学习FTP测试计划(转)

    FTP服务主要提供上传和下载功能.有时间需要我们测试服务器上传和下载的性能.在这里我通过JMeter做一个FTP测试计划的例子. 1.创建一个线程组 2.线程组--->添加--->配置元件 ...

随机推荐

  1. 【Mysql的那些事】数据库之ORM操作

    1:ORM的基础操作(必会) <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(* ...

  2. Java练习 SDUT-1200_汉诺塔

    汉诺塔 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 汉诺塔(又称河内塔)问题是印度的一个古老的传说. 开天辟地的神勃 ...

  3. ROS开发过程中遇到:Could not find a package configuration file provided by "qt_build" with any of the following names: qt_buildConfig.cmake qt_build-config.cmake........

    最近在搭建QT开发ROS 界面的环境,遇到了很多问题,参考了很多资料,最后发现有些问题其实没有那么复杂,只是我们对整体环境还不了解,熟悉了以后你会发现有些问题就迎刃而解了. 在这个过程中,我首先新建了 ...

  4. 伪元素 before 和 after 各种妙用

    大家可能对伪类和伪元素有点迷糊,在介绍具体用法之前,简单介绍下伪类和伪元素.伪类大家听的多了,伪元素可能听到的不是那么频繁,其实 CSS 对这两个是有区分的. 这里整理总结下: 有时你会发现伪类元素使 ...

  5. Kafka数据迁移MaxCompute最佳实践

    摘要: 本文向您详细介绍如何使用DataWorks数据同步功能,将Kafka集群上的数据迁移到阿里云MaxCompute大数据计算服务. 前提条件 搭建Kafka集群 进行数据迁移前,您需要保证自己的 ...

  6. OpenStack☞网关协议

    一 动态页面与静态页面区别 静态页面:每一个网页都有一个固定的URL,且网页的URL以.html..htm..shtml等常见的形式为后缀. 网页内容已经发布到网站服务器上,无论是否有用户访问,每个静 ...

  7. Core Data 数据出现Fault

    I am mapping Json Data from Server using Restkit and I am Displaying those data by fetching from db. ...

  8. 模块化Vs组件化

    模块化&组件化 原因 图解 模块化Module 概念 使用 目的 依赖 架构定位 内容:组件内的Script 组件化 概念 使用 目的:复用,解耦 依赖 架构定位 内容:template.st ...

  9. HDU 1326

    题意:给出一堆高度不一的砖头,现在使他们高度一样,问最少的移动次数,(每减少1就是移动一次) 思路:求出平均高度,然后模拟最后平均高度的数组,也就是说,每个数组对应每一个平均高度,也就是说比平均高度大 ...

  10. Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.1.3.RELEASE:repackage (repackage)

    解决方案是删除 pom.xml配置的问题 <build> <plugins> <plugin> <groupId>org.springframework ...