使用Apache JMeter壓測Thrift

來源:互聯網
上載者:User

標籤:表單   code   class   ini   sys   它的   建立   pen   nts   

我這裡以我的一篇文章為範例

http://blog.csdn.net/mn960mn/article/details/50476759

這裡已經有服務端了,先啟動服務端


首先增加maven的依賴

<dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_java</artifactId><version>2.13</version></dependency>
之後。eclipse提示

The following artifacts could not be resolved: commons-math3:commons-math3:jar:3.4.1, commons-pool2:commons-pool2:jar:2.3: Could not find artifact commons-math3:commons-math3:jar:3.4.1 

說是找不到依賴。我去中央倉庫找,的確沒有。暫時的解決方案是:

先下載

org.apache.commons:commons-math3:3.4.1
org.apache.commons:commons-pool2:2.3

這兩個jar到本地。然後,運行以下的命令。安裝到本地maven倉庫

mvn install:install-file -Dfile=d:/tmp/commons-math3-3.4.1.jar -DgroupId=commons-math3 -DartifactId=commons-math3 -Dversion=3.4.1 -Dpackaging=jar
mvn install:install-file -Dfile=d:/tmp/commons-pool2-2.3.jar -DgroupId=commons-pool2 -DartifactId=commons-pool2 -Dversion=2.3 -Dpackaging=jar

注意,這裡要下載上面提示缺失的版本號碼

安裝完之後。再編譯。就沒有錯誤提示了


二:寫一個類,繼承Jmeter的類,在實現方法裡面運行thrift的邏輯

package com.pp.client;import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;import org.apache.jmeter.samplers.SampleResult;import org.apache.thrift.TException;import org.apache.thrift.protocol.TCompactProtocol;import org.apache.thrift.protocol.TProtocol;import org.apache.thrift.transport.TSocket;import org.apache.thrift.transport.TTransport;import org.apache.thrift.transport.TTransportException;import com.pp.calc.Calculator;    /** * 在用jmeter壓測的時候,一個線程會有一個當前類執行個體 */public class ThriftClientTest extends AbstractJavaSamplerClient{private Calculator.Client calc;private TTransport transport;/** * init */public void setupTest(JavaSamplerContext context){super.setupTest(context);transport = new TSocket("127.0.0.1", 9988);            try{transport.open();} catch (TTransportException e){transport.close();throw new RuntimeException(e);}                  TProtocol protocol = new TCompactProtocol(transport);                    calc = new Calculator.Client(protocol);  }/** * close * 關閉相關的資源 */public void teardownTest(JavaSamplerContext context){super.teardownTest(context);transport.close();}/** * 這裡就是詳細調用的邏輯 */public SampleResult runTest(JavaSamplerContext context){SampleResult result = new SampleResult();          result.sampleStart();          try{System.out.println(calc.add(4, 5));result.setSuccessful(true);  } catch (TException e){result.setSuccessful(false);  }                result.sampleEnd();          return result;  }  }

寫完之後,運行mvn clean package打包

然後,把打包的jar和libthrift-0.9.3.jar放到  apache-jmeter-2.13\lib\ext  檔案夾中去(假設還有其它的依賴,也須要把依賴拷貝過來)


三:啟動jmeter

在建立的線程組裡面建立Sampler -> Java請求

在出現的表單中,類名稱 右邊的下拉框裡面選擇com.pp.client.ThriftClientTest 




最後,配置對應的線程數,迴圈次數,就能夠進行壓力測試了

使用Apache JMeter壓測Thrift

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.