前言
jmeter + ant + jenkins 本篇將開始學習Linux下搭建,完成持續集成測試的demo。
一、必備環境
1、jdk(docker安裝jenkins的小伙伴請忽略此步驟)
2、jmeter
3、ant
4、jenkins(本篇是docker安裝的jenkins,其它方式安裝也類型一樣部署)
5、git 或 gitlab 或無代碼托管(build.xml、jmx、等樣式代碼)
以上必備環境如果沒有安裝好那么請詳細看這篇(jenkins/git/gitlab需自行安裝,這里不展開):https://www.cnblogs.com/gsxl/p/13660988.html
安裝docker請參考:https://www.cnblogs.com/gsxl/p/11674378.html
【docker-jenkins重點】
1、將jmeter目錄掛載到jenkins容器目錄;
我docker-jenkins掛載目錄為/root/jenkins/,我已將jmeter、ant掛載至此,如下:
[root@iZbp19lugf22zbsubsf1y6Z jenkins]# pwd /root/jenkins [root@iZbp19lugf22zbsubsf1y6Z jenkins]# ll total 292 drwxr-xr-x 6 root root 4096 May 10 21:42 apache-ant-1.9.15 drwxr-xr-x 8 root root 4096 Jan 2 1970 apache-jmeter-5.3
2、將ant目錄掛載到jenkins容器目錄,且設置環境變量;
設置容器內部環境變量:
①查看jenkins容器:
[root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps a14a6692e225 jenkinsci/blueocean "/sbin/tini -- /usr/…" 8 months ago Up 2 hours 0.0.0.0:50000->50000/tcp, 0.0.0.0:3006->8080/tcp jenkins [root@iZbp19lugf22zbsubsf1y6Z ~]#
②進入容器bash:
[root@iZbp19lugf22zbsubsf1y6Z ~]# docker exec -it a14a6692e225 /bin/bash bash-4.3$
③設置ant環境變量,且執行生效;
將以下復制粘貼至最后一行:vi /etc/profile
# ANT_HOME
ANT_HOME=/var/jenkins_home/apache-ant-1.9.15
export PATH=$PATH:$ANT_HOME/bin
export PATH=$PATH:$ANT_HOME/lib
bash-4.3$ vi /etc/profile export CHARSET=UTF-8 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin export PAGER=less export PS1='\h:\w\$ ' umask 022 for script in /etc/profile.d/*.sh ; do if [ -r $script ] ; then . $script fi done # ANT_HOME ANT_HOME=/var/jenkins_home/apache-ant-1.9.15 export PATH=$PATH:$ANT_HOME/bin export PATH=$PATH:$ANT_HOME/lib
④環境變量生效及驗證版本:
命令:source /etc/profile
bash-4.3$ source /etc/profile a14a6692e225:/$ ant -version Apache Ant(TM) version 1.9.15 compiled on May 10 2020 a14a6692e225:/$
3、build.xml需改為jenkins容器內部目錄路徑;總共五個地方,詳細看build.xml文件
如我的:/var/jenkins_home/workspace/workName
二、jenkins設置
如未在Linux下安裝 jenkins 可以參考這篇的 docker 安裝 jenkins:https://www.cnblogs.com/gsxl/p/12129333.html (本篇將是把jmeter、ant都掛載到jenkins容器目錄)
1、開啟報告樣式(否則你的報告沒有css、js,因為jenkins會屏蔽防止被攻擊),所以需要在,jenkins設置中的【Script Console】“腳本命令行”執行一條語句:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
2、安裝插件(安裝后重啟jenkins):HTML Publisher plugin
直接搜索安裝:HTML Publisher plugin
3、新建job【自由風格項目】
這是我的git托管地址:https://github.com/git-gsxl/jmeter-ant.git build.xml文件中需要改5個地方
①參數化,添加:branch (構建可以指定分支名稱)
②Git:代碼托管地址
③ant 命令運行
④報告目錄編寫
以上步驟詳細看下面圖,另外演示:設置遠程構建令牌
4、手動觸發構建,輸入git或其它代碼托管的分支名稱,執行后查看報告
最后還可以加入釘釘提醒:
加入shell:
#!/bin/bash -l
echo "釘釘通知" curl 'https://oapi.dingtalk.com/robot/send?access_token=你的釘釘機器人token' \ -H 'Content-Type: application/json' \ -d ' { "msgtype": "text", "text": {"content": "總結報告:http://ip:3006/job/'$JOB_NAME'/'$BUILD_ID'/InterfaceReport"}, "at": {"isAtAll": true} }'
1、提醒查看:
2、機器人發的消息:
3、點擊鏈接跳轉進入:
當然shell還有這強大的功能,三劍客的使用你可以對html報告進行一個讀取,查看多少成功率、總運行用例多少、返回超2s的多少,失敗的有多少數量等等;
舉個例子:我們要顯示,①總接口數量:xxx ②成功率:xxx
是可以通過shell三劍客來讀html報告得出結果,再通過變量的方式傳入釘釘發送參數,這樣能更完善釘釘通知多能查看到的信息。
附加:
Windows搭建傳送門:https://www.cnblogs.com/gsxl/p/13655788.html
Linux搭建傳送門:https://www.cnblogs.com/gsxl/p/13694071.html
最后歡迎來大家QQ交流群一起學習:482713805