首先,我们可以选择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。非必要情况下不建议将调度机作为执行机使用,因为任务调度、收集结果信
息并进行汇总也需要消耗系统资源