1.1目的
本檔案主要是針對jmeter基于linux的介面自動化框架內容的介紹,
1.2范圍
本檔案主要的閱讀物件為測驗人員和相關負責人,或者有興趣了解的其他測驗人員,
1.3背景
jmeter作為一款開源輕便的介面測驗工具,極大的方便了我們的介面自動化測驗作業;但是如何把jmeter和其他工具結合起來,實作自動化運行,釋放部分人力以提升效率,是我們需要去研究的方向,并且怎么樣才能達到輕便化部署的效果也是我們需要去研究并給出解決方案的,本文所介紹的介面自動化框架就解決了上述的問題,
1.4工具與環境
Jmeter5.0、jdk1.8、linux作業系統
2.1框架部署
2.1.1安裝linux計劃任務
一般正常安裝的linux服務器會自帶cron計劃任務,如果沒有的話請執行下面的命令
1.執行yum -y install vixie-cron命令;
2.有時候發現無法yum安裝vixie-cron,我們可以執行命令:yum -y update,先update下yum倉庫;
3.然后執行命令:yum search vixie-cron,查詢下具體的包裝包名稱;
4.查到命令包具體名稱再執行yum安裝命令,例如:yum -y install cronie.x86_64,
2.1.2添加linux定時任務
1.添加定時任務,在編輯cron服務時,有一些格式和約定,輸入命令:crontab -u root -e;
2.進入vi編輯模式,在后面輸入定時任務執行內容,例如:
*/5 * * * 1-5 /jiangroom_test/script/jiangroom_signapp/post_jiangroom_signapp.sh >/dev/null 2>&1;
3.注意sh檔案需要被賦予可執行權限,執行命令:chmod +x post_jiangroom_signapp.sh;
4.注意定時任務的格式檢查,檔案頭部需要包含:#SHELL=/bin/bash,否則執行會失敗;
5.定時任務的日程運算式解釋如下:
# 基本格式 :
# * * * * * command
# 分 時 日 月 周 命令
# 第1串列示分鐘1~59 每分鐘用*或者 */1表示
# 第2串列示小時1~23(0表示0點)
# 第3串列示日期1~31
# 第4串列示月份1~12
# 第5列標識號星期0~6(0表示星期天)
# 第6列要運行的命令
注意事項:
1.定時清除linux服務器郵件,防止占用磁盤空間過多;
2.centos6下重啟crontab服務讓新配置的定時任務生效:service crond restart;
3.centos7下重啟crontab服務需要用這個命令:/bin/systemctl restart crond.service,
4.每條 Job 執行完畢之后,系統會自動將輸出發送郵件給當前系統用戶,榷訓月累,非常的多,甚至會撐爆整個系統,所以每條 Job 命令后面進行重定向處理是非常必要的: >/dev/null 2>&1 ;前提是對 Job 中的命令需要正常輸出已經作了一定的處理, 比如追加到某個特定日志檔案,
2.1.3配置shell腳本檔案命令
1.添加重繪系統環境變數的命令(假定cron不知道所需要的特殊環境,所以要在shell腳本中source環境變數):
source /etc/profile
2.添加洗掉上一次的log日志、jtl和html報告的命令:
rm -rf /jiangroom_test/script/jiangroom_signapp/jtl/jiangroom_signapp.jtl
rm -rf /jiangroom_test/script/jiangroom_signapp/html/iangroom_signapp_Report.html
rm -rf /jiangroom_test/script/jiangroom_signapp/html/jiangroom_signapp.html
3.添加呼叫jmeter并生成jtl報告的命令:
cd /jiangroom_test/tools
apache-jmeter-5.0/bin/jmeter.sh -n -t /jiangroom_test/script/jiangroom_signapp/jmx/
jiangroom_signapp.jmx -l /jiangroom_test/script/jiangroom_signapp/jtl/jiangroom_signapp.jtl
注:其中jmeter需要被賦予可執行權限 chmod +x /apache-jmeter-5.0/bin/jmeter.sh
4.添加將jtl格式轉換成html格式作為附件的命令:
xsltproc/jiangroom_test/template/jmeter_email_report_v1.4_fujian.xsl /jiangroom_test/script/
jiangroom_signapp/jtl/jiangroom_signapp.jtl > /jiangroom_test/script/jiangroom_signapp/html/
jiangroom_signapp_Report.html
5.添加將jtl格式轉換成郵件中html格式(用于嵌套在郵件中,只展示失敗的請求資料):
xsltproc/jiangroom_test/template/jmeter_detail_report_v1.4.xsl/jiangroom_te st/script/
jiangroom_signapp/jtl/jiangroom_signapp.jtl >/jiangroom_test/script/jiangroom_signapp/
html/jiangroom_signapp.html
6.添加mutt發送帶html附件的郵件,郵件正文顯示html報告部分內容的命令(執行成功不發送郵件提醒,執行失敗發送郵件提醒,可根據專案需求自己調整策略):
grep "success</h2>" /jiangroom_test/script/jiangroom_signapp/html/
jiangroom_signapp.html > /dev/null
if [ $? -eq 0 ]; then
echo "執行成功,不發送郵件!"
else
cat /jiangroom_test/script/jiangroom_signapp/html/jiangroom_signapp_Report.html |mutt -s
"介面測驗報告 -e "my_hdr from:mcc@jiangroom.com" -e 'set content_type="text/html"'
test@qq.com -a /jiangroom_test/script/jiangroom_signapp/html/jiangroom_signapp_Report.html
fi
3.1 環境部署
3.1.1 安裝和配置msmtp
下載最新版本的msmtp安裝包,并放入linux服務器,百度搜索下載即可;
1.解壓安裝包,解壓在/usr/local目錄下:
tar xf msmtp-1.8.4.tar.xz
2.安裝msmtp(注意下面特殊情況,非阿里云郵箱可以不用關注下面的情況):
cd /usr/local/msmtp-1.8.4
./configure --prefix=/usr/local/msmtp
make
make install
#特殊情況(阿里云郵箱里云客服確認對smtp服務的加密埠465是沒有封閉的,于 是我們就可以利用加密埠進行,在編譯的安裝時候記得一定要加上 --with-ssl=openssl,否則msmtp不支持ssl)
cd /usr/local/msmtp-1.8.4
./configure --prefix=/usr/local/msmtp --sysconfdir=/usr/local/msmtp/etc --with-ssl=openssl
make
make install
3.進入msmtp目錄下新建etc目錄,并新建配置msmtprc檔案:
cd /usr/local/msmtp
mkdir etc
vim /usr/local/msmtp/etc/msmtprc
4.配置.msmtprc檔案(輸入以下內容),注:需要打開發件服務器,操作步驟:打開郵箱設定->賬號->服務器,勾選發件服務器選項,埠號默認改為25即可(注意上面特殊情況,阿里云郵箱需要埠號默認改成465):
account default
auth login
host mail.jiangroom.com
port 465
from mcc@jiangroom.com
auth plain
user mcc@jiangroom.com
password change520.
logfile /usr/local/msmtp/msmtp.log
#特殊情況(如果是阿里云郵箱,則需要支持openssl,所以需要yum安裝openssl,然 后msmtprc檔案需要多加以下3個配置項):
tls on
tls_certcheck off
tls_starttls off
#而且要安裝依賴yum -y install gcc gcc-c++ gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel
5.修改msmtprc的權限:
chmod 600 /usr/local/msmtp/etc/msmtprc
3.1.2 安裝和配置mutt
1.安裝mutt工具:
yum -y install mutt
2.編輯mutt組態檔(Muttrc):
vim /etc/Muttrc
3.配置.muttrc檔案(輸入以下內容):
set sendmail="/usr/local/msmtp/bin/msmtp"
set charset="utf-8"
set rfc2047_parameters=yes
set envelope_from=yes
set use_from=yes
set from=mcc@jiangroom.com
set realname="測驗部"
set assumed_charset="GB18030"
set locale="zh_CN.UTF-8"
set send_charset="UTF-8"
charset-hook !UTF-8 GB18030
charset-hook ^us-ascii$ GB18030
auto_view text/html
set editor="vim"
#注意有些centos的機器沒有默認安裝xsltproc命令包,會導致無法轉換jtl報告為 html報告,我們只需要執行以下命令即可(xsltproc命令包是基于libxslt工具的):
yum -y install libxslt
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/317880.html
標籤:其他
