1. 程式人生 > >jmeter測試接口

jmeter測試接口

上傳 https fff tro 還需要 請求 技術 查看 path

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測試接口