通過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-standaloneXXX.JAR

把下載的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)

也可以返回自定義的結果

以上就是通過Jython調用Python腳本的詳細內容,更多關於Jython調用Python腳本的資料請關註WalkonNet其它相關文章!

推薦閱讀: