百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

使用JMeter进行压力测试

zhezhongyun 2025-03-10 22:32 61 浏览

最近做一项目,项目后期要做压力测试,对这一块学习并进行整理。

一、准备环境

1.java 安装环境:

2.JMeter安装环境:

Apache JMeter 5.0

3Tomcat安装环境:

apache-tomcat-8.0.44

二、配置:

1.启动 JMeter:


2.选中Test Plan, 点击 Edit 或右击, 选中Threads(users), 选 Thread Group,创建一个线程组,模拟多用户登录,一个线程一个用户

2.填写线程组信息:

“Thread Group”中参数设置:

1)Number of Threads(users):指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统。

2)Ramp-Up Period (in seconds): 虚拟用户增长时长。

3)Loop Count:设置一个虚拟用户做多少次测试。默认为1,如果选中“Forever(永远)”,则意味着测试运行不停止,除非强制退出。

4)Delay Thread creation until needed:直到需要时延迟线程的创建。

5)Scheduler:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)

持续时间(秒):测试持续时间,会覆盖结束时间

启动延迟(秒):测试延迟启动时间,会覆盖启动时间

3.添加被测页面,右击“Thread Group” > “add” > “Sampler” > “HTTP Request”。

设置如下相关信息:

Http Request 主要参数详解:

1).Web Server

Protocol[http]:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP

Server Name orIP :HTTP请求发送的目标服务器名称或IP

Port Number:目标服务器的端口号,默认值为80

2).Http Request

Method:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

Path:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分)

Content encoding :编码方式,默认为ISO-8859-1编码,这里配置为utf-8

3).Parameters

在请求中发送的URL参数,用户可以将URL中所有参数设置在本表中,表中每行为一个参数(对应URL中的 name=value),注意参数传入中文时需要勾选“编码

4.添加View Results Tree, 右击”Thread Group“->"Add"->"Listener"->"View Results Tree"

因为运行Http请求,修改响应数据格式为“HTML Source Formatted”,

此时,可保存配置的脚本,如果点击运行, 绿色小三角,可在Sampler result窗口看到结果。

5 添加用户自定义参数, 右击”Thread Group“->"Add"->"config Element"->"User Defind Variables"

添加自定义参数

并在Http里调用

添加断言,右击”HTTP Request“->"Add"->"Assertions"->"Response Assertion"

校验文本,把${userId}添加到参数中

添加断言结果, 右击”HTTP Request“->"Add"->"Listener"->"Assertion Results"

再运行一次就可以看到断言结果成功或失败了。在Assertions窗口:

添加聚合报告,用以存放性能测试报告, 右击”Thread Group“->"Add"->"Listener"->"Aggregate Report"

聚合报告参数详解:

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

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

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

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

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

6)Min:最小响应时间

7)Max:最大响应时间

8)Error%:错误率——错误请求数/请求总数

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

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

这样,按网上教程完成了一个完整Http接口的JMeter性能测试脚本编写。

在执行性能测试时,修改”Thread Group“,配置本次性能测试相关参数:线程数,循环次数,持续时间等, 待性能测试执行完成后,打开聚合报告可以看到结果。

————————————————

版权声明:本文为CSDN博主「freellf」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:
https://blog.csdn.net/freellf/article/details/85240800

相关推荐

Python入门学习记录之一:变量_python怎么用变量

写这个,主要是对自己学习python知识的一个总结,也是加深自己的印象。变量(英文:variable),也叫标识符。在python中,变量的命名规则有以下三点:>变量名只能包含字母、数字和下划线...

python变量命名规则——来自小白的总结

python是一个动态编译类编程语言,所以程序在运行前不需要如C语言的先行编译动作,因此也只有在程序运行过程中才能发现程序的问题。基于此,python的变量就有一定的命名规范。python作为当前热门...

Python入门学习教程:第 2 章 变量与数据类型

2.1什么是变量?在编程中,变量就像一个存放数据的容器,它可以存储各种信息,并且这些信息可以被读取和修改。想象一下,变量就如同我们生活中的盒子,你可以把东西放进去,也可以随时拿出来看看,甚至可以换成...

绘制学术论文中的“三线表”具体指导

在科研过程中,大家用到最多的可能就是“三线表”。“三线表”,一般主要由三条横线构成,当然在变量名栏里也可以拆分单元格,出现更多的线。更重要的是,“三线表”也是一种数据记录规范,以“三线表”形式记录的数...

Python基础语法知识--变量和数据类型

学习Python中的变量和数据类型至关重要,因为它们构成了Python编程的基石。以下是帮助您了解Python中的变量和数据类型的分步指南:1.变量:变量在Python中用于存储数据值。它们充...

一文搞懂 Python 中的所有标点符号

反引号`无任何作用。传说Python3中它被移除是因为和单引号字符'太相似。波浪号~(按位取反符号)~被称为取反或补码运算符。它放在我们想要取反的对象前面。如果放在一个整数n...

Python变量类型和运算符_python中变量的含义

别再被小名词坑哭了:Python新手常犯的那些隐蔽错误,我用同事的真实bug拆给你看我记得有一次和同事张姐一起追查一个看似随机崩溃的脚本,最后发现罪魁祸首竟然是她把变量命名成了list。说实话...

从零开始:深入剖析 Spring Boot3 中配置文件的加载顺序

在当今的互联网软件开发领域,SpringBoot无疑是最为热门和广泛应用的框架之一。它以其强大的功能、便捷的开发体验,极大地提升了开发效率,成为众多开发者构建Web应用程序的首选。而在Spr...

Python中下划线 ‘_’ 的用法,你知道几种

Python中下划线()是一个有特殊含义和用途的符号,它可以用来表示以下几种情况:1在解释器中,下划线(_)表示上一个表达式的值,可以用来进行快速计算或测试。例如:>>>2+...

解锁Shell编程:变量_shell $变量

引言:开启Shell编程大门Shell作为用户与Linux内核之间的桥梁,为我们提供了强大的命令行交互方式。它不仅能执行简单的文件操作、进程管理,还能通过编写脚本实现复杂的自动化任务。无论是...

一文学会Python的变量命名规则!_python的变量命名有哪些要求

目录1.变量的命名原则3.内置函数尽量不要做变量4.删除变量和垃圾回收机制5.结语1.变量的命名原则①由英文字母、_(下划线)、或中文开头②变量名称只能由英文字母、数字、下画线或中文字所组成。③英文字...

更可靠的Rust-语法篇-区分语句/表达式,略览if/loop/while/for

src/main.rs://函数定义fnadd(a:i32,b:i32)->i32{a+b//末尾表达式}fnmain(){leta:i3...

C++第五课:变量的命名规则_c++中变量的命名规则

变量的命名不是想怎么起就怎么起的,而是有一套固定的规则的。具体规则:1.名字要合法:变量名必须是由字母、数字或下划线组成。例如:a,a1,a_1。2.开头不能是数字。例如:可以a1,但不能起1a。3....

Rust编程-核心篇-不安全编程_rust安全性

Unsafe的必要性Rust的所有权系统和类型系统为我们提供了强大的安全保障,但在某些情况下,我们需要突破这些限制来:与C代码交互实现底层系统编程优化性能关键代码实现某些编译器无法验证的安全操作Rus...

探秘 Python 内存管理:背后的神奇机制

在编程的世界里,内存管理就如同幕后的精密操控者,确保程序的高效运行。Python作为一种广泛使用的编程语言,其内存管理机制既巧妙又复杂,为开发者们提供了便利的同时,也展现了强大的底层控制能力。一、P...