Centos7.5 jenkins持续集成批处理jmeter脚本

准备环境

1.安装Jmeter
2.安装Jenkins
3.安装JDK
4.jenkins配置JDK
系统管理-全局工具配置
在这里插入图片描述
5.下载jmeter-plugins插件
下载jmeter-plugins插件JMeterPlugins-Standard-1.4.0.zip,解压后将其中的jar包拷贝至jmeter安装目录/lib/ext/目录。
这个插件的作用是,当通过no-GUI方式执行测试之后,将生成的测试结果文件*.jtl解析成图片的形式。

jenkins处理jmeter脚本

1.构建一个自由风格的项目
在这里插入图片描述
2.配置项目

构建生存期配置
在这里插入图片描述
点击“Advanced”,配置jenkins运行结果文件的存放地址
在这里插入图片描述
构建触发器

“H/30 * * * * ”表示30分钟执行一次
在这里插入图片描述
构建环境

如果之前执行过jmeter脚本,并且生成了测试报告文件,需要先删除
在这里插入图片描述
或者通过shell脚本的方法,如下所示:

rm -rf /home/tester/jenkins_jmx/test_cas_01.jtl
rm -rf /home/tester/jenkins_jmx/test_cas_02.jtl

构建

点击增加构建步骤:execute shell 利用shell命令来批处理执行jmeter脚本

rm -rf /home/tester/jenkins_jmx/test_cas_01.jtl
rm -rf /home/tester/jenkins_jmx/test_cas_02.jtl
cd /app/apache-jmeter-5.0/bin
./jmeter -n -t /home/tester/jenkins_jmx/test_cas_01.jmx -r -l /home/tester/jenkins_jmx/test_cas_01.jtl && 
./jmeter -n -t /home/tester/jenkins_jmx/test_cas_02.jmx -r -l /home/tester/jenkins_jmx/test_cas_02.jtl
参数说明:  

-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错

在这里插入图片描述

构建后操作

要想将jtl文件生成测试报告,需要安装一个插件performance
在这里插入图片描述
但是,我在下载插件的过程中,总是失败,所以,选择了插件上传的方式。
在这里插入图片描述
添加构建后操作,选择publish performace test result report
在这里插入图片描述
点击保存,至此定时30分钟处理jmx脚本的jenkins项目就配置好了。

3.构建项目

查看是否能正常执行生成报告
在这里插入图片描述
4.查看生成的图形报告
在这里插入图片描述

配置过程遇到的问题

1.启动jmeter报错

启动 jmeter-server 服务时出现异常,系统提示如下:

 Created remote object: UnicastServerRef2 [liveRef: [endpoint:[127.0.0.1:38577](local),objID:[-b703f17:169b3449ca7:-7fff, 7985153725079567134]]]
    Server failed to start: java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address.
    An error occurred: Cannot start. localhost.localdomain is a loopback address.

在这里插入图片描述
解决方法

方法1:通过终端命令指定来启动

[root@localhost ~]#cd /app/apache-jmeter-5.0/bin
[root@localhost bin]# ./jmeter-server -Djava.rmi.server.hostname=10.20.126.100

方法2:编辑jmeter-server文件,设置固定的代理服务器主机IP

[root@localhost ~]#cd /app/apache-jmeter-5.0/bin
[root@localhost bin]# vim jmeter-server

在这里插入图片描述
验证是否启动成功

启动jmeter
在这里插入图片描述
查看jmeter进程
在这里插入图片描述
2.jenkins构建项目报错:java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件)
解决方法:
编辑jmeter的配置文件jmeter.properties

[root@localhost ~]# vim /app/apache-jmeter-5.0/bin/jmeter.properties

修改内容如下所示:
在这里插入图片描述
重新启动jmeter,问题解决。

3.jenkins构建项目报错:java.net.ConnectException: 拒绝连接 (Connection refused)

Creating summariser <summary>
Created the tree successfully using /home/tester/jenkins_jmx/test_cas_01.jmx
Configuring remote engine: 127.0.0.1
Connection refused to host: 127.0.0.1; nested exception is: 
	java.net.ConnectException: 拒绝连接 (Connection refused)
Failed to configure 127.0.0.1
Stopping remote engines
Remote engines have been stopped
Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[127.0.0.1]

解决思路:
思路1.没有安装系统资源监控插件ServerAgent,下载ServerAgent-2.2.1.zip,,并在被服务器上启动startAgent.sh
链接:https://pan.baidu.com/s/1ejxdRJyW_go4-b-DvY_3Dw
提取码:83wj

[root@localhost ~]# sh /app/ServerAgent-2.2.1/startAgent.sh

在这里插入图片描述
如果启动之后,依旧报错,那么可以参考思路2
思路2.查看jmeter脚本,是否被赋予“执行”的权限

[root@localhost ~]# cd /home/tester/jenkins_jmx

在这里插入图片描述
果然,是两个jmeter脚本没有执行的权限

[root@localhost jenkins_jmx]# chmod a+x test_cas_03.jmx
[root@localhost jenkins_jmx]# chmod a+x test_cas_04.jmx

在这里插入图片描述
再次构建,问题解决。

4.jenkins构建项目报错:Error in NonGUIDriver java.lang.NullPointerException

这个问题真的是让人很无语的,因为关系到大家对于jmeter的熟悉程度了。
导致这个错误的原因是:
在保存jmeter脚本时,选择的是“保存为”,这种情况下,生成的测试脚本只是“线程组”下面的元素,而这种方式下保存的测试用例,不包括需要运行测试所需的“TestPlan”元素。
在这里插入图片描述
解决方法:
在保存测试用例的时候,不要只保存某子元素,而是保存整个测试计划。直接点击工具栏上的“保存测试计划”按钮;或者在文件菜单中单击“保存测试计划”/“保存测试计划为”选项。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43840640/article/details/88792288
今日推荐