0
我想使用Apache JMeter提供的API來創建和運行來自Java程序的測試腳本,以使用Jedis插件測試Redis服務器。 我有兩塊代碼:創建並運行一個JMeter測試計劃和一些我想實際執行的Jedis命令。我不知道如何將它們結合在一起。請指點我如何可以將這些命令Jedis在JMeter測試計劃執行:獲取Jedis與JMeter Engine的合作
== JMeter的代碼==
// Engine
StandardJMeterEngine jm = new StandardJMeterEngine();
// jmeter.properties
JMeterUtils.loadJMeterProperties("c:/tmp/jmeter.properties");
HashTree hashTree = new HashTree();
// HTTP Sampler
HTTPSampler httpSampler = new HTTPSampler();
httpSampler.setDomain("www.google.com");
httpSampler.setPort(80);
httpSampler.setPath("/");
httpSampler.setMethod("GET");
// Loop Controller
TestElement loopCtrl = new LoopController();
((LoopController)loopCtrl).setLoops(1);
((LoopController)loopCtrl).addTestElement(httpSampler);
((LoopController)loopCtrl).setFirst(true);
// Thread Group
SetupThreadGroup threadGroup = new SetupThreadGroup();
threadGroup.setNumThreads(1);
threadGroup.setRampUp(1);
threadGroup.setSamplerController((LoopController)loopCtrl);
// Test plan
TestPlan testPlan = new TestPlan("MY TEST PLAN");
hashTree.add("testPlan", testPlan);
hashTree.add("loopCtrl", loopCtrl);
hashTree.add("threadGroup", threadGroup);
hashTree.add("httpSampler", httpSampler);
jm.configure(hashTree);
jm.run();
== Jedis代碼==
private static final String LOCAL_HOST = "localhost";
private static final int PORT = 6379;
private final JedisPool m_jedisPool;
private Jedis m_jedis;
m_jedisPool = new JedisPool(new JedisPoolConfig(), LOCAL_HOST, PORT)
void test() {
m_jedis = m_jedisPool.getResource();
m_jedis.flushAll();
// Run test
Jedis jedis = getExistingJedisInstance();
jedis.set(TEST_KEY, TEST_VALUE).equals("OK");
// After test;
m_jedis.close();
m_jedisPool.destroy();
}
附:我知道Redis Data Set插件,但它不適用於我,因爲它不支持set命令。
謝謝你這麼多德米特里!試圖讓這個代碼工作:) – SeraphimaTW
嗨德米特里。你的建議使用JSR223取樣器幫助了我很多!現在我正在努力解決另一個問題。我的目標是將延遲和吞吐量記錄到每個事務的文件中,然後針對每個方案對延遲和吞吐量的平均值和最大/最小值進行彙總。 – SeraphimaTW
目前我有這樣的代碼:String csvLogFile = JMETER_REPORTS_HOME + testName +「-summary.csv」; ResultCollector csvlogger = new ResultCollector(summer); csvlogger.setFilename(csvLogFile); testPlanTree.add(testPlanTree.getArray()[0],csvlogger)); – SeraphimaTW