1. 程式人生 > 其它 >jmeter獲取響應體內容並正則匹配所需內容,對內容詳情去重處理

jmeter獲取響應體內容並正則匹配所需內容,對內容詳情去重處理

前言: 業務壓測時需要獲取介面的響應資料並儲存進行分析,當前是需要對id生成的結果進行是否重複性校驗

一、模板圖

二、正則匹配表示式提取器


正則提取器欄位說明

  1. Apply to,是指你提取的變數要應用的範圍,需要注意的是,Jmeter Variable是指應用到全域性,也就是跨執行緒的。
  2. 要檢查的響應欄位,是指你的正則表示式的提取範圍,主體應該是整個response,單選body就是指在body裡找,其它選項根據字面意思,就不再贅述。
  3. 引用名稱,是我們自定義的一個變數名稱,也就是提取出來的值的變數名稱,例如我給它定義為“var”,那麼正則提取出來的值就存在var裡,之後如果要用,就使用el表示式,也就是${var(剛剛定義的名稱)}的方式來使用。
  4. 正則表示式,這裡寫提取變數用的正則表示式。
  5. 模板,這裡是指你提取多少個變數(如果在正則表示式中有多個提取表示式),一般我們提取一個就夠了,模板採用$N$的方式,N代表數量,例如,我們設立一個只提取1個值的模板,就寫作$1$。
  6. 匹配數字,也就是提取匹配到的第幾個值,例如寫1就是從匹配到的值裡選取第一個。
  7. 預設值,也就是如果提取不到,那麼預設給一個值替換提取結果。

配置結果

三、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)

校驗去重前後文件的行數是否發生變化就行,如果要知道詳細哪個欄位重複了需要再研究下