脚本调试经过以后,接下来就是正式执行过程。一般会选择window环境或者linux环境执行,二者各有优缺点:前端
1) Windows环境操做界面化,直观,易上手,但Windows操做系统中软件占用机器资源较多,致使资源使用率不高。通常可用于接口的并发逻辑验证或者应对一些相关检查,特别是不须要进行过大的负载java
2) Linux环境操做使用命令,结果查看不太方便,但资源利用率相对较高。通常使用在正式性能测试项目中,可支持较高并发。linux
读者能够根据项目具体状况选择执行环境shell
Windows环境下执行相对简单。4.2步骤完成以后,能够直接在Jmeter的GUI上进行操做和修改参数。下面简单说明一下几个主要过程apache
脚本编写调试好以后,拷贝相关的依赖到jmeter,而后启动。vim
添加线程组、Sampler中的Java请求、后置处理器中的聚合报告等组件。其余如察看结果树、定时器等可根据须要自行添加修改线程组名称,建议和压测接口对应,见名知意,保存后端
设置参数线程数、Ramp-Up Period、循环次数等必要参数信息bash
1) 线程数:即用户数,多少个线程就是多少个用户服务器
2) Ramp-Up Period:线程启动准备期,即全部线程所有启动的时间并发
3) 循环次数:勾选“永远”,则一直执行,直到崩溃或手动中止。
例如:设置100个线程,1S内所有启动全部线程,循环次数为100
设置好参数以后,保存脚本
打开Windows资源监控器。执行时,可实时关注资源消耗状况,如:CPU使用率、内存
打开应用服务器,实时观察请求日志和资源监控
准备工做就绪后,就能够按照测试方案中设计的测试用例来执行。
执行前可打开Jmeter页面的日志,方便观察
开始执行
执行完成后,收集执行结果和监控结果
开始执行新的场景以前,先清除上次的结果数据,避免混乱
获得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安装成功便可
在Windows下生成脚本,而且调试经过,保存脚本至Jmeter工具相关目录下,可自行定义:建议放在bin目录下
把Jmeter工具和脚本一块儿压缩,而后上传压缩包(rz命令,或FileZilla等工具)至压测Linux机器,并解压(unzip)
在Linux环境下,则须要利用jmeter.sh的shell脚本,使用命令行来执行
意思是命令启动后,不能关闭和退出当前执行页面及操做,不然执行自动退出
意思是命令启动后,命令会一直在执行。停止执行须要kill当前命令的进程
执行日志可在jmeter/bin/jmeter.log下查看
以此命令为例:sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl
-h 帮助:打印出有用的信息并退出
-n 非GUI模式:在非 GUI 模式下运行 JMeter
-t 测试文件:要运行的 JMeter 测试脚本文件
-l 日志文件:记录结果的文件
-r 远程执行:启动远程服务
-H 代理主机:设置 JMeter 使用的代理主机
-P 代理端口:设置 JMeter 使用的代理主机的端口号
sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl,执行完成后
1) 命令将执行结果输入cutPay.jtl中,把该文件导出至Windows环境下
2) 在Windows系统下打开Jmeter,建立一个线程组,添加监听器。便可查看结果,以下图:
1) 执行中可能碰到以下错误,表示:jmeter.sh执行权限不够。
解决方案,赋予执行权限便可
命令:chmod 777 jmeter.sh
执行后,权限为:-rwxrwxrwx表示,读写执行权限均有
2) 使用nohup时,可能未找到这个命令,报错以下
-bash: nohup: command not found
解决方案:
① 经过which nohup,找到该命令所在目录
② 打开.bash_profile,添加到PATH下
③ 执行命令:source ~/.bash_profile;使文件生效
Jmeter工具自己支持分布式压测,即多台机器同时执行同一个脚本,而后统计结果。
分布式压测,机器分为控制机(controller)和执行机(slave),有几个条件必须知足:
1) 修改控制机中apache-jmeter-3.2\bin\jmeter.properties中配置
修改内容为:remote_hosts=xx,xx表明的是压力机的ip。若是是多个压力机,之间使用【,】分隔,以下图所示
12.7.0.0.1:1099表示当前主机,1099为设置的端口号,能够修改
2) 修改执行机中apache-jmeter-3.2\bin\jmeter.properties中配置
修改内容为:取消server_port=1099前的“#”,端口号和控制机配置文件中保持一致
打开apache-jmeter-3.2\bin\jmeter-server.bat,以下图所示:
打开apache-jmeter-3.2\bin\jmeter.bat,添加执行脚本,经过运行-->远程启动或者远程所有启动,便可启动对应执行机或者所有执行机。运行结束以后,查看聚合报告
Linux环境分布式配置和Windows环境配置彻底相同,可参考5.3.2进行修改
启动执行机:&-->表示后台运行
方法一:./jmeter-server
方法二:./jmeter-server &
方法三:./jmeter-server -Djava.rmi.server.hostname=192.168.85.217 &
方法一: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