8.性能测试执行

脚本调试通过之后,接下来就是正式执行过程。通常会选择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.2Windows下生成并保存脚本

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

 

2.3上传JmeterLinux压测机

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

 

2.4使用命令行启动执行

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

  • 前端执行命令: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),有几个条件必须满足:

  • 执行机和控制机必须在同一个网段之内
  • 压测机也必须安装相同版本的JmeterJDK

3.2修改Jmeter配置

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

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

 

12.7.0.0.1:1099表示当前主机,1099为设置的端口号,可以修改

2) 修改执行机中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

posted @ 2019-07-04 20:06  修行者HT  阅读(620)  评论(0编辑  收藏  举报