Jmeter後置處理器之BeanShell

2021-10-23 13:58:09 字數 3189 閱讀 4911

1.log 列印日誌,寫入資訊到jmeber.log檔案。

2.sampleresult 獲取sampleresult物件,能通過這個物件獲取想要的資訊。

3.response 獲取response物件,能通過這個物件獲取響應資訊。

4.failure 檢視介面調使用能否成功,假如返回false是成功的,true是失敗的。

5.failuremessage 失敗資訊,沒有設定的時候失敗資訊是空的,能set這個資訊。

6.responsedata 獲取response body型別是byte[

]。7.responsecode 返回介面code成功是200。

8.responsemessage 獲取msg成功是ok。

9.responseheaders 獲取介面服務端返回的頭部資訊。

10.requestheaders 獲取使用者端請求的頭部資訊。

11.samplelabel 獲取介面請求的名稱。

12.samplerdata 獲取請求的url和body。

13.ctx 代表上下文資訊,能直接用。

14.vars即jmetervariables,操作jmeter變數,這個變數實際引用了jmeter執行緒中的區域性變數容器(本質上是map),常用方法:

a) vars.get(string key):從jmeter中獲得變數值;

b) vars.put(string key,string value):資料存到jmeter變數中;

15.prev 獲取前面的sample返回的資訊,常用方法:

a) getresponsedataasstring(

):獲取響應資訊。

b) getresponsecode(

) :獲取響應code。

在寫**的時候,可以直接用上面的變數和方法,參考如下例子。

1,首先儲存乙個介面的響應結果,比如在http請求的後面新增beanshell後置處理器(beanshell postprocessor)來儲存http請求的響應結果:

import org.json.*;

//獲取上乙個請求的返回值

string response = prev.

getresponsedataasstring()

;//將返回值轉換為json

jsonobject responsejson =

newjsonobject

(response)

;//獲取responsemessage

string message = responsejson.

getstring

("responsemessage");

log.

info

("message的值:"

+ message)

;//使用vars.put()方法儲存變數message

vars.

put(

"message"

,message)

;//獲取titlelink

string titlelink = responsejson.

getjsonobject

("data").

getstring

("titlelink");

log.

info

("titlelink的值:"

+ titlelink)

;//使用vars.put()方法儲存變數message

vars.

put(

"titlelink"

,titlelink)

;

在後面的其他介面中如何需要使用變數message 和 titlelink,可以使用$ 和 $來獲取變數的值;

變數儲存好後,在需要斷言的介面後面新增beanshell斷言,使用failrue來標識斷言失敗,failuremessage標示斷言失敗的原因,如:

//使用vars.get()方法獲取變數的值

string message= vars.

get(

"message");

if(!message.

equals

("success"))

else

方法二:

直接在需要斷言的介面後面使用beanshell斷言,使用failrue來標識斷言失敗,failuremessage標示斷言失敗的原因,如:

import org.json.*;

//獲取上乙個請求的返回值

string response = prev.

getresponsedataasstring()

;//將返回值轉換為json

jsonobject responsejson =

newjsonobject

(response)

;//獲取responsemessage

string message = responsejson.

getstring

("responsemessage");

log.

info

("message的值:"

+ message);if

(!message.

equals

("success"))

//獲取titlelink

object titlelink = responsejson.

getjsonobject

("data").

get(

"titlelink");

log.

info

("titlelink的值:"

jmeter後置處理器

jmeter 關於 獲取響應頭資訊 1 關於發起請求以後服務端會返回對應請求的資訊,其中包含了部分需要在後面請求中需要使用的值 所以就需要將需要的部分提取出來,對於響應資訊的內容可以通過 後置處理器的 正則提取器,jsonpath 提起器 以及 beanshell提取器即可完成內容提取 對於正則提取...

jmeter 後置處理器

1.1 什麼是關聯?將請求1的輸出 作為 請求2 的輸入,則稱之為關聯,就是介面之間資料存在依賴關係 例如 使用者登入 請求中伺服器返回了token,查詢使用者資訊 請求需要把token返回給伺服器進行驗證 1.2 正則提取器 正則提取器就是可以從請求的響應結果中取到需要的內容,從而實現關聯,正則提...

Jmeter後置處理器

jdbc postprocessor實際上是乙個jdbc request,與jdbc request功能相同,都可以執行sql語句 場景說明 用jdbc request修改了一些資料,當測試完成後,可以用jdbc postprocessor完成使資料恢復之前的 能夠針對單一取樣器來設定執行時錯誤的處...