微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JMeter进行WebService测试

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的编写,我编写的如下:

[plain]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <soap:Envelope   
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4. xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
  5. xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  6. <soap:Body>  
  7. <ns1:simpleMethod  
  8.          xmlns:ns1="http://server.deltaj.com">  
  9.             <name xsi:type="xsd:string">Yerasel</name>  
  10.         </ns1:simpleMethod>  
  11. </soap:Body>  
  12. </soap:Envelope>  

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

simpleMethod是WebService发布的方法

http://server.deltaj.com是simpleMethod所在类(SimpleServer)的域名,即SimpleServer所在包的包名为com.deltaj.server;

name是simpleMethod的参数名,参数类型是string;

Yerasel是输入的实参。


SimpleService服务端源程序如下:

[java]  copy
    // SimpleService.java  
  1. package com.deltaj.server;  
  2.   
  3. public class SimpleServer {    
  4.     
  5.     /**  
  6.      * 简单的测试方法  
  7.      *   
  8.      */    
  9.     public String simpleMethod(String name) {    
  10.         return name + "Say this is a Simple method ^-^";    
  11.     }    
  12. }    


注意:
<arg0 xsi:type="xsd:string">Yerasel</arg0>也可以,
在发布成wsdl时候,方法的参数名称自动的映射成arg0,arg1,解决方法如下: 

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

copy
    public String simpleMethod(@WebParam(name = "personname")String personname) {    
  1. return personname + "Say this is a Simple method ^-^";    
  2. }    

Soap/XML-RPC Data 如下:

copy
                <personname xsi:type="xsd:string">Yerasel </personname>  
  1. </soap:Envelope>  

结果图:


JMeter整体图如下:


注:

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

copy
    <serviceGroup>  
  1.     <service name="SimpleServer" scope="application">  
  2.         <description>  
  3.             SimpleServer  
  4.         </description>  
  5.         <messageReceivers>  
  6.             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
  7.             <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPcmessageReceiver"/>  
  8.         </messageReceivers>  
  9.         <parameter name="ServiceClass">com.deltaj.server.SimpleServer</parameter>  
  10.     </service>  
  11. </serviceGroup>  
文件名为meta-inf/services.xml。

文件布局如图:

com里面是包以及.class


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

将aar放入Tomcat的services目录中即可发布。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐