jmeter壓測學習38-通過Jython呼叫Python指令碼
阿新 • • 發佈:2021-01-12
前言
前面在 BeanShell 裡面是通過 java 指令碼實現請求的預處理,jmeter裡面也可以呼叫python的指令碼,需安裝 jython.jar 的外掛.
Jython 是 Python 的純 Java 實現。她無縫地結合了 Java 類與 Python,使使用者能以 Python 語言的語法編寫在 Java 虛擬機器上執行的 軟體
Jpython
Jython 是 Python 的純 Java 實現。她無縫地結合了 Java 類與 Python,使使用者能以 Python 語言的語法編寫在 Java 虛擬機器上執行的 軟體。
它的特點有:與相似的 Java 程式相比,Jython 極大的的減少了程式設計程式碼量。Jython 同時擁有直譯器和編譯器,使其無需編譯就可以測試程式程式碼。
官網下載地址:https://www.jython.org/download
下載 Jython Standalone 版本
把下載的Jython 的jar包放到 jmeter的lib資料夾。重啟jmeter
JSR223 Sampler
新增-取樣器-JSR223 Sampler
選擇 jython2.7 版本,在Script區域寫相應的程式碼,注意這裡的語法是支援python2.7的,3.x的語法不支援。
# 獲取jmeter 引數 user = vars.get("user") print "hello" # 輸出日誌 log.info(u"獲取到的變數user:" + user) # 設定響應資訊 SampleResult.setResponseData("return message"); SampleResult.setResponseCode("502") SampleResult.setSuccessful(False)
變數獲取與日誌
前面定義了使用者變數 user, 變數的獲取依然用 vars.get('var name')
獲取。
這裡print的內容無法輸出到螢幕,可以用log.info() 輸出日誌內容
設定響應
通過SampleResult物件設定響應的結果
# 設定響應資訊
SampleResult.setResponseData("return message");
SampleResult.setResponseCode("502")
SampleResult.setSuccessful(False)
也可以返回自定義的結果