Windows、Linux单机|分布式性能测试执行

脚本调试通过之后,接下来就是正式执行过程。通常会选择window环境或者linux环境执行,两者各有优缺点:

  1. Windows环境操作界面化,直观,易上手,但Windows操作系统中软件占用机器资源较多,导致资源使用率不高。一般可用于接口的并发逻辑验证或者应对一些相关检查,特别是不需要进行过大的负载

  2. Linux环境操作使用命令,结果查看不太方便,但资源利用率相对较高。一般使用在正式性能测试项目中,可支持较高并发。

读者可以根据项目具体情况选择执行环境

1 Windows环境单机执行

Windows环境下执行相对简单。4.2步骤完成之后,可以直接在Jmeter的GUI上进行操作和修改参数。下面简单说明一下几个主要过程

1.1启动Jmeter并添加组件

脚本编写调试好之后,拷贝相关的依赖到jmeter,然后启动。

在这里插入图片描述
添加线程组、Sampler中的Java请求、后置处理器中的聚合报告等组件。其他如察看结果树、定时器等可根据需要自行添加修改线程组名称,建议和压测接口对应,见名知意,保存

在这里插入图片描述
在这里插入图片描述
1.2生成脚本并设置参数

设置参数线程数、Ramp-Up Period、循环次数等必要参数信息

  1. 线程数:即用户数,多少个线程就是多少个用户

  2. Ramp-Up Period:线程启动准备期,即所有线程全部启动的时间

  3. 循环次数:勾选“永远”,则一直执行,直到崩溃或手动停止。

例如:设置100个线程,1S内全部启动所有线程,循环次数为100

设置好参数之后,保存脚本

在这里插入图片描述

1.3资源监控器

打开Windows资源监控器。执行时,可实时关注资源消耗情况,如:CPU使用率、内存

在这里插入图片描述
1.4观测服务器日志和监控

打开应用服务器,实时观察请求日志和资源监控

在这里插入图片描述
在这里插入图片描述
1.5测试场景执行

准备工作就绪后,就可以按照测试方案中设计的测试用例来执行。

执行前可打开Jmeter页面的日志,方便观察

在这里插入图片描述
开始执行

在这里插入图片描述
1.6测试结果收集

执行完成后,收集执行结果和监控结果

在这里插入图片描述
开始执行新的场景之前,先清除上次的结果数据,避免混乱

在这里插入图片描述

2 Linux环境单机执行

2.1安装JDK

得到Linux机器后,首先要安装JDK,这是Jmeter能够正常运行的前提

(1) 上传并解压jdk压缩包jdk-8u092-linux-x64.tar.gz,建议把软件都安装到/usr/local/下,如/usr/local/jdk1.8.0_92

(2) 用vim编辑器打开/etc/profile文件,在文件尾部加入环境变量的定义

在这里插入图片描述
(3) 输入命令使配置立即生效:source /ext/profile

(4) 查看java版本,有下图所示即表示安装成功

在这里插入图片描述
注:如果使用的是已经配置好的Linux机器,通过java -version确认JDK安装成功即可

2.2在Windows下生成并保存脚本

在Windows下生成脚本,并且调试通过,保存脚本至Jmeter工具相关目录下,可自行定义:建议放在bin目录下

在这里插入图片描述
2.3上传Jmeter至Linux压测机

把Jmeter工具和脚本一起压缩,然后上传压缩包(rz命令,或FileZilla等工具)至压测Linux机器,并解压(unzip)

在这里插入图片描述

在这里插入图片描述

2.4使用命令行启动执行

在Linux环境下,则需要利用jmeter.sh的shell脚本,使用命令行来执行

*前端执行命令:sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl

意思是命令启动后,不能关闭和退出当前执行页面及操作,否则执行自动退出

在这里插入图片描述
后端执行命令:nohup sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl &

意思是命令启动后,命令会一直在执行。中止执行需要kill当前命令的进程

执行日志可在jmeter/bin/jmeter.log下查看

在这里插入图片描述
2.5命令参数说明

以此命令为例:sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl

-h 帮助:打印出有用的信息并退出

-n 非GUI模式:在非 GUI 模式下运行 JMeter

-t 测试文件:要运行的 JMeter 测试脚本文件

-l 日志文件:记录结果的文件

-r 远程执行:启动远程服务

-H 代理主机:设置 JMeter 使用的代理主机

-P 代理端口:设置 JMeter 使用的代理主机的端口号

2.6执行结果的查看

sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl,执行完成后

  1. 命令将执行结果输入cutPay.jtl中,把该文件导出至Windows环境下

  2. 在Windows系统下打开Jmeter,创建一个线程组,添加监听器。即可查看结果,如下图:

在这里插入图片描述
2.7执行中的问题

  1. 执行中可能碰到如下错误,表示:jmeter.sh执行权限不够。

解决方案,赋予执行权限即可

命令:chmod 777 jmeter.sh

在这里插入图片描述
执行后,权限为:-rwxrwxrwx表示,读写执行权限均有

在这里插入图片描述
2) 使用nohup时,可能未找到这个命令,报错如下

-bash: nohup: command not found

解决方案:

① 通过which nohup,找到该命令所在目录

在这里插入图片描述

② 打开.bash_profile,添加到PATH下

在这里插入图片描述
在这里插入图片描述
③ 执行命令:source ~/.bash_profile;使文件生效

3 Windows环境分布式执行

Jmeter工具本身支持分布式压测,即多台机器同时执行同一个脚本,然后统计结果。

3.1分布式压测条件

分布式压测,机器分为控制机(controller)和执行机(slave),有几个条件必须满足:

  1. 执行机和控制机必须在同一个网段之内

  2. 压测机也必须安装相同版本的Jmeter和JDK

3.2修改Jmeter配置

  1. 修改控制机中apache-jmeter-3.2\bin\jmeter.properties中配置

修改内容为:remote_hosts=xx,xx代表的是压力机的ip。如果是多个压力机,之间使用【,】分隔,如下图所示

在这里插入图片描述
12.7.0.0.1:1099表示当前主机,1099为设置的端口号,可以修改

  1. 修改执行机中apache-jmeter-3.2\bin\jmeter.properties中配置

修改内容为:取消server_port=1099前的“#”,端口号和控制机配置文件中保持一致

3.3启动执行机

打开apache-jmeter-3.2\bin\jmeter-server.bat,如下图所示:

在这里插入图片描述
3.4启动控制机

打开apache-jmeter-3.2\bin\jmeter.bat,添加执行脚本,通过运行–>远程启动或者远程全部启动,即可启动对应执行机或者全部执行机。运行结束之后,查看聚合报告

在这里插入图片描述

4 Linux环境分布式执行

Linux环境分布式配置和Windows环境配置完全相同,可参考5.3.2进行修改

4.1启动执行机

启动执行机:&–>表示后台运行

方法一:./jmeter-server

方法二:./jmeter-server &

方法三:./jmeter-server -Djava.rmi.server.hostname=192.168.85.217 &

4.2启动控制机

方法一:nohup ./jmeter -n -t cutPay.jmx -R 192.168.85.217,192.168.85.216,192.168.85.215,192.168.85.214,192.168.85.213,192.168.85.212 -l log/cutPay.jtl &

方法二:./jmeter -n -t cutPay.jmx -R 192.168.85.217,192.168.85.216,192.168.85.215,192.168.85.214,192.168.85.213,192.168.85.212 -l log/cutPay.jtl

感谢阅读!留下一个您宝贵的关注吧~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员-南

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值