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