網上搜索出jmeter壓測結果解析成html文件的博客分享很多,但是並不能達到我自己的測試預期,因此采用Python解析jtl文件,解析結果直接展示用例通過和失敗的數目,以及失敗的用例標題,如下圖所示:

搭建步驟:
1. 安裝tomcat
2. 安裝jenkinsb並進行配置
其他:使用Python解析jtl文件
一、 安裝tomcat
1.1 下載tomcat安裝包
1.2 拷貝文件到Library目錄下並解壓,解壓命令:tar -xzvf xxxxxxxx.tar.gz
1.3 進入解壓后的目錄/bin
1.4 啟動服務,啟動命令:star.sh
1.5 使用瀏覽器輸入localhost+端口號,檢查是否啟動成功,啟動成功如下圖

如果沒有啟動成功,可以去logs下查看啟動日志,查找失敗原因
安裝步驟粗略描述,詳細步驟需要的話可以自己百度
二、安裝jenkins
2.1 進入jenkins官網下載war包

2.2 把war包放入tomcat的webapps目錄下,重啟tomcat
2.3 在瀏覽器輸入localhost:8080/jenkins就可以訪問jenkins了
這里粗略記錄了jenkins的安裝,具體怎么配置可自行百度
三、Python解析jtl文件
#把jmeter執行結果jtl文件中的所有httpSample存放到一個list中 def getAllCase(file): caselist = [] f = open(file,encoding='utf-8') for line in f.readlines(): if line.startswith('<httpSample'): line = line[12:-2] caselist.append(line) # print(caselist) return caselist #處理allcase,取出s,lb和rc作為字典存到list中 def caselDicList(caselist): casediclist = [] #每條case是一個字典,把所有case存放到list里面 # print(caselist) for case in caselist: # print(case) #一條case,包含sample中的所有 casedic={} case_list = case.split(" ") for i in case_list: if i.__contains__("="): key = i.split("=")[0] casedic[key] = i.split("=")[1] casediclist.append(endCase(casedic)) # print(casediclist) return casediclist #把casedic做處理,只保留s,lb,rc def endCase(casedic): case_pre = casedic case_aft = {} for i in case_pre: if i == "s" or i == "lb" or i == "rc": case_aft[i] = case_pre.get(i) return case_aft #分析結果 def result(casediclist): pass_nums = 0 fail_nums = 0 fail_casediclist = [] for casedic in casediclist: if casedic.get("s").__contains__('true'): pass_nums = pass_nums+1 else: fail_nums = fail_nums+1 print("失敗的用例標題為:"+casedic.get("lb")) fail_casediclist.append(casedic) print("通過的用例數為:"+str(pass_nums)) print("失敗的用例數為:"+str(fail_nums)) caselist = getAllCase('mpp.jtl') #這里傳入的是jtl的絕對路徑 casediclist = caselDicList(caselist) result(casediclist)
四、配置jenkins
4.1 新建一個自有項目的job


4.2 設置定定時運行,參考定時構建語法
定時器構建語法
* * * * *
星號中間用空格隔開
- 第一個*表示分鍾,取值0~59
- 第二個*表示小時,取值0~23
- 第三個*表示一個月的第幾天,取值1~31
- 第四個*表示第幾月,取值1~12
- 第五個*表示一周中的第幾天,取值0~7,其中0和7代表的都是周日
用法舉例:
- 每30分鍾構建一次:
H代表形參
H/30 * * * * - 每2個小時構建一次:
H H/2 * * * - 每天的8點,12點,22點,一天構建3次: (多個時間點中間用逗號隔開)
0 8,12,22 * * * - 每天早上8點到晚上6點每三小時檢查一次
H 8-18/3 * * *

4.3 執行shell腳本
分兩步執行
第一步執行jmeter: jmeter -n -t xxxxx.jmx -l xxxxxxx.jtl
第二步執行Python解析jtl:python xxxx.py

保存后,手動觸發構建出現第一張圖片的結果
其中py文件就是步驟三種的代碼,解析jtl文件使用
!!!!補充!!!!
jmeter解壓后默認運行的不是xml格式的jtl文件,所以需要修改配置,配置文件在bin目錄下:jmeter.properties

這樣執行后的jtl文件內容是xml格式的,自己寫的py只能解析xml格式的jtl文件。
