JMeter进行WebService测试

原创 2012年07月25日 17:42:25

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目录中即可发布。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Jmeter实现webservice的压力测试

以HTTP协议为例,记录使用jmeter进行压力测试的方法。
  • u010321474
  • u010321474
  • 2015年11月17日 21:37
  • 4527

JMeter对WebService的压力测试

JMeter官网,这个部分的教程乱七八糟,不知所云。 我整理了一下操作流程,理顺思路。...
  • jinhe123
  • jinhe123
  • 2016年05月26日 13:48
  • 5950

Jmeter发送SOAP请求对WebService接口测试

Jmeter也可以对WebService接口测试。本次测试的接口是: getSupportCityString 获得支持的城市/地区名称和与之对应的ID 输入参数:theRegionCo...
  • zhangchaoy
  • zhangchaoy
  • 2017年02月26日 13:39
  • 6149

Jmeter发送SOAP请求对WebService接口压力测试

Jmeter也可以对WebService接口测试并进行压力测试 1、本次实例接口(业务开通接口)                                      xx         ...
  • m0_38078382
  • m0_38078382
  • 2017年04月17日 15:10
  • 1364

jmeter基本使用及webservice脚本

1.服务端webservice接口测试,见下面截图: Manisha 注意:由于的服务端webservice接口是由axis1.4开...
  • sszgg2006
  • sszgg2006
  • 2015年11月18日 18:24
  • 424

jmeter发送soap请求进行webservice接口压力测试

1.创建线程组 2.创建soap请求 3.显示图形结果
  • tower888
  • tower888
  • 2013年12月08日 16:12
  • 15120

如何使用 JMeter 调用你的 Restful Web Service?进行简单的压力测试和自动化测试

表述性状态传输(REST)作为对基于 SOAP 和 Web 服务描述语言(WSDL)的 Web 服务的简单替代,在 Web 开发上得到了广泛的接受。能够充分证明这点的是主流 Web 2.0 服务提供商...
  • defonds
  • defonds
  • 2017年01月22日 09:20
  • 10307

网上WebService测试及使用

The original website:http://longdick.iteye.com/blog/275529 网上有一些网站提供的WebService,可用作测试。如下地址就是一个提供英...
  • jason_deng
  • jason_deng
  • 2011年12月16日 17:30
  • 1798

webservice 测试页面

转载:http://www.cnblogs.com/JuneZhang/archive/2013/01/24/net.html 解决WebService 测试窗体只能用于来自本地计算机的请求...
  • hanjun0612
  • hanjun0612
  • 2016年11月16日 16:27
  • 1280

方便测试和调用webservice的工具:

现在很多时候我们都会遇到这种情况:自己开发的程序要和其他各种各样的程序进行接口数据交互,这里就用到常用的接口服务的调用,但是有时候为了进行方便的测试,我们可能会写许多测试类等来测试,这样浪费了时间,也...
  • zp357252539
  • zp357252539
  • 2017年02月27日 14:04
  • 13958
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JMeter进行WebService测试
举报原因:
原因补充:

(最多只允许输入30个字)