在Java中使用Jmeter测试Web服务性能

在Java中使用Jmeter测试Web服务性能,java,web-services,jmeter,performance-testing,Java,Web Services,Jmeter,Performance Testing,我需要在Java中使用Jmeter测试web服务方法的性能,我发现JmeterAPI提供StandardJMeterEngine类,通过Jmeter运行测试方法,并使用类型为“String”的参数: 我的问题是,我正在使用EJB的web服务,该web服务使用自定义参数(bean对象),下面是我如何通过Soap运行它: String ENDPOINT_ADDRESS = "http://server:8080/server-ejb/MyServiceClass?wsdl"; QName SERVI

我需要在
Java
中使用
Jmeter
测试web服务方法的性能,我发现
Jmeter
API提供
StandardJMeterEngine
类,通过
Jmeter
运行测试方法,并使用类型为“
String
”的参数:

我的问题是,我正在使用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服务提供自动性能测试并检索测试结果(这就是为什么我需要使用Java在Jmeter中实现WS-test)

如何使用StandardJMeterEngine或其他API测试我的web服务


提前谢谢

从Java代码测试您的服务有什么具体原因吗?JMeter为基于XML的web服务测试提供了采样器,这是更真实的用例

有关更多详细信息,请参阅指南


但是,如果必须从Java代码测试web服务,您可以只添加jar,其中包含
IMyServiceClass
和JMeter类路径的依赖项

你签出用户手册了吗?哪个用户手册?你是说JMeterEngine实现吗?我想创建一个Maven项目,为Web服务提供自动性能测试+检索测试结果,这就是为什么我需要使用Java实现Jmeter测试,谢谢你的帮助:)你知道Jmeter Maven插件吗?非常感谢Dmitri,从java项目运行web服务测试是个好主意,您需要为测试项目添加依赖项(其中包含web服务测试的实现),我是否可以在测试项目上应用JMeterMaven插件并从同一项目中获取测试的源类??您可以通过
user.classpath
property配置JMeter类路径当我使用JMeter maven插件时,进程在第行被阻塞:IMyServiceClass finder=service.getPort(IMyServiceClass.class);当我取消执行时(键入Ctrl+C),程序继续测试并生成输出文件(测试报告)
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);