jmeter中指令碼資料分離並生成報告

2022-04-07 11:26:47 字數 3103 閱讀 5631

目的

將測試專案的介面通過csv檔案整理後,通過jmeter配置呼叫該檔案已實現介面自動化並生成對應html報告。該方法能夠快速的做介面回歸,便捷的指令碼維護(只需修改csv檔案對應資訊即可),能高效的實現非**的介面自動化。

思路梳理

1.建立全域性ip及埠,所有介面url拼接時前半段自動新增。

2.新增全域性資訊頭(head),介面請求時帶入該head。

3.建立登入請求並獲取token以便後面介面全域性呼叫。

4.新增執行緒除新增csv配置後,在csv中做好字段分類,然後供呼叫。

5.新增if控制器針對介面型別做分類

6.執行對應非gui命令後生成報告

實現步驟

1、首先建立公共的請求位址。

2、建立

資訊頭管理器,填寫公共的且必須的

head

資訊。可以在登入時檢視到,逐步填寫完整。

3、建立

setup(登入)

執行緒組,保持預設值即可,因為再執行介面自動化或者效能測試時,登入只需要一次即可。所以這裡執行緒數及迴圈次數都為1。

4、在setup

下新建http

登入請求,並新增正則提取器提取登入後的

token

。這裡的傳參用了【訊息體資料】,在填寫時注意搞清楚介面報文的傳輸格式時

data

還是json

串。

在請求下新增響應斷言判斷登入是否成功。新增正則提取器,獲取token值,並新增後置處理器

debug postprocessor

以便觀察提取內容是否正確。

正則提取器:

正規表示式為"token":"(.+?)",表示獲取欄位為

token

的全部內容

後置處理器debug postprocessor:

預設即可,用於察看提取內容

察看結果樹:

可以看到提取的token內容

5、在請求的中新增

beanshell

取樣器來配置

token

作為全域性變數使用。

6、重新建立乙個執行緒組,並新增資訊頭管理器填寫請求中所需的鍵值對,

token:$

。(上個執行緒組新增的全域性變數

7、接著並行新增迴圈控制器來控制

csv呼叫的次數,這裡選擇迴圈次數為「永遠」,配合設定

csv檔案設定,可根據檔案行數來新增請求數。

8、在該控制器下新增配置原件「

csv資料檔案設定」,先建立

csv檔案按整理的介面建立對應欄位並新增必填引數及斷言內容。

在配置原件中填寫與檔案字段對應的資訊。其中變數名用西文逗號隔開,其他的選項按需要填寫即可。

9、在迴圈控制器下新增乙個if控制器,按條件來執行

csv檔案中的資料。這裡條件的語法格式注意

"$" == "h"

10、在if控制器下按介面型別再次分別新增

if控制器,這裡按

get、

post

做了兩類,新增兩個控制器即可,同樣的條件語句寫法。

配置get請求引數,名稱按自己的習慣引數化拼接名字,請求路徑同樣按引數化拼接即可。

因為get請求是在

url後面拼接的

param

,所以這裡是直接在路徑中吧

url和

parameter

引用拼接了。

配置post請求引數同理,只是在

url和引數上有所不同。

斷言可新增乙個或多個,可根據介面的報文來制定斷言內容,這裡斷言欄位有兩個。

**post的介面只能讀取

parameter

中的乙個字段內容,還無法讀取

json

串,還需優化。(有解決方案的歡迎指點!)

至此jemter的資料準備工作已經完成,介面也按介面文件除錯成功。報告當前用的是

jmeter

自帶的報告生成模板

dashboard

。在非gui模式下,首先進入資料存放的目錄。

執行jmeter -n -t **(指令碼).jmx -l .\reports\result.jtl

生成jtl檔案,刪除

reports

目錄下檔案後再執行

jmeter  -g .\reports\result.jtl -o .\reports\result.html,生成的測試報告就很直觀的看到了,只是對於報錯的介面,還沒做錯誤日誌的列印和記錄,待後期優化指令碼。

Shell指令碼 資料清洗

需要做的任務是將上圖類似的格式的檔案進行處理,將年月日小時分別提取出來放到每行的行尾 上圖已清洗好 自己的思路是先用cut命令將每行的年月日小時提取出來,分別給乙個變數,然後再迴圈利用sed命令將年月日小時複製到行尾 實現起來感覺有問題,因為sed命令不熟,sed i不知道能不能實現 簡單了解一下s...

jmeter生成測試資料python指令碼

create table usertesting id int username char 30 password char 30 建立usertesting f讀取儲存此路徑的txt檔案,如果該路徑下該檔案不存在則建立新的 f e jmeter no gui user.txt 匯入mysql模組 ...

jmeter多種資料庫指令碼

可根據不同的查詢型別設定 jdbc請求中的 query type 一 單條查詢語句 query type select statement 二 多條查詢語句 包括增刪改查 query type callable statement 另外jdbc配置元件中的 database url末尾加上?allo...