接口自動化-jmeter+ant+jekins搭建及配置
參考文獻:https://blog.csdn.net/miffy2017may/article/details/94026787
1 安裝jmeter,此處不再描述
1.1 下載不再描述
1.2 配置環境變量
JMETER_HOME為 D:\Program Files (x86)\apache-jmeter-2.12;
CLASSPATH為 %JMETER_HOME%\lib;
PATH為%JMETER_HOME%\bin;
1.3 安裝驗證
在命令窗口中輸入jmeter -v回車,能出現jmeter版本則說明配置成功,可以直接在命令窗口輸入jmeter回車后啟動jmeter
2 安裝JDK
2.1 下載安裝包,我下載的是最新版jdk 1.8.0_152,官網下載地址是http://www.oracle.com/technetwork/java/javase/downloads/index.html
2.2 配置環境變量
JAVA_HOME 為 C:\Program Files (x86)\Java\jdk1.8.0_152 (注意:java我是默認裝的C盤)
CLASSPATH為 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
PATH為 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
2.3 安裝驗證
在命令窗口中輸入java -version 回車,能出現java版本則說明配置成功
3 安裝ant
3.1 安裝包下載
下載地址 http://ant.apache.org/bindownload.cgi,下載后解壓到指定位置即可,我是放在D:\Program Files (x86)\apache-ant-1.9.0,與jmeter放在同一位置
注意:下載最新版也可能導致后面ant run不成功,我之前是下載的apache-ant-1.10.1,遇到問題之后降版本,成功!
3.2 配置環境變量
ANT_HOME 為 D:\Program Files (x86)\apache-ant-1.9.0
CLASSPATH為 %ANT_HOME%\lib;
PATH為%ANT_HOME%\bin;
3.3 安裝驗證
驗證安裝結果,命令行輸入ant -v,出現版本信息則安裝成功
4 ant配置jmeter:就是用ant構建命令來調動執行jmeter接口測試,並生成測試報告
4.1 配置庫文件
將jmeter extras目錄下的ant-jmeter-1.1.1.jar文件拷貝到ant安裝目錄下的lib文件夾中
4.2 配置ant的編譯文件 build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目錄-->
<property name="jmeter.home" value="D:\Jmeter\apache-jmeter-5.1.1" />
<!-- 發送給哪些人-->
<property name="mail_to" value="zhuliang840616@163.com,zhuliang5153@dingtalk.com"/>
<!-- 抄送給哪些人,多個用逗號隔開/-->
<!--property name=""/-->
<property name="report.title" value="接口測試報告"/>
<!-- jmeter生成jtl格式的結果報告的路徑-->
<property name="jmeter.result.jtl.dir" value="D:\Jmeter\apache-jmeter-5.1.1\jmeter_test\result_log\jtl" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="D:\Jmeter\apache-jmeter-5.1.1\jmeter_test\result_log\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" />
<!--定義次build.xml要執行全部的任務-->
<target name="run">
<antcall target="test" />
<antcall target="report" />
<antcall target="mail" />
</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="D:\Jmeter\apache-jmeter-5.1.1\jmeter_test\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-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="${jmeter.result.html.dir}/${ReportName}${time}.txt" loglevel="info" append="no" action="start"/>
<!--執行第三個任務,發送郵件-->
<target name="mail">
<!--讀取輸出的控制台日志文件並寫入郵件正文-->
<loadfile property="email_content" srcFile="${jmeter.result.html.dir}/${ReportName}${time}.txt" encoding="UTF-8"/>
<loadfile property="output" srcFile="${jmeter.result.html.dir}/${ReportName}${time}.html" encoding="UTF-8"/>
<!-- 此處配置SMTP服務器 POP3授權碼 發送郵箱地址 端口 發送郵箱主題-->
<mail tolist="${mail_to}" mailhost="smtp.163.com" mailport="25"
user="zhuliang840616@163.com" password="z999999l" subject="jmeter 測試報告${ReportName}${time}"
messagemimetype="text/html">
<from address="zhuliang840616@163.com" />
<fileset dir="${jmeter.result.html.dir}">
<include name="${ReportName}${time}.html"/>
</fileset>
<message>
擎天項目接口自動化測試報告
${ReportName}${time}
${output}
</message>
</mail>
</target>
</project>
4.3 配置jmeter.properties文檔
找到jmeter.properties文檔,在jmeter/bin目錄下,打開該文檔並編輯,修改jmeter報告輸出格式為xml:改jmeter.save.saveservice.output_format=csv 為jmeter.save.saveservice.output_format=xml,並去掉前面的注釋符號#
4.4 驗證配置,執行構建測試
將之前jmeter的腳本保存, 並將build.xml配置文件放在與測試腳本相同的目錄下
4.5 執行測試
在build.xml所在目錄打開命令窗口(鼠標在空白處按下shift鍵后在右鍵),或者命令行cd到build.xml文件所在目錄,輸入ant run回車,執行測試
4.6 查看測試結果報告
在報告輸出存放路徑下查看是否有jtl和html結果報告,存放路徑在build文檔中也有
5 配置Jenkins,構建持續化集成
5.1 下載安裝包,https://jenkins.io/index.html,安裝過程略
5.2 配置環境變量
JENKINS_HOME 為 D:\Program Files (x86)\jenkins
5.3啟動jenkins
瀏覽器中輸入:http://127.0.0.1:8080/,打開jenkins,配置用戶名、密碼及插件,這里需要配置invoke ant插件、HTML測試報告展示的插件如果插件
5.4、新建並配置一個JOB