压测工具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

相关文章

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

flask库中sessions.py的使用小结

《flask库中sessions.py的使用小结》在Flask中Session是一种用于在不同请求之间存储用户数据的机制,Session默认是基于客户端Cookie的,但数据会经过加密签名,防止篡改,... 目录1. Flask Session 的基本使用(1) 启用 Session(2) 存储和读取 Se