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.hqwc.cn/news/601291.html

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

相关文章

Linux设备树解析:桥接硬件与操作系统的关键架构

在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,“设备树”(Device Tree)是一个不可或缺的部分&…

Java常用API_System——常用方法及代码演示

1.System.exit(int status) 方法的形参int status为状态码,如果是0,说明虚拟机正常停止,如果非0,说明虚拟机非正常停止。需要将程序结束时可以调用这个方法 代码演示: public class Test {public static void main(S…

Windows远程执行

Windows远程执行 前言 1、在办公环境中,利用系统本身的远程服务进行远程代码执行甚至内网穿透横向移动的安全事件是非常可怕的,因此系统本身的一些远程服务在没有必要的情况下建议关闭,防止意外发生; 2、作为安全人员&#xff0…

2024中国(北京)安全生产应急救援与防护用品展览会

2024中国(北京)安全生产应急救援与防护用品展览会 作为安全生产与防护用品领域的行业盛会,2024北京安全生产与防护用品展览会将于2024年6月26日至28日在北京.首钢国际会展中心隆重举行。展会紧跟安全生产与防护用品行业发展,充分调…

基于知识图谱的推理:智能决策与自动发现

基于知识图谱的推理:智能决策与自动发现 一、引言 在今天这个数据驱动的时代,我们经常会听到人们提及“知识图谱”这个词。知识图谱,作为一种结构化知识的表达方式,已经成为智能系统不可或缺的一部分,它通过连接大量的…

SpringMVC--概述 / 入门

目录 1. SpringMVC简介 2. 配置&入门 2.1. 开发环境 2.2. 创建maven工程 2.3. 手动创建 web.xml 2.4. 配置web.xml 2.4.1. 默认配置方式 2.4.2. 扩展配置方式 2.5. 创建请求控制器 2.6. 创建springMVC的配置文件 2.7. 测试 HelloWorld 2.7.1. 实现对首页的访问…

基于 VUE+SSM 数据结构学习网站论文 (内附设计LW + PPT+ 源码下载)

摘 要: 随着计算机信息化时代的来临,教育的信息化发展也日新月异。特别是高等院校对于教育信息化的重视程度越来越高,教育信息化必须要投入大量的时间精力去开发一套管理系统,本文论述了信息化的管理手段在日常教学、考试过程中…

谷歌浏览器用不了怎么办?

打开谷歌浏览器点击右上角的三个点 , 点击设置 在搜索引擎里面把这个改成百度 然后越狱登录你的谷歌账号就可以用了 我个人用的越狱软件是r2rayn , 浏览器上面可以搜索的 默认浏览器那里可以设置成谷歌

【刷题训练】LeetCode387.字符串中的第一个唯一字符

文章目录 题目要求解题思路代码实现 题目要求 示例 1: 输入: s “leetcode” 输出: 0 示例 2: 输入: s “loveleetcode” 输出: 2 示例 3: 输入: s “aabb” 输出: -1 解题思路 1.遍历一便字符串,并将每一个字符-‘a’得到的就是0~25的数值&…

DFS:记忆化搜索

​​​​​​​ 一、记忆化搜索vs动态规划 . - 力扣(LeetCode) class Solution { public://记忆化搜索//1、设置一个备忘录,要确保备忘录初始化的结果不能跟我们实际计算的结果相同//2、添加备忘录,计算的时候,如果备…

数据结构算法题 2(力扣)——链表

1. 分割链表(OJ链接) 题目描述:给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。 本题做法是:遍历链表将链表分为两部分&#xf…

文旅元宇宙|“元宇宙+”全面赋能智慧文旅场景建设

元宇宙作为下一代互联网入口,正在潜移默化的改变着人生的生活方式,不断催生新业态,带给人们前所未有的体验。元宇宙概念的崛起,正以其独特的魅力,引领着一场全新的智慧文旅革命。元宇宙,这个融合了虚拟现实…