日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用JMeter測試你的EJB

對EJB進(jìn)行一些性能基準(zhǔn)測試是非常有必要和有幫助的,測試EJB的方法和工具有很多,不過我最近發(fā)現(xiàn),Apache JMeter是進(jìn)行基準(zhǔn)測試的一個(gè)優(yōu)秀工具??上У氖牵琂Meter沒有提供一個(gè)可測試任意EJB的通用取樣器(sampler),不過,我們可以自己動手來創(chuàng)建一個(gè)。
 
首先,讓我們簡單的了解一下Apache JMeter,它是一個(gè)100%的純Java桌面應(yīng)用,可用于壓力測試和性能測量。它最初被設(shè)計(jì)用于Web應(yīng)用測試但后來擴(kuò)展到其他測試領(lǐng)域。

博州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,博州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為博州上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的博州做網(wǎng)站的公司定做!

在本篇文章中,我使用JBoss應(yīng)用服務(wù)器來運(yùn)行我的EJB。使用其它容器的實(shí)現(xiàn)過程應(yīng)該也非常類似。

1、首先為EJB創(chuàng)建一個(gè)工廠(factory)類

我們需要做的第一件事情是,創(chuàng)建一個(gè)簡單的Singleton factory class,以為你的測試EJB客戶端實(shí)例。參考代碼如下:

 
 
 
  1. public class MyServiceFactory {   
  2.  
  3.   private static final Log log = LogFactory.getLog(MyServiceFactory.class);   
  4.  
  5.   private static MyService service;   
  6.  
  7.   private static MyServiceFactory me;   
  8.  
  9.   private MyServiceFactory() { }   
  10.  
  11.   static {   
  12.  
  13.   MyServiceFactory.me = new MyServiceFactory();   
  14.  
  15.   }   
  16.  
  17.   public static MyServiceFactory getInstance() {   
  18.  
  19.   return MyServiceFactory.me;   
  20.  
  21.   }   
  22.  
  23.   public MyService getService() {   
  24.  
  25.   if (MyService.service == null) {   
  26.  
  27.   try {   
  28.  
  29.   log.info("Loading the service...");   
  30.  
  31.   Context ctx = new InitialContext();   
  32.  
  33.   service = (MyService)ctx.lookup("MyAction/remote");   
  34.  
  35.   if (service == null) {   
  36.  
  37.   log.error("Didn't get the service!");   
  38.  
  39.   }   
  40.  
  41.   } catch (NamingException e) {   
  42.  
  43.   log.error("Error looking up the remote service", e);   
  44.  
  45.   return null;   
  46.  
  47.   }   
  48.  
  49.   }   
  50.  
  51.   return service;   
  52.  
  53.   }   
  54.  
  55.   }  

2、編寫測試代碼

接下來我們需要自己編寫測試EJB代碼,為了實(shí)現(xiàn)這個(gè)目的,我們可以對JMeter的org.apache.jmeter.protocol.java.sampler包中的AbstractJavaSamplerClient類進(jìn)行擴(kuò)展。這個(gè)抽象類具有一個(gè)runTest方法,我們需要對其進(jìn)行重寫(override),使用這個(gè)方法來實(shí)現(xiàn)實(shí)際的測試。另外,我們還將重寫getDefaultParameters方法,以使其提供某些合理的默認(rèn)值,它們將在JMeter圖形應(yīng)用界面中

 
 
 
  1. package us.mikedesjardins.demo.jmeter;   
  2.  
  3.   import org.apache.jmeter.config.Arguments;   
  4.  
  5.   import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;   
  6.  
  7.   import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;   
  8.  
  9.   import org.apache.jmeter.samplers.SampleResult;   
  10.  
  11.   public class DigitalContentServiceEJBTestSampler extends AbstractJavaSamplerClient {   
  12.  
  13.   public SampleResult runTest(JavaSamplerContext context) {   
  14.  
  15.   SampleResult results = new SampleResult();   
  16.  
  17.   MyService service = MyServiceFactory.getInstance().getService();   
  18.  
  19.   results.sampleStart();   
  20.  
  21.   Long param1 = context.getLongParameter("PARAM_1");   
  22.  
  23.   String param2 = context.getStringParameter("PARAM_2");   
  24.  
  25.   MyResult result = service.myMethod(param1, param2);   
  26.  
  27.   if (result != null) {   
  28.  
  29.   results.setSuccessful(true);   
  30.  
  31.   results.setResponseCodeOK();   
  32.  
  33.   results.setResponseMessage("'myResult:" + myResult);   
  34.  
  35.   } else {   
  36.  
  37.   results.setSuccessful(false);   
  38.  
  39.   }   
  40.  
  41.   results.sampleEnd();   
  42.  
  43.   return results;   
  44.  
  45.   }   
  46.  
  47.   @Override   
  48.  
  49.   public Arguments getDefaultParameters() {   
  50.  
  51.   Arguments args = new Arguments();   
  52.  
  53.   args.addArgument("PARAM_1", "4815162342");   
  54.  
  55.   args.addArgument("PARAM_2", "Iculus");   
  56.  
  57.   return args;   
  58.  
  59.   }   
  60.  
  61.   }   

3、運(yùn)行JMeter

JMeter的擴(kuò)展lib目錄是${JMETER_INSTALL_LIB}/lib/ext。你需要把所有EJB客戶端所需要的jar文件拷貝到這個(gè)目錄中。如果你使用的是JBoss,則需要把jbossall-client.jar拷貝到這個(gè)目錄中;對于其它應(yīng)用服務(wù)器,則拷貝類似的客戶端jar文件到這個(gè)目錄。

當(dāng)你啟動JMeter后,你的新取樣器(sampler)將會出現(xiàn)在它的Sampler菜單中,這樣你就可以使用它來測試EJB了。


網(wǎng)站欄目:使用JMeter測試你的EJB
文章來源:http://www.5511xx.com/article/cojjojc.html