您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源性能測(cè)試工具 > Jmeter
接口性能測(cè)試--JMeter
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/11/6 15:37:25 ] 推薦標(biāo)簽:

  2.多接口性能測(cè)試
  按照上面的方法進(jìn)行測(cè)試,每個(gè)需要測(cè)試的接口和場(chǎng)景都需要寫(xiě)一個(gè)這樣的測(cè)試類,對(duì)于有些具有相似初始化,清理等
  工作,只有具體的那行事務(wù)代碼不一樣的情況,會(huì)有很多重復(fù)的工作。如下:
  可以考慮采用反射的方式來(lái)解決這個(gè)問(wèn)題,尤其是業(yè)務(wù)非常類似的接口和場(chǎng)景。當(dāng)然,反射會(huì)帶來(lái)壓力機(jī)的性能消耗,
  但是這個(gè)可以通過(guò)調(diào)整JMeter的JVM參數(shù)和增加JMeter實(shí)例來(lái)解決。
  1)利用反射后的結(jié)構(gòu)如下:
  2)AbstractServiceClient是一個(gè)抽象基類
package  com . xxx . yyy . perf . base;
import  java.lang.reflect.Method;
import  org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import  org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import  org.apache.jmeter.samplers.SampleResult;
/**
* Comment of AbstractServiceClient
*  @author flynewton
*/
public  abstract  class  AbstractServiceClient  extends  AbstractJavaSamplerClient {
public  Object  invokeTest( String  testName ,  JavaSamplerContext  context ,SampleResult  sample)  {
Method []  methods  =  this . getClass (). getMethods();
for ( Method  m  :  methods)  {
if ( m . getName (). equalsIgnoreCase( testName))  {
try  {
return  m . invoke( this ,  context , sample);
}  catch ( Throwable  t)  {
this . getLogger (). error( "execute method:"  +  testName  +  " falied" ,  t);
}
}
}
return  null;
}
}

上一頁(yè)123下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd