目的:
將測試專案的介面通過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...