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

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

相关推荐
测试小小怪下士1 天前
单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)
功能测试·单元测试·测试用例·集成测试·压力测试·模块测试·安全性测试
南东山人2 天前
使用pktgen进行高吞吐发包
linux·测试工具·udp·wireshark·压力测试
灭掉c与java2 天前
软件测试第二篇软件测试技术
压力测试
互联网杂货铺4 天前
外包干了两年,快要废了。。。
自动化测试·软件测试·python·功能测试·面试·职场和发展·压力测试
测试19987 天前
2024软件测试面试热点问题
自动化测试·软件测试·python·测试工具·面试·职场和发展·压力测试
钱钱钱端8 天前
【压力测试】如何确定系统最大并发用户数?
自动化测试·软件测试·python·职场和发展·压力测试·postman
测试19988 天前
外包干了2年,快要废了。。。
自动化测试·软件测试·python·面试·职场和发展·单元测试·压力测试
程序员小雷8 天前
软件测试基础:单元测试与集成测试
python·功能测试·selenium·测试工具·单元测试·集成测试·压力测试
杰仔正在努力9 天前
Jmeter5.X性能测试
jmeter·压力测试
&1=110 天前
Charles简单压力测试
压力测试·charles