1. 程式人生 > 實用技巧 >jmeter壓測學習38-通過Jython呼叫Python指令碼

jmeter壓測學習38-通過Jython呼叫Python指令碼

前言

前面在 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)

也可以返回自定義的結果