軟件測試 |BeanShell服務(wù)器
BeanShell解釋器有一個非常有用的特性,它表現(xiàn)得的一臺服務(wù)器,可以通過Telnet或者HTTP訪問。
這里沒有安全機制,任何人只要能連接上對應(yīng)端口,就能執(zhí)行任何BeanShell命令。這些命令可以提供對JMeter應(yīng)用程序和主機不受限制的訪問。不要啟動BeanShell服務(wù)器,除非已經(jīng)對端口訪問做了保護,例如,通過防火墻。
如果測試人員確實希望使用BeanShell服務(wù)器,請在jmeter。properties文件中定義如下屬性:beanshell.server.port=9000
在上面的例子中,BeanShell服務(wù)器將會被啟動,并監(jiān)聽端口9000和9001。端口9000將會用于HTTP訪問。端口9001將會用于Telnet訪問。startup.bsh文件將被BeanShell服務(wù)器處理,它可以用于定義各種函數(shù)及初始化變量。文件startup中定義了設(shè)置/打印JMeter及系統(tǒng)屬性的各種方法。測試人員可以在JMeter控制臺中看到如下內(nèi)容:
這里有一個實際例子,假設(shè)測試人員有一個以非GUI模式長期運行的JMeter測試,并且測試人員希望能在測試運行期間不定時改變吞吐率。測試計劃中包含一個恒定的吞吐率定時器,它是以屬性的形式定義的,形如${_P(throughput)}。如下BeanShell命令可以被用于改變測試:
該腳本可以被存儲到一個文件中(如throughput.bsh),接著使用bshclient.jar將其傳遞給BeanShell服務(wù)器。例如:
搜索微信公眾號:霍格沃茲測試學(xué)院