ANT+JMETER+Jenkins 接口自动化
Linux环境下搭建:ANT+JMETER+Jenkins 接口自动化
一、准备环境:
1、下载 JDK1.8
JDK下载地址:https://www.oracle.com/java/technologies/downloads/
# 配置jdk环境变量:
# 下载相应的jdk软件包,然后解压安装,我这里包名称为:
jdk-8u102-linux-x64.tar.gz
[root@localhost ~]# tar -zxvf jdk-8u102-linux-x64.tar.gz -C /usr/local/ #解压到/usr/local/下面
[root@localhost ~]# vi /etc/profile 最后面加入以下语句:
export JAVA_HOME=/usr/local/jdk1.8.0_102
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
[root@localhost ~]# source /etc/profile #使环境变量马上生效
[root@localhost ~]# java --version #查看java版本,看到jdk1.8.0_102版本即代表java jdk安装成功。
2、下载 ANT
ANT下载地址:https://ant.apache.org/bindownload.cgi
# ant环境变量:
# ant包名称为:apache-ant-1.9.14-bin.tar.gz
[root@localhost data]# tar -zxvf apache-ant-1.9.14-bin.tar.gz
# 比如放到:/data/apache-ant-1.9.14
[root@localhost opt]# vi /etc/profile #加入如下内容
export ANT_HOME=/data/apache-ant-1.9.14
export CLASSPATH=$CLASSPATH:$ANT_HOME/lib
export PATH=$ANT_HOME/bin:$PATH:$HOMR/bin
[root@localhost ~]# #source /etc/profile #使环境变量马上生效
[root@localhost apache-jmeter-5.1.1]#ant -v
命令行输入:ant -v 出现如下提示说明安装成功
3、下载:Jmeter
Jmter下载地址:https://jmeter.apache.org/download_jmeter.cgi
# 配置jmeter环境变量
# Jmeter:apache-jmeter-5.1.1.zip
# 解压到一个目录下面:unzip apache-jmeter-5.1.1.zip
# 比如:/data/apache-jmeter-5.1.1
[root@localhost opt]# vi /etc/profile #加入如下内容
export JMETER_HOME=/data/apache-jmeter-5.1.1
export CLASSPATH=$CLASSPATH:$JMETER_HOME/lib
export PATH=$JMETER_HOME/bin:$PATH:$HOMR/bin
[root@localhost apache-jmeter-5.1.1]# source /etc/profile
[root@localhost apache-jmeter-5.1.1]#jmeter -v
命令行输入:jmeter –v
# 将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中
[root@localhost extras]# cp ant-jmeter-1.1.1.jar /data/apache-ant-1.9.14/lib/
# 修改Jmeter的bin目录下jmeter.properties文件的配置:
[root@localhost bin]# vi jmeter.properties
jmeter.save.saveservice.output_format=xml
# 发邮件需要把(activation.jar,commons-email-1.2.jar,mail.jar)这几个jar包放到ant的lib下面
二、Jmeter脚本:
# 脚本目录:可以在jmeter的bin下面新建一个目录,比如为:jmeter_scripts
[root@localhost bin]# mkdir jmeter_scripts
# 上传本地的脚本
[root@localhost bin]# cd jmeter_scripts
[root@localhost jmeter_scripts]# rz
三、build.xml代码:
<?xml version="1.0" encoding="UTF-8"?> <project name="线上接口性能监控" default="all" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddhhmm" /> </tstamp> <property name="encoding" value="UTF-8" /> <!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="/data/apache-jmeter-5.1.1/" /> <property name="report.title" value="线上接口性能监控"/> <!-- jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="${jmeter.home}/work/resultLog/jtl" /> <!-- jmeter生成html格式的结果报告的路径--> <property name="jmeter.result.html.dir" value="${jmeter.home}/work/resultLog/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}${time}.html" /> <target name="all"> <antcall target="test" /> <antcall target="report" /> <antcall target="mail" /> </target> <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本--> <testplans dir="${jmeter.home}/bin/jmeter_scripts/易捷支付" 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> <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> <param name="showData" expression="${show-data}"/> <param name="dateReport" expression="${report.datestamp}"/> <param name="titleReport" expression="${report.title}:${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> <property name="mail_from" value="发送邮件的地址" /> <property name="password" value="邮箱密码" /> <!--mail_to:发送列表,多个之间逗号间隔 --> <property name="mail_to" value="接收邮件地址" /> <property name="mailport" value="25" /> <!--邮箱需要开通smtp服务--> <property name="mailhost" value="smtp邮件服务器地址" /> <target name="mail"> <loadfile property="report" srcFile="${jmeter.result.htmlName}" encoding="${encoding}" /> <mail from="${mail_from}" tolist="${mail_to}" mailport="${mailport}" mailhost="${mailhost}" user="${mail_from}" password="${password}" subject="TestReport-${ant.project.name}" messagemimetype="text/html"> <message> 本轮构建的结果如下: ${report} </message> </mail> <delete file="${jmeter.result.htmlName}" /> </target> </project>
四、运行脚本:
cd进入脚本目录:/data/apache-ant-1.9.14/bin
输入:ant 或 ant -buildfile build.xml,执行结果:
测试结果邮件发送:
五、部署到持续集成平台
部署到持续集成平台可以实现脚本的定时运行,这是接口测试的核心。
这里我们选用了jenkins,jenkins是一个强大的持续集成系统,使用起来也很简单。
使用步骤如下:
1、 安装jenkins
把Jenkins的war包复制到tomcat的webapps下面
2、启动tomcat,访问URL:http://ip:端口/jenkins
注意:请将jenkins安装到一个空间比较大的系统盘中。因为jenkins运行起来,生成的文件比较占空间。
3、 用户注册:默认情况下是不启用任何安全策略,即任何人都可以访问页面且有读写权限。比较常用的安全配置方式即安全矩阵。
首先开启用户注册权限,默认情况下,我们在首页点击“系统管理”后,页面上方会有这个提示:
点击“安全设置”,(对应 url: http://ip:8080/configureSecurity/) -“启用安全”,进入下面页面并选择:
4、 保存后系统管理中就出现管理用户的选项。页面右上角也会出现登录/注册的选项。 点击注册:
5、 安全策略:
点击“系统管理-Configure Global Security” 进入安全设置页面,简单常用的安全策略就是安全矩阵:
6、 添加用户之后保存,这个安全矩阵即生效了。至于应该勾选哪些和不勾选哪些,则根据实际需求来决定了
说明 1:
其中: Overall 是全局权限, slave 是集群权限, job,run,view,scm 是业务权限。
其中 overall 中的 read 要勾选,否则用户登陆后什么也看不到。
overall:
Administer:系统管理员权限
read:浏览框架
job:
read:查看 job
build:执行构建
ancel:取消构建
run:
Delete:删除某次构建
Update:编辑某次构建信息
SCM:
Tag:为某次构建在 svm 上打标签。
1、安装完成后,配置一个项目
输入项目名称后,选择第一个选项:构建一个自由风格的软件项目, 同样,按语义理解“复制已有的 Item”只适用于已经创建了类似的项目
2、旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就勾选丢弃旧的构建,同时设置保持构建天数和保持构建的最大个数两个参数。
注意:三个设置必须同时设置,否则无效
3、构建触发器,设置定时运行间隔,这里,设置间隔时间为每天8点运行一次
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天 特殊格式;
* 指所有有效的值 M-N指定值的范围 M-N/ X或*/ X是指以X为步长,指定的区域
或整个有效范围区间的值 A,B,...,Z列举多个值
eg:
H/15 * * * * 每十五分钟执行一次
H(0-29)/10 * * * * 每小时的0-29分内每隔十分钟执行一次
H 9-16/2 * * 1-5 每个工作日的9-16点内每隔两小时执行一次
H H 1,15 1-11 * 1-11月的每月1号和15号各执行一次
0 10 * * * 每天10点执行一次
4、在构建》添加构建步骤下面,选择invoke ant,这里由于Jenkins和ant在一台机器上面,在build file里面直接填写ant的build.xml路径就可以了
5、 在项目页面,点击“立即构建”按钮,在相关连接页面,可以看到成功或失败的信息
6、 查看报告
本文来自博客园,作者:刑之风,转载请注明原文链接:https://www.cnblogs.com/xingzhifeng/p/16259030.html