簡介
Jmeter除了提供豐富的組件外,還提供腳本支持,可以通過編寫腳本來豐富Jmeter,實現(xiàn)普通組件無法完成的功能。Beanshell是一種輕量級的Java腳本語言,完全符合Java規(guī)范,內(nèi)置了一些獨特的變量和方法。詳細語法見豆殼官網(wǎng)(http://www.beanshell.org/)。
Jmeter支持多種腳本語言,包括Beanshell、Java和Groovy,其中Beanshell最為全面,提供了Beanshell的很多組件:
1.Beanshell采樣器:beanshell請求,完成beanshell請求組件中定義的腳本函數(shù)
2.Beanshell后處理器:Beanshell后處理器,可以通過編程獲得相應請求的響應結(jié)果
3.Beanshell斷言:復雜的斷言邏輯可以通過編程實現(xiàn)
4.Beanshell預處理器:Beanshell預處理器,可以在發(fā)起請求之前以編程方式對其進行預處理,如編碼或加密
5.豆殼定時器:豆殼定時器,編程實現(xiàn)條件定時功能
6.Beanshell listener:bean shell偵聽器,它監(jiān)控bean shell運行結(jié)果
Beanshell內(nèi)置變量介紹
Beanshell有一些默認的內(nèi)置變量,用戶可以通過它們與JMeter交互。主要變量及其使用方法如下:
log:寫入信息到控制臺中,幫助調(diào)試腳本vars: 操作jmeter變量,生成/更新/獲取當前腳本的jmeter變量props: 操作jmeter屬性,生成/更新/獲取當前腳本的jmeter屬性,使用方法和vars一樣ctx:獲取當前線程上下文,可獲取當前線程的請求信息和相應信息(eg:可以獲取Http請求和響應的所有數(shù)據(jù))prev:獲取當前請求的結(jié)果豆殼采樣器示例
-vars/道具/日志
使用Beanshell Sampler,測試人員可以編寫一些由特定邏輯生成的數(shù)據(jù),并通過vars.get、vars.put或props.get、props.put將相應的變量傳遞給Jmeter腳本
比如有些程序驗證身份證,可以在Beanshell腳本中編寫身份證生成邏輯,通過代碼生成符合數(shù)字和省市代碼驗證的身份證號,然后將生成的身份證號保存為vars或props中的變量,供后續(xù)接口調(diào)用。
Vars.get(String,String)可以在Jmeter中獲取生成的變量
(字符串,字符串)可以創(chuàng)建和更新Jmeter變量
Props.get(String,String)可以獲取Jmeter中生成的屬性
Props.put(String,String)可以創(chuàng)建和更新Jmeter屬性
vars和props的區(qū)別在于,前者是只能在同一個線程組內(nèi)傳遞的變量,而后者是整個測試計劃中可以跨線程組傳遞的屬性。
Log.info(String)可以向控制臺輸出信息,方便代碼調(diào)試
豆殼后處理器示例
- ctx/prev
Ctx內(nèi)置變量可以獲取上下文,通常與Beanshell后置處理器結(jié)合使用,解析請求結(jié)果。具體代碼如下。在Jmeter的Beanshell腳本編輯器中,可以直接引用Jmeter的Jar包。Jmeter Jar包的應用編程接口見官方網(wǎng)站(http://jmeter.apache.org/api/overview-summary.html)
Prev相當于ctx.getPreviousResult,通過prev可以直接得到響應結(jié)果
通過上面的例子,我們對Beanshell編程有了初步的了解。Jmeter Beanshell組件有很多,其中最常用的是Beanshell預處理器、BeanShell后處理器和BeanShell斷言。這些Beanshell組件的接口部分是相似的,但不同的是它們用于請求的不同階段。
不管是什么樣的組件,核心都是掌握Beanshell的內(nèi)置變量和Java編程的基本技能,利用這些技能完成一些定制化的開發(fā)。除了生成變量、解析響應結(jié)果和定制邏輯處理,Beanshell還常用于發(fā)送請求前后的加密和解密。嘗試用Beanshell解鎖Jmeter高級用法~
我知道你會來的
1.《beanshell Jmeter Beanshell 編程簡介》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《beanshell Jmeter Beanshell 編程簡介》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/yule/1514433.html