標籤:表單 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