您的位置:首页 > 其它

JMeter进行WebService测试

2012-07-25 17:42 232 查看
1. Building a WebService Test Plan参考
http://jmeter.apache.org/usermanual/build-ws-test-plan.html

1. 建立WebServiceTest Plan

参考http://jmeter.apache.org/usermanual/build-ws-test-plan.html

1) 添加ThreadGroup

右键单击Test Plan选择Add --> ThreadGroup,配置如图:



Number of Threads、Ramp-UpPeriod、Loop Count可随测试不同随时修改。

三种参数解释如下:
Number of Threads为发起线程总数。
Ramp-Up Period 指定了JMeter开启Number ofThreads个线程所需的时间。例如,如果待发起30个线程(即模拟用户),Ram-Up Period为15秒,则每秒增加2个线程(30个用户/15秒)。如果设置为0,则JMeter会自动启动所有模拟用户。
Loop Count为循环次数。

2. 添加 WebService Requests

右键单击“WebService线程组”,Add --> Sampler --> WebService(SOAP)。如图:



注:灰色“线程组”为其它测试使用过的线程组,此处这设置为Disabled线程组,在本次测试中不使用。

配置如图:

将发布好的Service的 WSDL URL粘贴到WSDL URL中点击Load WSDL之后,WebMthods自动弹出,



只需自己选择Method然后单击Configure即可完成绝大部分自动配置



但是里面会涉及Soap/XML-RPC Data的编写,我编写的如下:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:simpleMethod
xmlns:ns1="http://server.deltaj.com">
<name xsi:type="xsd:string">Yerasel</name>
</ns1:simpleMethod>
</soap:Body>
</soap:Envelope>


这个XML中绝大部分都是固定的。其余解释如下:

simpleMethod是WebService发布的方法;
http://server.deltaj.com是simpleMethod所在类(SimpleServer)的域名,即SimpleServer所在包的包名为com.deltaj.server;
name是simpleMethod的参数名,参数类型是string;

Yerasel是输入的实参。

SimpleService服务端源程序如下:

// SimpleService.java
package com.deltaj.server;

public class SimpleServer {

/**
* 简单的测试方法
*
*/
public String simpleMethod(String name) {
return name + "Say this is a Simple method ^-^";
}

}


注意:

<arg0 xsi:type="xsd:string">Yerasel</arg0>也可以,

在发布成wsdl时候, 方法的参数名称被自动的映射成arg0, arg1, 解决方法如下:

Java代码
public User create(
@WebParam(name = "user")
User user);
因此SimpleService服务端源程序改写如下:

// SimpleService.java
package com.deltaj.server;

public class SimpleServer {

/**
* 简单的测试方法
*
*/
public String simpleMethod(@WebParam(name = "personname")String personname) {
return personname + "Say this is a Simple method ^-^";
}

}


Soap/XML-RPC Data 如下:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:simpleMethod
xmlns:ns1="http://server.deltaj.com">
<personname xsi:type="xsd:string">Yerasel </personname>
</ns1:simpleMethod>
</soap:Body>
</soap:Envelope>


结果图:



JMeter整体图如下:



注:

发布SimpleServer时,需要写xml,这是发布WebService的一般步骤,内容如下:

<serviceGroup>
<service name="SimpleServer" scope="application">
<description>
SimpleServer
</description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">com.deltaj.server.SimpleServer</parameter>
</service>
</serviceGroup>
文件名为META-INF/services.xml。

文件布局如图:



com里面是包以及.class



然后,在bin目录下运行"jar cvf SimpleServer.aar . "即可

将aar放入Tomcat的services目录中即可发布。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: