[转]JMeter进行WebService测试

标签: | 发表时间:2013-08-17 10:20 | 作者:zeo112140
出处:http://blog.csdn.net/zeo112140

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>  

结果图:


JMeter整体图如下:


注:

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

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

文件布局如图:

com里面是包以及.class

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

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

作者:zeo112140 发表于2013-8-17 10:20:48 原文链接
阅读:0 评论:0 查看评论

相关 [jmeter webservice 测试] 推荐:

[转]JMeter进行WebService测试

- - 小鸥的博客
1. Building a WebService Test Plan参考. 1.   建立WebServiceTest Plan. 参考 http://jmeter.apache.org/usermanual/build-ws-test-plan.html. 1)      添加ThreadGroup.

WebService性能测试

- - ImportNew
(本文也会在最下面通俗的介绍). 这里给一个站内大哥的讲解: http://www.cnblogs.com/Leo_wl/archive/2010/05/20/1740205.html. 简单点就是测试WebService的一个工具. 官网地址: http://www.soapui.org/. ps:官网是英语的,如果你英语不好的话可以使用谷歌浏览器或360极速浏览器,它可以自动把英文转换成中文.

[转]Jmeter测试结果分析

- - 小鸥的博客
Jmeter测试结果分析这一篇,我打算分成上下两部分. 上篇,主要讲述如何使用jmeter中Assertion对结果进行简单的分类;下篇,主要讲述的是当我们拿到测试结果后,我们应该如何去看待这些测试结果. 用过LoadRunner的人都知道,LoadRunner本身提供了很多函数可以对收集回来的结果进行一些初步的分析.

JMeter使用记录1 -- JDBC测试

- - CSDN博客互联网推荐文章
场景:使用jmeter对web应用和mysql数据库进行压力测试. JMeter是一款非常强大的测试工具,可以用来测试web,数据库,从07年用过之后一直对它情有独钟,下面记录下在一个项目中对它的简单使用. 项目分数据库测试和web应用测试. 数据库测试比较简单,将要测试的数据库的jdbc driver放到jmeter的lib文件夹,新建线程组,配置起100线程,循环10次,10秒启动所有线程,加入一个jdbc connection configuration,加入要进行的CRUD操作,点击启动按钮,然后通过summary report看performance.

Jmeter教程 简单的压力测试

- - 行业应用 - ITeye博客
Jmeter是一个非常好用的压力测试工具.   Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好.     做压力测试的常用工具.     做压力测试的步骤如下:.     本文做压力测试的例子.     第一步: 使用CSV Data Set Config 来参数化.

Jmeter 使用实践 - 接口 diff 测试

- - OneAPM 博客
大多数人都使用 Jmeter 做过性能测试,但是在使用的过程中你会发现,它不仅可以做性能测试和功能测试,还能够满足基本的接口测试需求. 相比其他工具,Jmeter 入门门槛较低,安装也比较方便,根据自己的需要可以扩展一些插件,总之一句话: 优点太多了. 那么问题来了,为什么要做接口 diff 测试.

SOAP Webservice和RESTful Webservice

- - 人月神话的BLOG
REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性. REST提出设计概念和准则为:. 1.网络上的所有事物都可以被抽象为资源(resource). 2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识.

使用Jmeter进行分布式性能测试

- - 开源软件 - ITeye博客
使用Jmeter进行分布式测试的主要步骤是:. 在所有做为Agent的机器上安装相同版本的Jmeter,然后运行jmeter-server文件. 在Cotroller机器上%Jmeter_Home%/bin下,找到Jmeter.properties,把Agent的ip添加到remote_hosts=192.168.0.1:1099,192.168.0.2:1099行.

使用JMeter的Java请求功能测试Hetty性能

- - BlogJava-qileilove
  JMeter是Apache组织的开放源代码项目,它是功能和. 性能测试的工具,100%的用. JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、. 数据库和查询、ftp服务器或者其他的资源). JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况.

Jmeter性能测试脚本录制和监控

- - 互联网 - ITeye博客
针对接口的压测,借用SoapUI测试工具录制脚本:. 1、被测接口remindFacade下的getRemindById接口. 步骤:打开jmeter----测试计划下建线程组----线程组下加HTTP请求(下面加断言)----线程组下面加监听器(聚合及查看结果树),基本架子已经ok. 2、ip你需要访问的服务器地址,http协议和post的请求方法,路径是被测接口的路径.