使用Jmeter进行http接口性能测试

在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具。 

但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功能强大的JMeter自动化测试工具

Apache JMeter - Apache JMeter™

Apache JMeterApache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

下面就以上图的Restful类型的接口为例简单介绍使用Jmeter进行接口测试的方法。

获取某个具体网关设备的基本信息。

请求

方法:GET

URI/api/gateway/<gateway_id>

参数:

HTTP请求(http request)的头部(header)添加UseridToken字段作为用户验证字段

参数名

必需

类型

说明

gateway_id

true

int

网关ID,置于URL内

响应

返回值:JSON格式的网关信息

参数:

参数名

类型

说明

id

int

网关id

name

string

网关的名称

mac

string

网关的mac地址

fw_ver

string

网关的固件版本号

sub_dev

unsigned int

子设备数

did

string

网关的did

pscode

string

网关pscode

 

1.启动jmeter:在bin下以管理员身份运行jmeter.bat,启动jmeter

2. 创建测试计划:

默认启动jmeter时会加载一个测试技术模板,保存测试计划:修改名称为Apitest,点击保存,选择保存路径,后面的步骤,每次添加或修改了了一些选项,软件并不会自动保存到jmx文件中,所以进行测试后,如果需要保存本次测试选项,要手动到“文件”菜单中保存一下。

3. 添加线程组

右键左边树中的测试计划“Apitest”节点, ”→”Threads线程组

添加成功后,“Apitest”节点下多了线程组” 节点,当然这个线程组的名称是可以自己设定的。

4. 添加http默认请求:(用来配置公共参数,不是http请求)

右键线程组,选择添加”→ “配置元件”→“HTTP请求默认值,点击“HTTP请求默认值

添加成功后,线程组节点下多了“HTTP请求默认值节点

这里可以设置主机地址等一下公共参数,比如我们的例子中请求路径前面都是主机地址+index.php,就可以统一在"http请求默认值"里设置

填写默认请求名、服务器、默认请求路径,保存测试计划。

5.添加http请求信息头

这一项并不是必须的,只不过我们的例子中使用了Userid和Token放在HTTP请求头中用作用户验证

右键“Apitest”,选择“添加”→ “配置元件”→“HTTP信息头管理器”

6. 添加http请求

右键“Apitest”,选择添加”→ “Sampler”→“HTTP请求

添加成功后,出现新的节点“HTTP请求”,就可以填写具体的请求参数了。

填写完成,保存测试计划

7. 添加监听器

右键线程组,选择添加”→监听器”→XXXXXXXXX

可以添加的监听器有很多种,可以添加多个监听器,这里我们添加几个常用的“图形结果”、“察看结果树”、“聚合报告”

添加成功后,线程组下增加了几个节点

8. 试运行

点击执行

可以查看各个“监听器”的结果

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

9. 修改线程组的线程数等参数,用于压力测试

点击左侧树形导航中的“线程组”

样本数目:总共发送到服务器的请求数.
最新样本:代表时间的数字,是服务器响应最后一个请求的时间.
吞吐量:服务器每分钟处理的请求数.
平均值:总运行时间除以发送到服务器的请求数.
中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值.
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布.

Note:如果要进行新的测试,为了清除上次运行的结果,请点击上方的扫把。

OK了,可以再添加一些请求线程组,调整线程数和并发时间来进行压力性能测试。

2023最新Jmeter接口测试从入门到精通(全套项目实战教程)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/140846.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java】集合(二)Set

1.Set接口基本介绍 无序:存取顺序不一致不重复:可以去除重复无索引:没有带索引的方法&#xff0c;所以不能使用普通for循环遍历&#xff0c;也不能通过索引来获取元素 2.Set集合的实现类 HashSet:无序、不重复、无索引LinkedHashSet: 有序、不重复、无索引TreeSet: 可排序、不…

二维码智慧门牌管理系统升级解决方案:数据可视化助力运营精准决策

文章目录 前言一、升级版二维码智慧门牌管理系统的特点二、数据可视化助力运营精准决策 前言 随着科技的不断进步&#xff0c;传统的门牌管理系统已经无法满足现代社会的需求。为了提高管理效率&#xff0c;减少人力成本&#xff0c;我们引入了升级版的二维码智慧门牌管理系统…

同城服务如何引流和推广 同城小程序制作

客观原因线下实体店经营变得很艰难&#xff0c;而抖音推出的同城号功能&#xff0c;为许多商家带来了新的生机。抖音同城号的操作很简单&#xff0c;只需在短视频发布时打开同城号&#xff0c;短视频将被投入到同城流量池中&#xff0c;可以让位置附近的用户看到&#xff0c;线…

AttributeError: module ‘matplotlib‘ has no attribute ‘get_data_path‘

【报错】使用 AutoDL 下 Notebook 调用 matplotlib 时遇到 AttributeError: module matplotlib has no attribute get_data_path 报错&#xff1a; --------------------------------------------------------------------------- AttributeError …

C语言ZZULIOJ1148:组合三位数之一

题目描述 把1、2、3、4、5、6、7、8、9组合成3个3位数&#xff0c;要求每个数字仅使用一次&#xff0c;使每个3位数均为完全平方数。按从小到大的顺序输出这三个三位数。 输入:无 输出:按从小到大的顺序输出这三个三位数&#xff0c;由空格隔开。输出占一行。 提示 若一个数能表…

No192.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

2017年计网408

第33题 假设 OSI 参考模型的应用层欲发送 400B 的数据 (无拆分), 除物理层和应用层之外, 其他各层在封装 PDU 时均引入 20 B 的额外开销, 则应用层数据传输效率约为( )A. 80%B. 83%C. 87%D. 91% 本题考察有关数据包逐层封装的相关概念。我们来一起分析一下。 这是要求大家必须…

Egg.js 中 Service 的使用

Service 服务 Service是用来编写和数据库直接交互的业务逻辑代码。Service就是在复杂业务场景下用于做业务逻辑封装的一个抽象层。 简单来说&#xff0c;就是把业务逻辑代码进一步细化和分类&#xff0c;所以和数据库交互的代码都放到Service中。这样作有三个明显的好处。 保…

【leetcode】8.字符串转换整数

题目 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。 函数 myAtoi(string s) 的算法如下&#xff1a; 读入字符串并丢弃无用的前导空格 检查下一个字符&#xff08;假设还未…

同城小程序怎么运作 本地化生活小程序开发

同城小程序可以采取公域加私域的运营方式&#xff0c;进行运作。 在社交媒体平台上分享有趣的本地生活内容、社区动态&#xff0c;可以通过举办本地活动、合作推广等方式进行线下宣传&#xff0c;可以通过抖音本地化生活服务进行线下门店推广。 本地化生活小程序开发需要结合自…

基于RK3568新零售智能售货柜解决方案

I 方案简介 新零售智能售货柜解决方案&#xff1a; 无人零售除了无人货架外&#xff0c;自动售货机仍是亮点。但仍有很多人认为自动售货机已经过时&#xff0c;不会成为新零售领域的新星。 随着手机支付、人脸支付不断普及&#xff0c;智能售卖不断的推陈出新&#xff0c;无人…

Netty入门指南之Reactor模型

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Netty应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言单线程…

基因检测技术的发展与创新:安全文件数据传输的重要作用

基因是生命的密码&#xff0c;它决定了我们的身体特征、健康状况、疾病风险等。随着基因检测技术的高速发展&#xff0c;我们可以通过对基因进行测序、分析和解读&#xff0c;更深入地认识自己&#xff0c;预防和治疗各种遗传性疾病&#xff0c;甚至实现个性化医疗和精准健康管…

IDEA 2022创建Spring Boot项目

首先点击New Project 接下来&#xff1a; (1). 我们点击Spring Initializr来创建。 (2). 填写项目名称 (3). 选择路径 (4). 选择JDK------这里笔者选用jdk17。 (5). java选择对应版本即可。 (6). 其余选项如无特殊需求保持默认即可。 然后点击Next。 稍等一会&#xff0c…

堆排序(大根堆、小根堆)

参考视频&#xff1a; 1、数据结构&#xff0c;小根堆的调整&#xff01;必须熟练掌握&#xff01; 2、数据结构建堆筛选输出最小值 | 计算机软件考研期末知识点2

能够定时发送朋友圈的软件

此款软件提供便捷的网页端登录方式&#xff0c;让您轻松管理多个账号&#xff0c;实现多账号聚合管理&#xff0c;只需一个界面即可解决所有问题。 朋友圈内容编辑功能强大&#xff0c;让您在输入框内输入文本内容&#xff0c;点击表情图标选择表情&#xff0c;还能通过“”图标…

9.25 广读论文 思想汇总

数据集MIMIC-VI Learning Patient Static Information from Time-series EHR and an Approach for Safeguarding Privacy and Fairness The dataset analyzed in this study can be found in https://physionet.org/content/mimiciv/2.2/ and https://eicu-crd.mit.edu/about/…

python 使用pygame制作的打飞机小游戏

python基础使用pygame模块实现打飞机小游戏&#xff0c;有最高分记录&#xff0c;每次游戏的分数都会和最高分进行比较然后记录下来。 基础代码实现&#xff1a; class Bullet:def __init__(self):# 初始化成员变量&#xff0c;x&#xff0c;y&#xff0c;imageself.x 0self…

4.5 构建onnx结构模型-Reshape

前言 构建onnx方式通常有两种&#xff1a; 1、通过代码转换成onnx结构&#xff0c;比如pytorch —> onnx 2、通过onnx 自定义结点&#xff0c;图&#xff0c;生成onnx结构 本文主要是简单学习和使用两种不同onnx结构&#xff0c; 下面以pow 结点进行分析 方式 方法一&am…

【AI 编程助手】DevChat 指南:精准控制、简单扩展、多模型选择,助力开发者高效开发

文章目录 一、前言二、认识了解 DevChat2.1 什么是 DevChat2.2 DevChat 优势以及特点2.2.1 精准控制提示上下文2.1.2 简单的扩展机制2.1.3 多种大模型任选 三、构建安装 DevChat3.1 注册 DevChat3.2 DevChat 插件安装指南3.2.1 在 Windows 上安装git&#xff08;如已安装&#…