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