Jmeter工具使用

embedded/2024/10/21 1:34:22/

一、安装部署

依赖:Java
windows安装
1.配置环境变量:新建JMETER_HOME系统环境变量,值设置为Jmeter的安装路径,
D:\Program Files (x86)\Jemter\apache-jmeter
2.运行Jemeter:安装路径下,双击bin目录下的jmeter.bat,打开界面

Linux安装
1.上传jmeter包到服务器上:apache-jmeter-5.3.tgz
2.解压到当前传的目录:jmeter
tar zxvf apache-jmeter-4.0.tgz jmeter
3.然后把解压的文件配置到对应的环境变量:
export JMETER_HOME=/root/jmeter
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
4.source /etc/profile 目的让配置文件生效
5.[root@yace01 ~]# jmeter -v
6.创建路径 /opt/wlei/jmeter/test/并执行监控
nohup sar -u 10 >>/opt/wlei/jmeter/test/cpu.log &
nohup iostat -x 10 -t>>/opt/wlei/jmeter/test/io.log &
nohup sar -n DEV 10  >>/opt/wlei/jmeter/test/net.log &
注意:yum install sysstat #安装sar命令

二、Jmeter脚本

使用Jmeter做http脚本,基本分为5个步骤
1、添加线程组
TestPlan右击-》添加Thread Group
2、添加http请求
Thread Group右击-》添加HTTP Request
3、在http请求中写入接口url、消息头和消息体、请求方式和参数
例如:PATH中填   ${__StringFromFile(E:\jmeter\rongqidel\data.txt,,,)}
4、添加断言及查看结果树
(1)响应断言:对Web请求的响应结果进行验证
           鼠标右击http请求->添加->断言->Response Assertion
           对接口返回信息可实现”包括、匹配、相同、或等方式校验
(2)Duration Assertion断言:对响应时间进行验证
           鼠标右击http请求->添加->断言-> Duration Assertion
           对响应时间进行ms级的验证
(3)Size Assertion断言:对响应报文包含字节数进行验证
           鼠标右击http请求->添加->断言-> Size Assertion
           是否包含正确数量的byte。可定义(=, !=, >, <, >=, <=)
(4)对断言结果进行验证可添加监控器
       鼠标右击http请求->添加->监控器->断言结果
View Results Tree查看结果树
Summary Report汇总报告
Aggregate Report聚合报告
5.修改jmx文件并执行压测
jmeter -n -t rongqi-del-100cc.jmx -l rongqi-del-100cc.jtl
导出jtl文件到windows机器可视化加载,得出tps和响应时延
6.查看结果树获取测试结果

三、多机连跑

使用jmeter-linux负载机,windows主控机的配置
1.肉鸡配置及启动
(1)bin/jmeter文件修改堆载信息
HEAP="-Xms10G -Xmx10G"
(2)bin/jmeter-server文件添加主机(去注释)
RMI_HOST_DEF=-Djava.rmi.server.hostname=肉鸡自己IP(主)
(3)bin/jmeter.properties文件修改
remote_hosts=10.19.232.17(主机),127.0.0.1
server.rmi.create=true 
server.rmi.ssl.disable=true
(4)启动负载机
cd /opt/apache-jmeter-3.1/bin/
./jmeter-server -Djava.rmi.server.hostname=192.168.6.6(负载机自己IP)

修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
2.主控机添加要使用的负载机
新增需要监控的IP和端口,IP就是负载机的IP,端口默认为1099
remote_hosts=localhost:1099,192.168.6.6:1099
server.rmi.ssl.disable=true
3.主机上启动负载机
Run-》Remote start
当负载机中出现finished,表明运行结束

4.默认情况下,负载机是只会将一些特定的数据反馈给控制机的,通常不会包含服务器的响应。
则需要修改以下配置(包括控制机和负载机)。
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data.on_error=true
#Remote batching support
mode=Standard

5.第三方文件(参数文件),需要人为的复制分发到负载机。脚本中的访问路径:
·如果控制机和负载机的操作系统类型一致,则建议使用绝对路径。
·如果控制机和负载机的操作系统类型不一致,则只能使用相对路径。
·在本地(控制机上),当前路径是脚本所在路径。
·在远程(负载机上),当前路径是Jmeter的bin目录所在路径。
联机负载时,要保证控制机和负载机的Jmeter的版本、JAVA环境的一致性。
联机负载时,脚本的运行环境是负载机的环境。

四、Jmeter脚本中的测试计划

 1、独立运行每个线程组:用于控制测试计划中的多个线程组的执行顺序。
                 未勾选:有多个线程组时,其随机启动执行;
            勾选:多个线程组时,等待前一个线程组执行完成后才开始下一个线程组 ;
       补充说明:线程组中的取样器的执行顺序:默认是从上到下执行。交替控制器、随机控制器、随机顺序控制器和循环控制器等可以改变取样器的执行顺序。
2、主线程结束后运行tearDown线程组:
  当线程组停止运行时仍继续运行tearDown线程组,该选项结合线程组(在取样器执行错误后要执行的动作)的执行配置使用。
3、函数测试模式:只有当你需要记录每个请求从服务器取得的数据到文件时才需要选择函数测试模式。选择这个选项很影响性能。在调试脚本的时候,可以开启,但是在压测数量时建议关闭。
4.添加目录或jar包到ClassPath:
  添加文件或jar包,此功能最常用于调用外部jar包。当脚本需要调用外部的java文件或jar包时,可以把jar包路径添加到这里,然后在beanshell中直接import进来,并调用jar包中的方法。

五、Jmeter中的线程组

same user on each interation就是选择每次运行是是否使用同一个cookie
【选中】是 用同一个 也就是每次循环都是同一个用户
【不选中】不需要 每次循环都用新的cookie 也就是每次循环都是新的用户

延迟创建线程直到需要

ramp up的值应该是启动全部线程所需的时间

六、Jmeter中计数器使用

Number format:格式
  (1、不填写时,会采用数字模式,如:001,设置为1
  (2、如果需要特定的格式,需要手动配置,如:想获取00001,就需要配置为:00000
与每用户独立的跟踪计数器:
  (1、默认不勾选,标识全局计数,表示每一个线程/循环每次获取不同的值。
  (2、如果勾选,表示每一个线程的相同循环时都是用的同一个值;
        <boolProp name="CounterConfig.per_user"></boolProp>
reset counter on each thread group iteration:
  只有在勾选每用户独立,才可以设置。
        如果勾选,则每次线程循环都会重置计数器的值,每次线程组迭代,都会重置计数器的值,当线程组是在一个循环控制器内时比较有用
        <boolProp name="CounterConfig.reset_on_tg_iteration"></boolProp>

在同一个线程组中调用多次或者循环调用该变量,该变量的值都是固定的,进入其他线程组后才增加的


http://www.ppmy.cn/embedded/50759.html

相关文章

Android 自定义View

我们所有的试图都是起源于自定义View&#xff0c;包括ViewGroup也是继承于它&#xff0c;可以说它是视图组件之父。 我们可以从它的大致流程来分为四个部分&#xff1a; 构造方法&#xff0c;onMeasure&#xff0c;onLayout&#xff0c;onDraw 构造方法&#xff1a; 它主要有…

Python学习笔记15:进阶篇(四)文件的读写。

文件操作 学习编程操作中&#xff0c;我觉得文件操作是必不可少的一部分。不管是读书的时候学习的c&#xff0c;c&#xff0c;工作的前学的java&#xff0c;现在学的Python&#xff0c;没学过的php和go&#xff0c;都有文件操作的模块以及库的支持&#xff0c;重要性毫无疑问。…

把Vue项目从Window系统迁移到Mac系统的方案

不能启动vue ui 直接运行&#xff0c;会报错如下&#xff1a; failed to load config from /Users/xiaochen/IdeaProjects/ChatViewer-frontend/vite.config.tserror when starting dev server: Error: You installed esbuild for another platform than the one youre curre…

【谷歌】实用的搜索技巧

1、使用正确的谷歌网址 我们知道https://www.google.com是谷歌的网址。但根据国家,用户可能会被重定向到 google.fr(法国)或google.co.in(印度)。 最主要的URL——google.com是为美国用户准备的(或是针对全世界所有用户的唯一URL))。当你在谷歌上搜索时,了解这一点是相…

计算机网络知识点汇总(三)

1.2 计算机网络体系结构与参考模型 1.2.1 计算机网络分层结构 计算机网络的各层及其协议的集合称为网络的体系结构(Architecture)。换言之&#xff0c;计算机网络的体系结构就是这个计算机网络及其所应完成的功能的精确定义。要强调的是&#xff0c;这些功能究竟是用何种硬件…

最新版Cisco Packet Tracer思科模拟器Windows版本64位下载

Cisco Packet Tracer是思科公司推出的一款网络仿真工具&#xff0c;主要用于网络教学、培训和实验。它提供了一个真实的网络环境模拟平台&#xff0c;让用户可以设计、构建和调试网络&#xff0c;以及进行实时互动&#xff0c;从而帮助用户理解和实践网络技术。 通过 Cisco Pa…

【教程】hexo 更换主题后,部署在 Github Page 无 CSS 样式

目录 前言环境hexo 更换主题解决部署到 Github Page 后无 CSS 样式的问题 前言 最近更换了 hexo 的主题后&#xff0c;重新部署到 Github Page 上发现不显示 CSS 样式&#xff0c;但在本地启动时又是正常的效果。此外&#xff0c;检查资源请求&#xff0c;发现多个 .css 文件请…

用python把docx批量转为pdf

为保证转换质量&#xff0c;本文的方法是通过脚本和com技术调用office自带的程序进行转换的&#xff0c;因此需要电脑已经装有office。如果希望不装office也能用&#xff0c;则需要研究OpenXML技术&#xff0c;后面实在闲的慌&#xff08;退休&#xff09;再搞。 安装所需库 …