jmeter測試接口
jmeter可以做各種接口請求,還可以將所有接口流程化,寫好測試腳本後,同時運行所有接口。
一、get請求
示例:首先,新建一個線程組
在線程組上,新建一個http請求(接口請求)
為了對接口請求結果觀察,再添加一個監聽器:查看結果樹
對http請求進行編輯,填寫對應的信息,運行
或者參數寫在parameters中
點擊運行,查看結果樹,點擊對應請求查看結果。
響應數據中有亂碼,解決辦法:將jmeter安裝目下bin目錄下的jmeter.properties打開,將sampleresult.default.encoding=ISO-8859-1替換為sampleresult.default.encoding=utf-8,同時將該行前的#去掉,重啟jmeter即可
二、post請求
需要將請求方法改為post,參數按要求填寫到parameters中,或者body data中(如果入參事json數據,填寫到body data中)
填好後,點擊運行--查看結果樹。
如果body data中json數據寫中文有亂碼時,如下,解決辦法:jmeter安裝目錄下bin\jmeter.properties中修改默認字體:#jsyntaxtextarea.font.family=Hack 改 jsyntaxtextarea.font.family=宋體 去掉#,重啟jmeter
三、添加cookie
有些接口的操作,前提必須是已經登錄,這時就需要在接口中添加cookie。在上面登錄接口測試中,響應結果中會包含一個cookie,將他添加到需要添加的接口中即可.可用正則表達式提取,也可用插件提取
用插件提取:
1、先從網上下載一個插件https://jmeter-plugins.org/wiki/JSONPathExtractor/,下載後解壓以後將lib和lib/ext中的jar包放到安裝目錄的lib文件夾下重啟jmeter,
在登錄請求下添加後置處理器--json path extractor,然後將登陸響應數據中對應的cookie用該插件存起來,如下:
然後在 學生金幣充值 請求中添加cookie管理器(在特定請求下添加,則cookie只作用於該請求,如果放到線程組下,則作用於該縣城租下所有請求)
運行即可成功。
用正則表達式提取:在登錄請求後,添加正則表達式提取器
學生金幣充值仍需添加cookie。然後運行。成功。
四、添加header
在接口請求中需要添加請求頭攜帶信息時,可添加信息頭管理器,然後再信息頭管理器中填寫相應內容即可。
五、上傳文件
jmeter中請求需要上傳文件
六、參數化
參數化可以讓用戶在腳本運行時,選取不同的數值進行代入,更接近實際。同時當某一數值在腳本中多次使用時,用參數化可以避免改動多處情況。只需要改動參數對應的取值,即可同步更新整個腳本中對應參數
1、文件參數化
例如:正常註冊接口,一次只能註冊一個用戶,如果用上參數化,將需要註冊的信息都放到文件裏,在腳本運行的時候可以一個一個連續讀取,那麽就能同時註冊多個用戶。這裏對應的參數都用一個變量代替,而變量的值來源於參數文件。
這裏用csv文件對參數進行參數化: 首先需要準備好文件。對應參數填寫數據。
準備好數據以後就可以使用了。在請求上添加一個csv data set config
這部分已經配好了,因為文件中有6條數據,如果想要6條數據都被執行的話,就要執行6次,所以還需要在線程組處進行配置
到此配置完成,點運行成功。
2、用戶自定義變量參數化
例:將服務器ip地址進行參數化:
1、在線程上添加用戶自定義變量
接下來所有用到服務器ip地址的地方,都可以用${host}代替
3、函數助手
jmeter提供了一些函數,可以幫助用戶對進行參數化
比如在剛才的username後隨機增加一個數字,就可以這樣使用,直接復制即可取值
函數助手中提供了很多好用的函數,需要的話可以一一實驗
七、關聯
因為在測試過程過有些數據是經常發生變化的,要獲取並使用這些數據,就要使用關聯。
一般關聯用於保存動態的數據。比如一個請求要用到登錄的sessionid,但是因為每次登錄sessionid都是會變化的。這時候就可以用關聯的方法將sessionid提取出來。然後再在請求中引用。
上例寫的添加cookie時,就是用到關聯技術保存cookie。然後再引用。
八、斷言
斷言就是用來驗證結果是否正確。可以對響應結果中做一些判斷
比如登錄的響應數據中包含sign關鍵字。我們就可以添加一個斷言,驗證結果是否含有sign
上面示例表示結果中包含 sign。如果結果中包含,則斷言通過;如果結果中不包含,則會顯示斷言失敗。可以更好地找到失敗原因。
九、jmeter訪問數據庫
jmeter不能直接訪問數據庫,必須先添加對應的jar包。
打開測試計劃頁面,添加需要訪問數據庫對應的jar包
在對應的線程組或線程上進行數據庫配置
按照如下圖示,對數據庫進行配置
配置完成後,可對數據庫進行操作。新建一個jdbc request
query type選擇select,只能寫select語句
選擇callable 增刪改查語句都可以寫
jmeter測試接口