JMeter 使用

初衷

网上有很多JMeter的教程都很优秀,但是我想按照我对JMeter的理解出一篇教程,以便于我以后作为开发人员可以自己对自己写的代码进行性能测试。

1、首先JMeter它的主要作用是性能测试

(1)负载测试:同时发生的用户操作和会话管理

(2)压力测试:旨在找出系统的极限和恢复能力

(3)并发测试:系统在正常至最高预期负载下的表现

还有其他但是我用不到就不做讲解了

2、对于接口并发的疑问

我在使用JMeter进行并发测试的时候遇到了不同样式的测试方法,我列举一下方式:

(1)使用线程组

(2)使用定时器

(3)使用控制器

等等,但是真正的并发是不存在的(完美的并发在实际测试中表现不出来),我在刚开始的并发测试中使用的是线程组,后来才了解到更真实的并发可以使用同步定时器来操作。

一、软件介绍

Apache JMeter™应用程序是开源软件,一个 100% 纯 Java 应用程序,旨在加载测试功能行为和测量性能 。它最初是为测试 Web 应用程序而设计的,但后来扩展到其他测试功能。

二、软件下载安装

下载地址:Apache JMeter - Apache JMeter™

https://jmeter.apache.org/

 三、打开软件

1、解压文件打开bin目录

2、打开 jmeter.bat文件

3、切换语言

永久性切换语言需要打开bin目录中的 jmeter.properties 文件加上

language=zh_CN

四、解决软件界面错乱问题

在JMeter中找到bin目录,在bin中创建 setenv.txt文件里面写入以下代码

set JVM_ARGS=-Dsun.java2d.d3d=false

保存,修改setenv.txt 文件名为setenv.bat,即可解决使用时 JMeter 软件因为分辨路问题造成的界面错乱问题

五、开始性能测试

一、模拟测试接口的并发数(线程组)

(1)新建一个线程组

1、线程数指的是要模拟的多少用户请求 比如你要模拟 200个人请求一个登录接口就设置为200

2、Ramp-Up时间(秒)的意思是 在多少秒之内执行完毕 上面设置的线程 比如:登录接口的线程你设置为200,Ramp-Up时间(秒) 设置为 1秒,那么登录接口就会在1秒之内执行完 200个线程

3、循环次数指的是以上设置循环请求几次

(2)添加请求

1、添加你要请求的API接口按照以上格式编写,你的API 路径地址要卸载路径的输入框中

(3)添加请求头

1、注意:测试的接口如果是类似于登录接口的,请求头中不包含数据,如果是其他需要登录完毕之后才能请求的接口需要再请求头中加上cookie、token等请求头数据

(4)添加结果树

1、添加结果树的目的是为了观察一会儿进行模拟请求时接口返回的结果

(5)接口并发测试

可以看到以上请求成功了

(6)添加聚合汇报

聚合汇报的作用主要是显示:性能指标概览性能瓶颈及问题诊断

我们设置为200并发来测试一下这个接口

200并发下的接口相应情况如下:

(7)使用响应断言器

响应断言里面的设置很多,大家可以根据实际的需求去进行网上搜索这里只做简单的使用

我设置返回的文本里面如果包含320则表示请求通过

我们改成200再试下

他就成功了

但是响应的文本中没有320这个值 只有200所有请求失败了

二、模拟测试接口的并发数(同步定时器)

(1)新建一个线程组

(2)添加请求

上面有操作步骤

(3)添加同步定时器

1、此处做出解释模拟用户组的数量指的是5个用户为一组,例如你的线程组设为了10,然后这里设置了5,那么一会儿请求的时候就是两组并发,每组并发为5

(4)添加结果树

上面有操作步骤

(5)添加聚合汇报

上面有操作步骤

(6)添加表格查看器

(7)接口并发测试

我将线程组和同步定时器都设置为100试下

这个是结果:

对比一下:线程组+同步定时器 VS 线程组

1、线程组+同步定时器

2、线程组

PS:个人感觉差不太多

三、后期更新更多关于JMeter内容

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring 之 IoC概述

目录 1. IoC概述 1.1 控制反转 1.2 依赖注入 2. IoC容器在Spring中的实现 2.1 BeanFactory 2.2 ApplicationContext 2.2.1 ApplicationContext的主要实现类 1. IoC概述 全称:Inversion of Control,译为 “控制反转” Spring通过IoC容器来管理所有…

英译汉早操练(六)

英译汉早操练(五)-CSDN博客文章浏览阅读233次,点赞2次,收藏5次。it serves as a notable example of a pattern that Andrea Gabor charts in “After the Education Wars.”https://blog.csdn.net/weixin_41953346/article/detai…

数组与链表:JavaScript中的数据结构选择

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

每日一题:有效的数独

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注…

git submodule---同步最新的内容

0 Preface/Foreword 1 同步最新submodule内容到repo中 项目的repo包含了一个子模块,在开发过程中,经常需要同步子模块最新的commit到repo中。该如何操作呢? 本地在克隆时候,已经同步把子模块中的内容克隆下来了,但是…

Python爬取淘宝商品评价信息API接口测试实例

item_review-获得淘宝商品评论 公共参数 请求地址: taobao/item_review 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,it…

4.5日学习打卡----学习Apache HttpClient 5

4.5日学习打卡 目录: 4.5日学习打卡Apache Commons HttpClient简介 Apache HttpClient 5简介依赖HttpClient 5 GET 请求HttpClient 5 Fluent GETHttpClient5 GET 请求参数HttpClient 5 POST 请求HttpClient 5 Fluent POSTHttpClient5 POST JSON 参数HttpClient 5 设…

Java中利用BitMap位图实现海量级数据去重

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 前言 什么是BitMap?有什么用? 基本概念 位图的优势 …

加快构建数字影像优势 成都文创产业园区持续发力

在数字化时代的浪潮下,成都文创产业园区以其前瞻性的视野和战略布局,正加快构建数字影像优势,成都文创产业园区持续发力,为城市的文化创意产业发展注入新动力。国际数字影像产业园作为其中的佼佼者,以其三大生态服务体…

GitHub 仓库 (repository) Watch - Star - Fork - Follow

GitHub 仓库 [repository] Watch - Star - Fork - Follow References 眼睛图标旁边写着 Watch 字样。点击这个按钮就可以 Watch 该仓库,今后该仓库的更新信息会显示在用户的公开活动中。Star 旁边的数字表示给这个仓库添加 Star 的人数。这个数越高,代表…

小白学Java成长日记特别篇

晚上好,各位小伙伴。今天给大家带来的是Java的输出补充篇,前两篇说了输出和输入的大概,但我没有详细讲它俩,因此这篇文章来详细的聊一聊它俩。那么废话不多说,我们赶紧进入正题。 首先讲一讲这个Java的输出吧。 输出格…

SpringBoot集成Skywalking日志收集

在实际项目中,为了方便线上排查问题,尤其是微服务之间调用链路比较复杂的系统中,通过可视化日志的手段仍然是最直接也很方便的排查定位问题的手段,比如大家熟悉的ELK就是一种比较成熟的可视化日志展现方式,在skywalkin…

书生·浦语大模型第二期实战营第二课笔记和基础作业

来源: 作业要求:Homework - Demo 文档教程:轻松玩转书生浦语大模型趣味 Demo B站教程:轻松玩转书生浦语大模型趣味 Demo 1. 笔记 2.基础作业 2.1 作业要求 2.2 算力平台 2.3 新建demo目录,以及新建目录下的文件,下载模型参数 2.4 Intern…

谷歌seo自然搜索排名怎么提升快?

要想在谷歌上排名快速上升,关键在于运用GPC爬虫池跟高低搭配的外链组合 首先你要做的,就是让谷歌的蜘蛛频繁来你的网站,网站需要被谷歌蜘蛛频繁抓取和索引,那这时候GPC爬虫池就能派上用场了,GPC爬虫池能够帮你大幅度提…

LangChain - Chain

文章目录 1、概览为什么我们需要链? 2、快速入门 (Get started) - Using LLMChain多个变量 使用字典输入在 LLMChain 中使用聊天模型: 3、异步 API4、不同的调用方法__call__调用仅返回输出键值 return_only_outputs只有一个输出键 run只有一个输入键 5、自定义cha…

蓝桥杯嵌入式(G431)备赛笔记——UART

printf的重定向 为了方便使用,通过keil中的Help功能的帮助,做一个printf的重定向 搜索fputc,复制这段 将复制的那段放入工程中,并添加串口发送的函数 关键代码 u8 rx_buff[30]; // 定义一个长度为30的接收缓冲区数组rx_buff u8…

“数字大冒险:探索二分查找的神奇之旅“

前言 作者:小蜗牛向前冲 专栏:小蜗牛算法之路 专栏介绍:"蜗牛之道,攀登大厂高峰,让我们携手学习算法。在这个专栏中,将涵盖动态规划、贪心算法、回溯等高阶技巧,不定期为你奉上基础数据结构…

算法:多重背包问题dp

文章目录 一、多重背包问题特点1.1、多重背包问题的特征1.2、解决多重背包问题的基本方法典型例题:AcWing——多重背包问题I 1.3、二进制优化1.3.1、二进制优化的思想1.3.2、多重背包问题的二进制优化 一、多重背包问题特点 多重背包问题是背包问题的又一变种&…

如何在Flutter应用中配置ipa Guard进行混淆

在移动应用开发中,保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具,帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆,并提供了相关的操作步骤和注意事项。 📝 摘要 本…

彩虹聚合DNS管理系统源码

聚合DNS管理系统可以实现在一个网站内管理多个平台的域名解析,目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、CloudFlare。本系统支持多用户,每个用户可分配不同的域名解析权限;支持API接口,支持获取域名…