Jmeter Beanshell 編程簡介

簡介html

Jmeter除了提供豐富的組件之外,還提供腳本支持,可經過編寫腳原本豐富Jmeter,實現普通組件沒法完成的功能。Beanshell是一種輕量級的Java腳本語言,徹底符合Java規範,而且內置了一些獨有的變量和方法,詳細語法可參見Beanshell官網(http://www.beanshell.org/)。shell

Jmeter支持多種腳本語言,包括Beanshell,JavaScript和Groovy,其中對Beanshell的支持最爲全面,提供了多種Beanshell的組件:1.Beanshell Sampler:Beanshell請求,完成Beanshell請求組件中定義的腳本功能2.Beanshell Postprocessor: Beanshell後置處理器,可經過編程方式獲取對應請求的響應結果3. Beanshell 斷言:可經過編程方式實現複雜的斷言邏輯4.Beanshell Preprocessor:Beanshell前置處理器,可經過編程方式在發起請求之前作預處理,好比編碼或者加密5.Beanshell Timer:Beanshell計時器,編程實現條件定時功能6. Beanshell Listner:Beanshell監聽器,監聽Beanshell運行結果apache


 

Beanshell內置變量介紹編程

Beanshell有一些默認的內置變量,用戶能夠經過這些變量與JMeter進行交互,其中主要的變量及其使用方法以下:api

log:寫入信息到控制檯中,幫助調試腳本微信

vars: 操做jmeter變量,生成/更新/獲取當前腳本的jmeter變量編輯器

props: 操做jmeter屬性,生成/更新/獲取當前腳本的jmeter屬性,使用方法和vars同樣測試

ctx:獲取當前線程上下文,可獲取當前線程的請求信息和相應信息(eg:能夠獲取Http請求和響應的全部數據)編碼

prev:獲取當前請求的結果加密


 

Beanshell Sampler 示例

- vars/props/log

經過Beanshell Sampler,測試人員能夠編寫一些特定邏輯生成的數據,而且經過vars.get、vars.put 或者props.get、props.put 把相應的變量傳遞到Jmeter腳本當中。

好比有些程序對身份證有校驗,就能夠在Beanshell腳本中編寫身份證生成的邏輯,經過代碼生成知足位數以及省市區編碼校驗的身份證號,而後把生成的身份證號做爲變量保存到vars或者props當中,供後續接口調用。

vars.get(String,String)能夠獲取Jmeter中已經生成的變量 vars.put(String,String)能夠建立和更新Jmeter變量 props.get(String,String)能夠獲取Jmeter中已經生成的屬性 props.put(String,String)能夠建立和更新Jmeter屬性 vars和props的區別是前者是變量,只能在同一線程組內傳遞,後者是屬性,能夠在整個測試計劃中跨線程組傳遞。 http://log.info(String)能夠將信息輸出到控制檯,方便代碼調試


 

Beanshell Postprocessor 示例

- ctx/prev

ctx內置變量能夠獲取上下文,一般和Beanshell PostProcessor結合起來使用,用於解析請求的結果,具體代碼以下所示。在Jmeter的Beanshell腳本編輯器裏能夠直接引用Jmeter的Jar包,Jmeter Jar包的Api參見官網(http://jmeter.apache.org/api/overview-summary.html


 

prev等同於ctx.getPreviousResult(),經過prev能夠直接獲取到響應結果


 

經過上述示例,你們對Beanshell編程有了初步的瞭解,Jmeter Beanshell組件有不少,其中最經常使用的是BeanShell Preprossor,BeanShell Postprocessor和Beanshell斷言,這些Beanshell組件的界面部分大同小異,區別是用在請求的不一樣階段。

不管哪一種組件,最核心的就是掌握Beanshell的內置變量和基礎的Java編程技能,並運用這些技能完成一些定製化的開發。除了生成變量,解析響應結果,定製化邏輯處理之外,Beanshell還經常使用於請求發送先後的加密解密,試着嘗試用Beanshell解鎖Jmeter高級用法吧~

做  者:Testfan Kitty

出  處:微信公衆號:自動化軟件測試平臺

版權說明:歡迎轉載,但必須註明出處,並在文章頁面明顯位置給出文章連接

相關文章
相關標籤/搜索