WS的压测

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



 

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

 

[java]  view plain copy
  1. Java代码    
  2. public User create(    
  3.     @WebParam(name = "user")    
  4.     User user);    

因此SimpleService服务端源程序改写如下:

 

 

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


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.             <personname xsi:type="xsd:string">Yerasel </personname>  
  10.         </ns1:simpleMethod>  
  11. </soap:Body>  
  12. </soap:Envelope>  


结果图:

 

猜你喜欢

转载自cywhoyi.iteye.com/blog/1824852