赞
踩
目录
1.首先在官网下载一个jdk8:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
选择linux版本进行下载
2.下载后的tar包,通过rz或者scp命令,上传到目标Linux服务器中
并创建/etc/java/文件夹,移动到此文件夹下并解压
tar -zxvf jdk-8u281-linux-x64.tar.gz
3.vi /etc/profile 编辑环境变量 (全局变量,需要root权限)
没root权限的话可以在个人家目录下的 .bash_profile文件加入环境变量
在末位加上java相关环境变量
- #java env
-
- JAVA_HOME=/etc/java/jdk1.8.0_281
-
- CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
- PATH=$PATH:$JAVA_HOME/bin:
-
- export JAVA_HOME
-
- export CLASSPATH
-
- export PATH
加完以后,需要重新加载环境变量
- source /etc/profile
- # 或者
- source .bash_profile
④验证:JDK是否安装完成
java -version
①下载jmeter包:Apache JMeter - Download Apache JMeter,下载之后移动到linux服务器上面,然后进行解压,步骤和安装jdk一样
②配置环境变量,在profile文件中配置
- #jmeter env
-
- JMETER_HOME=/etc/jmeter/apache-jmeter-5.4.1
-
- CLASSPATH=.:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/log4j-core-2.11.0.jar
-
- PATH=$PATH:$JAVA_HOME/bin:$JMETER_HOME/bin:$ANT_HOME/bin
-
- export JMETER_HOME
-
- export CLASSPATH
-
- export PATH
加完以后,需要重新加载环境变量
- source /etc/profile
- # 或者
- source .bash_profile
③验证jmeter是否安装好
jmeter -v
出现上面这个就ok啦
1、下载ant,ant下载地址:https://ant.apache.org/bindownload.cgi
2、将下载好的安装包上传到服务器
3、解压安装包:tar -zxvf /test/apache-ant-1.10.9-bin.tar
4、配置环境变量:
- export ANT_HOME=/home/test/apache-ant-1.10.9
- export PATH=$PATH:$ANT_HOME/bin
5、防止运行时报错,可以cp一份build.xml(下面有详解)到ant的bin目录下
1
2、创建ant工作目录以及报告存放目录
创建一个工作目录ant-jmeter,在其中新建目录result和script,在script下新建build.xml(ant构建时运行的动作)在文件夹result新建文件夹html和jtl存放jmeter报告
3、因为我build.xml配置了发送邮件。所以ant还需要下载几个jar包才可以发送邮件
activation.jar、commons-lang3-3.8.1.jar、mail.jar 直接下载然后丢到ant目录中的lib目录就可以
链接: https://pan.baidu.com/s/18BWUMrW7ABfBlvU_b3Mppw 提取码: 8jk4
4、 build.xml放到你的ant工作目录下的script目录下
ant的build.xml详解
- <?xml version="1.0" encoding="UTF-8"?>
-
- <project name="tsg-autotest" default="run" basedir=".">
-
- <tstamp>
- <format property="time" pattern="yyyy:MM:dd:hh:mm"/>
- </tstamp>
- <property name="basedirectory" value="jmeter+ant+jenkins"/>
- <!-- 需要改成自己本地的 Jmeter 目录-->
- <property name="jmeter.home" value="/xxx/xxx/xxx/apache-jmeter-5.4.1"/>
- <!-- 需要改成自己本地的 work 目录-->
- <property name="work.dir" value="/xxx/xxx/xxx/xxx/ant-jmeter"/>
- <!-- 发送给哪些人,多个用逗号隔开-->
- <property name="mail_to" value="xxx@163.com,xxx@qq.com"/>
- <property name="report.title" value="TSG自动化测试报告"/>
- <!-- jmeter生成jtl格式的结果报告的路径-->
- <property name="jmeter.result.jtl.dir" value="/xxx/xxx/xxx/xxx/ant-jmeter/result/jtl"/>
- <!-- jmeter生成html格式的结果报告的路径-->
- <property name="jmeter.result.html.dir" value="/xxx/xxx/xxx/xxx/ant-jmeter/result/html"/>
- <!-- 生成的报告的前缀-->
- <property name="ReportName" value="AutoTest-Report-detailed"/>
- <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"/>
- <!-- 生成清晰的报告 -->
- <property name="ReportNameB" value="AutoTest-Report-simple"/>
- <property name="jmeter.result.htmlNameB" value="${jmeter.result.html.dir}/${ReportNameB}.html"/>
-
- <!--定义次build.xml要执行全部的任务-->
- <target name="run">
- <antcall target="clear"/>
- <antcall target="test"/>
- <antcall target="report"/>
- <antcall target="mail"/>
- </target>
-
- <!--执行第一个任务,清理旧报告-->
- <target name="clear">
- <!-- 每次执行前先删除清空jtl和html文件夹,释放空间 -->
- <echo message="释放空间,清空jtl和html文件夹中 ..."></echo>
- <delete dir="${jmeter.result.html.dir}"/>
- <delete dir="${jmeter.result.jtl.dir}"/>
- <!-- 删除-->
- <!--<delete file="${work.dir}/result/console/*.txt" />-->
- <sleep seconds="1"/>
- <echo message="释放完成 ..."></echo>
- </target>
-
- <!--第二个任务,执行test-->
- <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="${work.dir}/script" includes="*.jmx"/>
- <property name="jmeter.save.saveservice.output_format" value="xml"/>
- </jmeter>
- </target>
-
- <!--引入外部jar包-->
- <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.shanhe.me.xsl">
- <param name="dateReport" expression="${report.datestamp}"/>
- </xslt>
- <xslt classpathref="xslt.classpath"
- force="true"
- in="${jmeter.result.jtlName}"
- out="${jmeter.result.htmlNameB}"
- 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>
-
- <!--将控制台输出到文本中-->
- <record name="${work.dir}/result/console/build-console-${time}.txt" loglevel="info" append="no"
- action="start"/>
-
- <!--执行第四个任务,发送邮件-->
- <target name="mail">
- <!--把报告进行压缩打包-->
- <jar jarfile="${jmeter.result.html.dir}/${ReportName}.rar" basedir="${jmeter.result.html.dir}"/>
- <!--<jar jarfile="${jmeter.result.html.dir}/console.rar" basedir="${work.dir}/result/console"/>-->
- <!--把文件贴到邮件正文-->
- <!-- <loadfile property="html" srcFile="${jmeter.result.html.dir}/${ReportNameB}.html" encoding="UTF-8">-->
- <!--<filterchain>-->
- <!-- <expandproperties/>-->
- <!-- </filterchain>-->
- <!-- </loadfile>-->
-
- <mail mailhost="smtp.qq.com"
- mailport="25" subject="${ReportName}"
- messagemimetype="text/html" tolist="${mail_to}"
- user="xxx@qq.com" password="开启自己qq邮箱的smtp就有了">
- <from address="xxx@qq.com"/>
- <!--发送附件-->
- <fileset dir="${jmeter.result.html.dir}">
- <include name="${ReportName}.rar"/>
- </fileset>
- <fileset dir="${work.dir}/result/console">
- <include name="build-console-${time}.txt"/>
- </fileset>
- <message><![CDATA[
- <p>Author收:
- 这是用Ant自动发送的测试报告,构建时间为${time},详细报告请查看附件rar。
- </p>
- <p> 附件介绍: ${ReportName}.rar里是详细的测试报告,其内包含接口的请求及响应内容,txt是jenkins控制台输出的内容。</p>
- ]]></message>
- </mail>
- </target>
- </project>
-
5、修改jmeter.properties文件如下部分,都改成true,让报告输出的内容更详细
- 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=false
- # Save ResponseData for failed samples
- jmeter.save.saveservice.response_data.on_error=false
- 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=false
- jmeter.save.saveservice.responseHeaders=false
- jmeter.save.saveservice.requestHeaders=false
- jmeter.save.saveservice.encoding=false
- jmeter.save.saveservice.bytes=true
- # Only available with HttpClient4
- jmeter.save.saveservice.sent_bytes=true
- jmeter.save.saveservice.url=true
- jmeter.save.saveservice.filename=false
- jmeter.save.saveservice.hostname=false
- jmeter.save.saveservice.thread_counts=true
- jmeter.save.saveservice.sample_count=false
- jmeter.save.saveservice.idle_time=true
这俩个也ctrl F找出来改下
jmeter.save.saveservice.output_format=xml (csv改为xml)
server.rmi.ssl.disable=true (false改为true)
6、测试运行
把你在jmeter GUI模式下调试好jmx文件放到你的工作目录ant-jmeter/script下
正确完成以上动作之后,你的ant-jmeter/script下具有jmeter的jmx文件和build.xml文件时,你就可以在当前目录直接输入ant然后回车,这就可以直接运行了
提示BUILD SUCCESSFUL,即运行成功
可下载html查看html形式的测试报告,也可以通过jtl在jmeter里用查看结果树查看
想要持续集成的话自然少不了jenkins,所以下面我们来安装jenkins
1、①在官网下载jenkins war包,https://www.jenkins.io/download/,下载之后然后上传到linux环境
或者linux环境下curl -o jenkins.war http://updates.jenkins-ci.org/latest/jenkins.war下载
2、下载个tomcat作为jenkins的容器:wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.tar.gz
3、下载好后把jenkins的war包放在tomcat的webapp目录下,启动tomcat,如8080端口冲突需修改server.xml的端口
4、启动之后,直接打开浏览器输入http://服务器IP:port/jenkins,即进入jenkins页面,如下图。
此处简略,若遇到问题无法安装jenkins可搜索其它安装jenkins的文章解决问题。
5、在配置ant之前,我们需要给jenkins安装一些插件:Ant Plugin、HTML Publisher plugin、Groovy。一个都不能少哦!以保证我们的自动化能够正常的执行和测试结果能够生成html测试报告并发送
点击系统管理->插件管理,在“可选插件”页签中,找到这几个插件并直接安装就好,安装好之后我们就可以进行系统的设置了
6、系统设置
1)点击系统管理->系统设置,进入到这个页面,编辑全局属性
ant同上输入本机ant地址
4、配置项目
新建一个自由风格的项目,并构建:
1、可以先定义一个ant的工作目录
2、 Source Code Management选None
3、Build Triggers 勾选Build when job nodes start设置个前置,Jenkins启动时执行配置命令
4、在Build模块下,Add build step->Execute system Groovy script,在Groovy Script中输入配置命令:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") 。
不加的话jenkins的html report是看不了的
5、在Build模块下 Add build step->lnvoke Ant
6、在Build模块下 Add post-build-action-> Publish HTML reports
绝对路径和相对路径都可以。
7、需要持续集成的话那就少不了定时任务,加一个上班时间跑的吧
Build Triggers -> Build periodically
0 9 * * * 每天九点跑一下,带薪wc之后回来看报告就ok。
想要配置其它时间可以参考:
- 自己设置时间点自动执行当前的任务
- 定时任务:
- 分钟 小时 一月的天数 月份 一周的天数
- 0-59 0-23 1-31 1-12 0-7(0HE 7表示周天)
- 1、每天晚上20点整自动执行(*号表示取所有的)
- 0 20 * * *
- 2、一周1,3,5晚上20点执行 (英文状态下的逗号和星号)
- 0 20 * * 1,3,5
- 3、每周周1-周5晚上20点整执行
- 0 20 * * 1,2,3,4,5 对于连续的时间,可以用-来表示,可以写为
- 0 20 * * 1-5
- 4、一周内每2天,晚上20点整执行
- 0 20 * * */2
到这里我们jenkins就配置好啦,save一下保存就好了。
8、build一下这个项目吧
控制台是BUILD SUCCESSFUL就没问题啦
可以在这里查看报告
我设置的报告类型在这里是jmeter-results-detail-report_21.xsl的
因为它jenkins的html-reports吃样式太多了,用jmeter.results.shanhe.me.xsl的报告会有点呆
可以看下你填的收件人是否收到
这样下来,我们接口自动化的测试框架就已经搭建好啦,可以开展持续集成的工作了。
参考:
Linux下的Jenkins+ant+jmeter 持续集成平台搭建及出现的问题_雪之之呀的博客-CSDN博客
linux 中搭建Jenkins+ant+jmeter 轻量级接口测试_天下我有123的博客-CSDN博客
搭建ant+jenkins+jmeter自动化接口测试框架(详细篇)_猎摘互联网软件测试业界技术文章专用博客的博客-CSDN博客
如果对你有帮助的话,给我点个赞吧,赠人点赞手有余香。
有问题可以在评论区留言,看到会尽力解答。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。