jmeter獲取響應體內容並正則匹配所需內容,對內容詳情去重處理
阿新 • • 發佈:2022-03-31
前言: 業務壓測時需要獲取介面的響應資料並儲存進行分析,當前是需要對id生成的結果進行是否重複性校驗
一、模板圖
二、正則匹配表示式提取器
正則提取器欄位說明
- Apply to,是指你提取的變數要應用的範圍,需要注意的是,Jmeter Variable是指應用到全域性,也就是跨執行緒的。
- 要檢查的響應欄位,是指你的正則表示式的提取範圍,主體應該是整個response,單選body就是指在body裡找,其它選項根據字面意思,就不再贅述。
- 引用名稱,是我們自定義的一個變數名稱,也就是提取出來的值的變數名稱,例如我給它定義為“var”,那麼正則提取出來的值就存在var裡,之後如果要用,就使用el表示式,也就是${var(剛剛定義的名稱)}的方式來使用。
- 正則表示式,這裡寫提取變數用的正則表示式。
- 模板,這裡是指你提取多少個變數(如果在正則表示式中有多個提取表示式),一般我們提取一個就夠了,模板採用$N$的方式,N代表數量,例如,我們設立一個只提取1個值的模板,就寫作$1$。
- 匹配數字,也就是提取匹配到的第幾個值,例如寫1就是從匹配到的值裡選取第一個。
- 預設值,也就是如果提取不到,那麼預設給一個值替換提取結果。
配置結果
三、BeanShell 後置處理程式
FileWriter fstream = new FileWriter("/opt/a.txt",true); BufferedWriter out = new BufferedWriter(fstream); out.write(vars.get("number")+"\n"); out.close(); fstream.close();
四、檔案去重處理
import pandas as pd # 讀取txt train_data = pd.read_csv(r'C:\Users\MeetYou\Desktop\hah.txt', sep=' ', encoding='utf-8', # index_col=0, header=None) # # 刪除特定行(包含'hello'的行) # train_data[train_data[0].apply(lambda x: 'hello' not in x)] # 去重 train_data.drop_duplicates(inplace=True) train_data.set_index(0, inplace=True) # 寫入txt train_data.to_csv(r'C:\Users\MeetYou\Desktop\heh.txt', sep=' ', encoding='utf-8', header=None)
校驗去重前後文件的行數是否發生變化就行,如果要知道詳細哪個欄位重複了需要再研究下