【发布时间】:2014-05-06 10:28:06
【问题描述】:
我需要在Java 中使用Jmeter 测试Web 服务方法的性能,我发现Jmeter API 提供StandardJMeterEngine 类来运行Jmeter 的测试方法,并使用类型为“ String":
public class JMeterTestFromCode {
public static void main(String[] args) {
// 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();
}
}
我的问题是我正在使用 EJB 的 Web 服务,该 Web 服务使用自定义参数(bean 对象),在我如何通过 Soap 运行它之后:
String ENDPOINT_ADDRESS = "http://server:8080/server-ejb/MyServiceClass?wsdl";
QName SERVICE_DATA_FINDER = new QName(
"http://test.service.com/", "MyServiceClass");
javax.xml.ws.Service service;
service = javax.xml.ws.Service.create(
new URL(ENDPOINT_ADDRESS), SERVICE_DATA_FINDER);
IMyServiceClass finder = service.getPort(IMyServiceClass.class);
MyBean bean = new MyBean();
// bean.set...
// bean.set...
finder.myMethod("foo", bean);
目标是创建一个 Maven 项目,为 Web-Service + 检索测试结果提供自动化性能测试(这就是为什么我需要使用 Java 在 Jmeter 中实现 WS 测试)
如何使用 StandardJMeterEngine 或其他 API 测试我的网络服务?
提前致谢!
【问题讨论】:
-
您查看用户手册了吗?
-
哪个手册用户?你的意思是 JMeterEngine 实现吗?
标签: java web-services jmeter performance-testing