压测工具Jmeter使用-1

2024-06-20 23:28
文章标签 工具 使用 jmeter 压测

本文主要是介绍压测工具Jmeter使用-1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、安装部署

依赖: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>

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

这篇关于压测工具Jmeter使用-1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

SpringCloud中的@FeignClient注解使用详解

《SpringCloud中的@FeignClient注解使用详解》在SpringCloud中使用Feign进行服务间的调用时,通常会使用@FeignClient注解来标记Feign客户端接口,这篇文章... 在Spring Cloud中使用Feign进行服务间的调用时,通常会使用@FeignClient注解

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

SpringBoot使用ffmpeg实现视频压缩

《SpringBoot使用ffmpeg实现视频压缩》FFmpeg是一个开源的跨平台多媒体处理工具集,用于录制,转换,编辑和流式传输音频和视频,本文将使用ffmpeg实现视频压缩功能,有需要的可以参考... 目录核心功能1.格式转换2.编解码3.音视频处理4.流媒体支持5.滤镜(Filter)安装配置linu

Redis中的Lettuce使用详解

《Redis中的Lettuce使用详解》Lettuce是一个高级的、线程安全的Redis客户端,用于与Redis数据库交互,Lettuce是一个功能强大、使用方便的Redis客户端,适用于各种规模的J... 目录简介特点连接池连接池特点连接池管理连接池优势连接池配置参数监控常用监控工具通过JMX监控通过Pr

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事