Jmeter之性能测试持续集成

首先,我们可以选择Jenkins实现性能测试持续集成,具体步骤如下:

一、Performance Plugin安装

方式1.在线安装:系统管理—管理插件–可选插件界面,查找需要安装的插件:Performance Plugin,

勾选后直接安装

备注:使用方式1时候,若遇到插件无法下载的情况,展开Failure信息,找到对应的hpi信息,换一个

国内镜像下载,

如:清华大学镜像地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/

更新镜像地址的路径:系统管理—管理插件–高级—升级站点

方式2.离线安装:下载插件的hpi文件,在Jenkins:系统管理—管理插件–高级–上传插件,直接上传

插件

备注:performance hpi文件路径:https://updates.jenkins.io/download/plugins/performance/
Email Extension Plugin下载地址:https://updates.jenkins.io/download/plugins/email-ext/
Publish HTML reports插件下载地址:https://plugins.jenkins.io/htmlpublisher/
一般jenkins版本都默认安装了HTML Publisher plugin

若安装失败,可能是插件的版本太高或者太低,与当前Jenkins不兼容,此时需要使用其它版本插件

二、性能测试持续集成

1.安装Jenkins,并且将安装Jenkins的机器作为调度机,调度机上安装Jmeter,并且将性能测试

的脚本、数据上传到该机器上,即Jenkins服务器也是调度机

备注:机器上也要同步安装JDK、根据实际需要还可能需要安装git、python等其它软件

调度机配置

(1)修改jmeter.properties文件配置:

1)取消注释 server.rmi.ssl.disable=false ,并将false改成true

2)文件最后面添加一行java.rmi.server.hostname=10.12.224.215 ,hostname为本机IP地址

3)若有必要,自定义通讯端口,默认端口1099:如修改为1089

 server_port=1089

 server.rmi.localport=1089

4)更新remote_hosts为执行机IP和端口,端口默认值为1099,可自定义如上,多台执行机中间用

英文逗号隔开。如果调度机既既作为调度也作为执行机,则需要加上调度机IP和端口。

2.在执行机上安装Jmeter,并且将性能测试的数据上传到该机器上

备注1:机器上也要同步安装JDK、根据实际需要还可能需要安装git、python等其它软件,软件

的版本最好和调度机一致

执行机配置

(1)修改jmeter.properties文件配置:

1)取消注释 server.rmi.ssl.disable=false ,并将false改成true

2)文件最后面添加一行java.rmi.server.hostname=10.12.224.215 ,hostname为本机IP地址

3)若有必要,自定义通讯端口,默认端口1099:如修改为1089

 server_port=1089

 server.rmi.localport=1089

4)更新remote_hosts,因为执行机上也要进行消息回传,故remote_hosts也需要配置上调度机的IP和端口
在这里插入图片描述(2)输入命令启动执行机代理

sh /web/performance/apache-jmeter-4.0/bin/jmeter-server

(启动异常时需要加上此参数信息,hostname为代理机IP地址

-Djava.rmi.server.hostname=10.16.244.150

备注:linux启动jmeter server命令为:sh jmeter-server

windows则为双击打开:jmeter-server.bat

这里是启动slave上的jmeter服务。如下图出现则启动成功。

上面的IP和Port为在调度机remote_hosts中配置的IP和port
在这里插入图片描述
踩坑:

调度机启动代理服务,错误信息:

root@ranxf:/home/ranxf/apache-jmeter-3.1/bin# ./jmeter-server
Writing log file to: /home/ranxf/apache-jmeter-3.1/bin/jmeter-server.log
Created remote object: UnicastServerRef [liveRef: [endpoint:[127.0.1.1:45261](local),objID:[-77439517:162bd0d02af:-7fff, -6895836418342878128]]]
Server failed to start: java.rmi.RemoteException: Cannot start. ranxf is a loopback address.
An error occurred: Cannot start. ranxf is a loopback address.

解决方案:

在jmeter-server加上参数后再次执行:

sh /web/performance/apache-jmeter-4.0/bin/jmeter-server -Djava.rmi.server.hostname=10.16.244.150

3、Jenkins中新建job,增加构建步骤

若调度机为linux操作系统,选择"执行shell",若调度机为windows操作系统,则选择"执行windows

批处理命令"
在这里插入图片描述

cd /web/performance/apache-jmeter-4.0/bin
git pull http://gitlab.wumart.com/dmall-scm/wms_performance.git
sleep 2
cd /web/performance
rm -rf report
rm -rf testResult.jtl
sleep 2
sh /web/performance/apache-jmeter-4.0/bin/jmeter.sh -n -t /web/performance/apache-jmeter-4.0/bin/performancScript.jmx -R 10.16.244.150:1089 -l /web/performance/testResult.jtl -e -o /web/performance/report

注意:测试报告文件夹必须为空或者不存在(不存在会自动创建文件夹然后将测试报表保存其中),

参数为报表文件夹路径

Linux执行jmete脚本命令为:sh jmeter.sh windows为:jmeter

4、增加构建后操作Publish HTML reports

需要安装HTML Publisher plugin,一般jenkins版本都默认安装了HTML Publisher plugin

(1)在构建后选择Publish HTML reports插件并配置信息
在这里插入图片描述
说明:

HTML directory to archive:测试报告保存路径

index page[s]:可保持默认值

index page title[s]:测试报告页面的命名

Report title:测试报告命名

5、增加构建后操作Publish Performance test result report

在这里插入图片描述
说明:

Source data files:性能测试结果文件路径,如上列为调度机为linux操作系统的性能测试结果文件的

路径

6.通过HTML Report查看结果报告
在这里插入图片描述
7.其它事项:

1、jmeter.properties,可能会遇到打不开的权限问题或者其它文件权限问题:

可以使用:chmod 777 filename 添加权限 ,然后再重新就可以打开了

2、自定义端口:client和server通信的端口,可以不修改,默认就是1099

在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如

我这里修改为1888:

server_port=1888

server.rmi.localport=1888

3、确保调度机、执行机jmeter,java版本一致,不同版本可能会存在协同问题

4、调度机、执行机需要关闭防火墙。

5、调度机、执行局网络需要保持在同一个局域网,可以ping通

6、执行机不需要性能测试脚本,因为调度机会通过命令的方式由发送脚本到每台执行机,但如果

测试用到了外部数据文件,那么请注意这些文件不会被调度机分发,因此测试人员需要确保每台

执行机上都保存了这些数据文件,并且文件路径正确

7、有时候用作执行机的机器太少,仍不能满足需要,则需要将调度机的电脑也当做执行机,则同

样需要修改jmeter.properties文件,将调度机的IP写入到remote_hosts。同时,这个时候需要先打

开调度机(Master)电脑中%JMeter_home%/bin目录下的jmeter-server.bat,

然后再打开jmeter.bat。非必要情况下不建议将调度机作为执行机使用,因为任务调度、收集结果信

息并进行汇总也需要消耗系统资源

猜你喜欢

转载自blog.csdn.net/baidu_24752135/article/details/106695871