使用JMeter进行API功能测试

Apache JMeter是一种流行的开源软件,用于性能测试。

在本博客中,我们将阐明如何使用JMeter for REST API自动化进行功能测试。

我们使用了https://reqres.in/site中的示例API ,其中列出了可用于测试的多个真实API。我们选择了用户管理API,可以注册用户,登录用户,列出所有用户,创建用户,更新用户删除用户

列出用于此测试脚本的API:

/api/users?page=2

/api/users/2

/api/register

/api/login

使用JMeter,我们考虑了以下示例REST端点:

  • 使用HTTP POST添加新用户。
  • 使用HTTP GET检索所有用户的列表。
  • 使用HTTP PUT更新新添加的用户。
  • 使用HTTP DELETE删除添加的用户。

步骤1:创建新的测试计划 - >右键单击 - >添加 - >线程 - >线程组

  1. 将线程数(用户)设置为10 - 我们将有10个用户执行测试计划。
  2. 将Ramp-up周期(以秒为单位)设置为10 - Ramp-up周期告诉JMeter在处理下一个用户之前的延迟时间。
  3. 将循环计数设置为10 - 执行测试的次数。

注意:逻辑控制器确定执行用户请求的顺序。简单控制器只是用户请求的容器。

第2步:  线程组 - >右键单击 - >添加 - >逻辑控制器 - >简单控制器

第3步:  简单控制器 - >右键单击 - >添加 - >采样器 - > Http采样器请求

POST方法

POST请求用于在数据源中创建新记录。

添加新用户

步骤1:创建POST方法请求,以使用两个参数(电子邮件和密码)注册新用户,并将其重命名为“注册成功”。

  • 输入协议为“https”,IP地址为“reqres.in”。
  • 选择方法为“POST”。
  • 输入API路径。同样,我们可以成功登录并使用“POST”方法创建用户。

  • 名称:发布项目
  • 方法:POST
  • 正文数据:JSON项目对象

在响应断言中添加要测试的模式

第2步 :  创建文本文件并将参数保存在该文件中。Jmeter动态使用CSV数据存储多个数据对象,更新数据值等。

第3步:  线程组→添加Http头管理器

添加内容类型和令牌

第4步:保存并运行注册成功测试用例。

步骤5  :  Threadgroup-> Add-> Listener-> View Results Tree

GET方法

GET方法用于检索数据源中的信息。

检索所有用户的列表。

第1步:简单控制器 - >右键单击 - >添加 - >另一个采样器 - > Http采样器请求

  • 添加另一个HTTP采样器请求。
  • 输入协议为“https”,IP地址为“reqres.in”。
  • 选择方法为“GET”。
  • 输入列表用户的API路径。

  • 路径:/ users / $ {userId}
  • 方法:GET

第2步:Listusers->右键单击 - >添加 - >断言 - >响应断言

第3步:  列表用户→添加 - >监听器

  • 保存并运行“listusers”测试用例。
  • 查看列出所有用户的响应数据。

PUT方法用于更新数据源中的现有记录。

更新添加的用户。

第1步:简单控制器 - >右键单击 - >添加 - >另一个采样器 - > Http Request Sampler

  • 添加另一个HTTP请求采样器并将其命名为“updateusers”。
  • 将方法设置为“PUT”。
  • 输入协议为“https”,ip地址为“reqres.in”。
  • 输入API路径。
  • 将用户的详细信息添加为正文数据。

第2步:值直接传递到帖子数据。

步骤3:  更新用户 - >添加 - >断言 - >响应断言

第4步:保存并运行“updateusers”测试用例。 查看更新用户的响应数据。

删除方法

DELETE请求用于删除数据源中的现有记录。

从列表中删除用户。

第1步:简单控制器 - >右键单击 - >添加 - >另一个采样器 - > Http请求采样器:

  • 添加另一个HTTP请求采样器并将其命名为“deleteusers”。
  • 将方法设置为“DELETE”。
  • 输入协议为“https”,IP地址为“reqres.in”。
  • 输入API路径。
  • 将用户的详细信息添加为正文数据。

步骤2:  删除用户 - >添加 - >断言 - >响应断言

第3步 :  保存并运行“Deleteusers”测试用例。查看已删除用户的响应数据。

最后,我们可以添加不同的监听器,如“查看结果树”来结束。要添加,请右键单击并选择“侦听器”→“查看结果树”。

在这里,您可以看到每个测试用例的每个样本请求的请求和响应数据。

作为一个例子,我们为下面的一个负面测试用例编写了脚本:

注册失败

第1步:简单控制器 - >右键单击 - >添加 - >另一个采样器 - > Http采样器请求:

  • 添加另一个HTTP请求采样器并将其命名为“Register unsuccess”。
  • 将方法设置为“POST”。
  • 输入协议为“https”,IP地址为“reqres.in”。
  • 输入API路径。
  • 在POST正文数据中添加用户的详细信息。

步骤2:注册 失败 - >添加 - >断言 - >响应断言

步骤3:  保存并运行“register unsuccess”测试用例。查看注册失败用户的响应数据。

来自视图结果的响应代码来自视图结果的响应数据

上述脚本的摘要报告。

断言结果

JMeter中提供了各种报告。我们可以根据项目的需要使用它们。

使用JMeter进行API功能测试的更多相关文章

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

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

  2. API功能测试如何实施(转载自测试之道 微信公众号)

    什么是API 关于定义什么的,直接维基可得: API(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定.由于近 ...

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

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

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

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

  5. JMeter Webservice API测试计划

    Web Services Web服务被定义为旨在通过网络支持两台机器之间交互的软件系统.它被设计为具有以通常在Web服务描述语言(WSDL)中指定的机器可处理格式描述的接口. 通常,“HTTP”是最常 ...

  6. RESTful api 功能测试

    0 为什么要写测试代码 代码写好了,如果能点或者能看,开发人员一般会自己点点或看看,如果没有发现问题就提交测试:更进一步,代码写好后,运行测试代码,通过后提交测试.将流程抽象下: 功能1编码-> ...

  7. 【Jmeter】api性能测试总结

    1.前提概念 平时常用的性能测试:api性能测试+场景性能测试:今天就说一说api性能测试 2.如何进行性能测试? 需求:对某api进行性能测试,看看最大承受的并发数,分析下图表 分析: 错误思路:当 ...

  8. Jmeter 测试API接口 查看接口的幂等问题

    背景介绍: 比如一个注册接口,要求填入的手机号与DB中已有的不能重复, 如果手机号码重复,则此次注册失败,不会新增会员数据: 如果不重复,则注册成功(忽略其他因素). 但是用20个并发,同样的请求,请 ...

  9. Jmeter测试API接口,用Jmeter自动化之检查DB数据

    如上: 注册接口,会新增数据,要怎么自动化检查DB中生成的数据呢? 很简单,只需要以下几个配置元件 JSON截取器或者正则表达式截取器:目的在于取出返回消息体中的数据aa JDBC后置处理器:目的在于 ...

随机推荐

  1. Gym - 100513K :Treeland (按距离还原一棵树)

    题意:一个顶点数为N的生成树,对于每个点i,我们按照与i的距离给出顺序,即dis i 1<=dis i 2<=dis i 3<=...,现在让你输出N-1条边,即还原这棵树. 思路: ...

  2. Winform程序实现多显示屏、多屏幕显示的2种方法

    这篇文章主要介绍了Winform窗口实现多显示屏显示的2种方法,本文直接给出了实现代码,并对其中的一些重要参数做了解释,需要的朋友可以参考下. 一台主机连接了2台显示器(2个显卡),要求一个程序的两个 ...

  3. android开发之数据库存取图片

    Android数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制的形式存储(sqlite3支持BLOB数据类型).对于两种方法的使用,好像第二种方法不如第一种方法更受程序员欢 ...

  4. Vijos:P1098合唱队形

    描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…, ...

  5. 【转】Pro Android学习笔记(十三):用户界面和控制(1):UI开发

    目录(?)[-] UI开发 方式一通过XML文件 方式二通过代码 方式三XML代码 UI开发 先理清一些UI概念: view.widget.control:这三个名词其实没有什么区别,都是一个UI元素 ...

  6. art-template-loader:template

    ylbtech-art-template-loader: 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:ht ...

  7. Centos6.5_64位系统下安装Oracle 11g

    一.硬件要求 1.内存与Sweap:内存2G(以上),Sweap 2G(以上) 内存: 1-2G 2-16G 16G以上 Sweap: 1.5倍内存 1倍内存 16G 检查:# grep MemTot ...

  8. 初始String

    --------------siwuxie095                             使用频繁操作繁琐的数据有哪些?                 对于基本数据类型:int.ch ...

  9. vue的安装配置

    1.访问vue的官网: https://cn.vuejs.org/v2/guide/installation.html安装配置 2.安装淘宝镜像项目搭建 .安装node  到官网下载安装.  (中)h ...

  10. 1.QObject类

    简述 QObject类是所有Qt对象的基类. QObject是Qt对象模型的核心. 该模型的核心特征是称为信号和槽的对象通信机制. 您可以使用connect()将信号连接到槽,并用disconnect ...