JMeter + ant + Jenkins 接口测试持续集成

news/2024/5/20 1:18:55

JMeter + ant + Jenkins 接口测试持续集成

操作系统:linux

环境变量 地址
jdk11 https://www.oracle.com/java/technologies/downloads/
jmeter 5.6 https://jmeter.apache.org/
ant 1.10.14 https://ant.apache.org/bindownload.cgi
Jenkins 2.414.1 https://mirrors.jenkins.io/

一、安装jdk并配置环境变量

1、下载jdk安装包

image-20231106165600204

2、将安装包移动到Linxu系统中

image-20231107110330323

3、解压jdk压缩包

​ 进入到压缩包所在目录下,使用tar命令,将压缩包进行解压。

tar -zxvf jdk-8u281-linux-x64.tar.gz

image-20231107110516180

4、将jdk添加到环境变量

vim /etc/profile
# 在最后插入# java环境变量
export JAVA_HOME=/usr/local/java/jdk-11.0.21
export CLASSPATH=.:${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib:$CLASSPATH# PATH
export PATH=$PATH:${JAVA_HOME}/bin

image-20231107111322822

5、保存并退出,刷新环境变量

source /etc/profile

6、验证jdk环境变量

image-20231107111524600

二、安装jmeter并配置环境变量

1、下载jmeter安装包

image-20231107112857140

2、将安装包移动到Linux中

image-20231107113031623

3、解压jmeter压缩包

​ 进入到压缩包所在目录下,使用tar命令,将压缩包进行解压。

tar -zxvf apache-jmeter-5.6.2.tgz

image-20231107135604257

4、将jmeter添加到环境变量

vim /etc/profile
# jmeter环境变量
export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.6.2# PATH
export PATH=$PATH:${JAVA_HOME}/bin:${JMETER_HOME}/bin

image-20231107140113299

5、保存并退出,刷新环境变量

source /etc/profile

6、验证jmeter环境变量

jmeter -v

image-20231107140315104

三、安装ant并配置环境变量

1、下载ant安装包

image-20231107141330751

2、将安装包移动到Linux中

image-20231107141429064

3、解压ant压缩包

tar -zxvf apache-ant-1.10.14-bin.tar.gz 

image-20231107141613398

4、将ant添加到环境变量

vim /etc/profile
# ant环境变量
export ANT_HOME=/usr/local/ant/apache-ant-1.10.14# PATH
export PATH=$PATH:${JAVA_HOME}/bin:${JMETER_HOME}/bin:${ANT_HOME}/bin

image-20231107141956959

5、保存并退出,刷新环境变量

source /etc/profile

6、验证ant环境变量

image-20231107142412285

四、测试JMeter + ant

1、将 jmeter / extras 目录下的 ant-jmeter-1.1.1.jar 复制到 ant/ lib 目录中

image-20231107150437035

cp /usr/local/jmeter/apache-jmeter-5.6.2/extras/ant-jmeter-1.1.1.jar /usr/local/ant/apache-ant-1.10.14/lib/

image-20231107151018433

2、在 jmeter 目录下,创建 report 文件夹,并在其下创建 html、jtl、run 文件夹

​ 在jmeter目录下,使用mkdir命令创建目录。

mkdir report
mkdir report/html
mkdir report/jtl
mkdir report/run

image-20231107153418735

3、在 jmeter / report 目录下,创建 build.xml ,并填充以下代码

​ 在jmeter / report 目录下,使用vim命令创建/编辑 bulid.xml

vim build.xml

image-20231107154054776

​ 在build.xml,输入以下代码,并根据实际情况,调整目录信息

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run"><tstamp><format property="time" pattern="yyyyMMddhhmmss" /></tstamp><!-- 需要修改成自己jmeter的目录路径 --><property name="jmeter.home" value="/usr/local/jmeter/apache-jmeter-5.6.2" /><property name="report.title" value="TestReport" /><!-- 需要修改成自己jmeter/report/jtl的目录路径 --><property name="jmeter.result.jtl.dir" value="/usr/local/jmeter/apache-jmeter-5.6.2/report/jtl" /><!-- 需要修改成自己jmeter/report/html的目录路径 --><property name="jmeter.result.html.dir" value="/usr/local/jmeter/apache-jmeter-5.6.2/report/html" /><property name="ReportName" value="TestReport" /><property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /><property name="jmeter.result.htmlName"value="${jmeter.result.html.dir}/${ReportName}.html" /><target name="run"><antcall target="test" /><antcall target="report" /></target><target name="test"><taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /><jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"><!-- 需要修改成自己jmeter/report/run的目录路径 --><testplans dir="/usr/local/jmeter/apache-jmeter-5.6.2/report/run" includes="*.jmx" /><property name="jmeter.save.saveservice.output_format" value="xml" /></jmeter></target><path id="xslt.classpath"><fileset dir="${jmeter.home}/lib" includes="xalan*.jar" /><fileset dir="${jmeter.home}/lib" includes="serializer*.jar" /></path><target name="report"><tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp><!-- style需要修改成自己模板的路径,默认为jmeter自带的模板,也可以使用 --><xsltclasspathref="xslt.classpath"force="true"in="${jmeter.result.jtlName}"out="${jmeter.result.htmlName}"style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"><param name="dateReport" expression="${report.datestamp}" /></xslt><copy todir="${jmeter.result.html.dir}"><fileset dir="${jmeter.home}/extras"><include name="collapse.png" /><include name="expand.png" /></fileset></copy></target>
</project>

3、配置jmeter.properties文档

​ 将 jmeter.save.saveservice.output_format=csv 改成 xml,并取消注释

​ 将如下的 jmeter.save.saveservice 值全部改为 true,并取消注释

jmeter.save.saveservice.output_format=xml
......
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=true
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
# Only available with HttpClient4
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=true
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true

4、验证

​ 将在Windows系统调试好的脚本文件,移动到Linux系统的 jmeter / report / run 目录下。

image-20231107162806924

​ 然后在 jmeter / report 目录下,执行命令

ant run

image-20231107163128950

​ 执行完成后,jtl 目录中生成jmeter脚本的运行结果,html 目录中生成其html格式的报告。

image-20231107163314549

image-20231108151843953

image-20231107163453165

五、安装Jenkins

1、下载Jenkins

image-20231107163843952

image-20231107164258295

2、将Jenkins移入服务器,并创建 nohup.out 文件

vim nohup.out

image-20231107170137526

3、启动Jenkins服务

​ 在 jenkins 目录下,执行命令启动jenkins服务,使用的端口可自定义修改。

nohup java -jar jenkins.war --httpPort=8089 &

4、页面访问Jenkins

​ 在浏览器中输入地址:服务器ip + 端口,打开Jenkins网页。

image-20231108111507230

​ 若没有打开说明该端口的防火墙没有关闭,关闭防火墙后,即可打开网页。

5、服务器中查看密钥

​ 密钥有两种方法可以查看。

①在 jenkins 目录下的 nohup.out 文件中查看

image-20231108112159931

​ 在 jenkins 目录执行vim命令查看 nohup.out 文件,向下翻查找密钥。

vim nohup.out

image-20231108112313091

②根据 Jenkins 页面提示,在 /root/.jenkins/secrets 目录下的 initialAdminPassword 文件中查看

image-20231108111947132

vim /root/.jenkins/secrets/initialAdminPassword

image-20231108112052928

6、创建用户

​ 在网页中输入密钥后,Jenkins会让你选择是否安装插件,建议选择安装推荐的插件。若服务器在非互联网环境,安装插件需要从互联网环境下载后,传入服务器,再进行安装。

image-20231108112720860

​ 插件安装完毕后,就可以创建用户了。

image-20231108132952049

​ 创建完成后,就可以使用Jenkins了。

image-20231108133503498

六、Jmeter + ant + Jenkins 持续集成

1、点击 Mange Jenkins -> Plugins 进入插件管理页面

image-20231108144830031

2、点击 Available plugins,在检索框输入:HTML,勾选 HTML Publisher 插件,点击右侧的 Install 安装插件

image-20231108145243737

3、安装成功后,返回首页点击 New Item (因为我把翻译插件关闭了,所以显示为纯英文)

image-20231108141208244

4、创建 Freestyle project

image-20231108141415566

5、勾选 Discard old builds ,配置参数。若不勾选,build数量会越来越多,占用内存

image-20231108142750149

6、勾选 Build periodically ,配置参数。图中参数为:每日11点(服务器时间),进行build

image-20231108143215152

7、在 Build Steps 添加 Invoke Ant 组件,并进行配置;Build Filebuild.xml 文件路径

image-20231108144230682

8、在 Post-build Actions 添加 Publish HTML reports 组件,并进行配置;HTML directory to archivejmeter/report/html 目录,Index page[s] 为 执行 build.xml 生成的html文件名

image-20231108151957527

9、在 Post-build Actions 添加 Editable Email Notification 组件,并进行配置;Project Recipient List 为接收邮件的邮箱,多个邮箱使用英文逗号进行分割,Content Type 选择 HTML (text/html)Default Subject 为邮件标题,Default Content 为邮件内容。

<div>${FILE, path="/usr/local/jmeter/apache-jmeter-5.6.2/report/html/TestReport.html"}</div>

其中 path 为执行 build.xml 生成的html文件路径

image-20231108153404765

点击该组件下方的 Advanced Settings ,将 Triggers 下的 Failure - Any 删除,因为该策略只会在build失败时才会发送邮件。我们再在 Triggers 下添加新的策略 Always ,该策略在执行完build后总是会发送邮件,配置如下。

image-20231108155013779

配置完成后,点击 Save 保存即可。

10、接下来,点击首页的 Manage Jenkins -> System 进入到系统设置页面

image-20231108160544752

11、设置 Extended E-mail Notification 信息,下面以QQ邮箱为例。

SMTP server:smtp.qq.com

SMTP Port:465

​ 如果使用其他邮箱,可自行查询该邮箱的 SMTP serverSMTP Port

image-20231108165233025

​ 添加发送邮件的邮箱,填写 Kind、Scope、Username、PasswordKind、Scope 如下图选择,Username 为邮箱的地址,Password 指的不是邮箱密码,而是邮箱的授权码。

image-20231110153831590

获取邮箱授权码,以QQ邮箱为例:

①登录QQ邮箱网页版

②点击 设置 -> 账号

image-20231110154911117

③下滑找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

image-20231110153540996

④点击 开启服务,因为我已经开启过了,所以显示的是管理服务。当然开启过了也可以点击下方的 继续获取授权码 来获得新的授权码

​ 填写完成后,在 Credentials 选择刚刚填写的邮箱,并勾选 Use SSL

image-20231110155257955

Default user e-mail suffix:@qq.com

Charset:UTF-8

Default Content Type:HTML(text/html)

Default Reclplents:默认收件人邮箱

image-20231110160243323

12、接下来配置 E-mail Notification

SMTP server:smtp.qq.com

Default user e-mail suffix -> 用户名:邮箱

Default user e-mail suffix -> 密码:邮箱授权码

SMTP Port:465

Charset:UTF-8

image-20231110163540994

​ 最后我们来测试一下,能否正常发送邮件给他人。

image-20231110163807095

​ 勾选 Test configuration by sending test e-mail ,填写接收测试邮件的邮箱,点击 Test configuration

image-20231110164157462

​ 可以看到邮件已成功发送。我们点击 Save 保存即可。

实现最终效果

​ ①根据设置的 Build periodically,即每日11点启动任务,从而达到使用 jmeter 执行 jmeter/report/run 目录下的所有 jmx 文件,并生成测试结果存于 jmeter/report/jtl 目录中,最后发送html格式测试结果邮件到接收邮箱中。

​ ②除了通过 Build periodically 设置的每日启动,也可以手动启动,可以点击任务的 build 按钮启动

image-20231110170632527

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/29783.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

云打印怎么保护用户的隐私?

随着互联网的发展,在当下的网络环境下,用户的隐私越来越难以保证安全。特别是对于打印业务来说,盗取用户文件、转卖客户信息的内容时有发生。那么我们作为出色的云打印服务商,该如何保证用户的隐私呢?今天就来给大家介绍一下。 当前打印市场乱象 在当下的网络环境下,我们…

你的许可证不是正版,你可能是盗版软件的受害者?

你的许可证不是正版,你可能是盗版软件的受害者? 问题分析 有的用户在使用 Office 时可能会遇到许可证问题,可能是弹窗,也有可能是横幅。 我们不讨论以前是什么样,现在是这样的: 微软为了遏制 KMS 盗版过于横行,封禁了使用 KMS 工具进行激活的手段,因为使用 KMS 工具激活…

Go-Zero自定义goctl实战:定制化模板,加速你的微服务开发效率(四)

gozero如何自定义goctl?本文详解和实战,通过本文你将了解goctl的妙用,提高你的开发效率。介绍如何使用goctl工具实现模板定制化,并根据实际项目业务需求进行模板定制化实现。前言 上一篇文章带你实现了Go-Zero和goctl:解锁微服务开发的神器,快速上手指南,本文将继续深入…

1、安装terminator分屏工具

1 安装分屏工具terminator 打开ubuntu自带终端,输入sudo apt-get install terminator命令安装分屏工具terminator。 再重新打开ubuntu自带终端,在屏幕上右击

【GaussDB(for MySQL)】 Big IN查询优化

在生产环境中,经常会遇到客户业务的SQL语句进行过滤查询,然后进行聚合处理,并且IN谓词列表中包含几千甚至上万个常量值。本文分享自华为云社区《【MySQL技术专栏】GaussDB(for MySQL) Big IN查询优化》,作者:GaussDB 数据库。背景介绍在生产环境中,经常会遇到客户业务的S…

2 集成开发环境的搭建

1 安装分屏工具terminator 打开ubuntu自带终端,输入sudo apt-get install terminator命令安装分屏工具terminator。 再重新打开ubuntu自带终端,在屏幕上右击

完美匹配企业需求的FTP替代软件,需要具备哪些功能和价值?

FTP作为世界范围内第一个文件传输协议,已被广泛使用30多年,也是企业使用较多的一种方式。但在数字化转型的浪潮中,企业对文件传输的需求日益增长,FTP存在的弊端也逐渐成为企业发展的桎梏,比如安全性、稳定性、传输效率等方面,迫切需要寻找FTP替代软件。以下是迫使企业替换…