Jmeter 测试WebService
继上一记录JMeter的简单使用, 这里,记录JMeter 如何测试WebService ,虽然WebService的速度比其它的RPC 要慢很多,但实际的系统使用它还是很多的 。
如何使用JMeter 见上一记录,或googel .
参考官网:http://jmeter.apache.org/usermanual/build-ws-test-plan.html
1. 在线程组下新建一个 WebService(SOAP)Request.
2. 只需要在WSDL这一项,写上你的WSDL的位置即可。
点一下 载入WSDL 和 配置 ,下面几项都可以自动生成。
3. 最关键的也就是下面的 SOAP/XML -RPC Data . 这一项参数很多人不知道怎么填。
这里有一些是跟SOAP相关的,如果你自已写一个WS的客户端调用的话,中间有很多都是WS中的jar包帮你生成的,
我这里是取自前人写的一段, 有种方法可以得到,你先用WS的客户端包,写一个WS的调用程序,去调用你系统中的WS服务,写一个过滤器如Filter, 每次请求,都会进入这个里面,你在这个里面把请求过来的URL都打印出来,看看,都会有请求的封装的SOAP相关的协议了,你就COPY 上去,就可以了。
3.1 在此给出两个:
1. 我的WS服务中只有一个参数,都是XML格式的,如果你也是,可以用以下试试:
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> </soap:Header>
<soapenv:Body>
<ser:call xmlns:ser="http://service.rc.infores.gpdi.com">
<ser:in0>
<ser:bak1/>
<ser:bak2/>
<ser:funcCode/>
<ser:reqCode/>
<ser:sourceCode/>
<ser:sync/>
<ser:sysCode/>
<ser:sysPwd/>
<ser:targetCode/>
<ser:version/>
</ser:in0>
<ser:in1><![CDATA[
你自已的XML格式的请求数据
]]></ser:in1>
</ser:call>
</soapenv:Body>
</soapenv:Envelope>
2. 说明,如果你方法中的方法名不是叫 call 的话,你就把它改一下,如果你的方法中只有一个参数,或两个,也把下面的 <ser:in0>中间的去掉,加上你的参数。如果是发的XML,就可以用上面的参数。
如:
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> </soap:Header>
<soapenv:Body>
<ser:sayHello xmlns:ser="http://service.rc.infores.gpdi.com">
<ser:in0><![CDATA[
4444444444
]]></ser:in0>
</ser:sayHello>
</soapenv:Body>
</soapenv:Envelope>
3,或用以下这个:
<?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:sayHello xmlns:ns1="http://com.gxlu.ngrm.external.guangzhou.server">
<target xsi:type="xsd:string">Yerasel </target>
</ns1:sayHello>
</soap:Body>
</soap:Envelope>
说明:1. ns1:sayHello 中的 sayHello是调用WS的服务的方法名称,可以修改为你自已的WS服务中的方法。
2. target 为WS服务中的参数的名称,最好一致,我试了下,有一个参数的话,随便取个名,也可以调用到。
4. 配完了,就可以加入监听器,观看结果:
说明,设置线程的个数都在 线程组 中设置
OK,JMeter测试WS结束 。
最后再说下,在Eclipse jEE 版本中,也带有一个界面测试WS的客户端:
下面有一个请求的发送调用服务的XML,可以把这段xml copy 到上面Jmeter中的 SOAP/XML-RPC Data 中即可:
如:
请求的SOAP/XML-RPC Data 为:
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://server.guangzhou.external.ngrm.gxlu.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
把这段放到上面示例中,运行即可。
返回的XML为:
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <ns1:sayHelloResponse xmlns:ns1="http://server.guangzhou.external.ngrm.gxlu.com">
<ns1:out>hello world from 3333</ns1:out>
</ns1:sayHelloResponse>
</soap:Body>
</soap:Envelope>
有一个问题:
如果方法中有两个参数,或三个参数,时,用eclispe 或JMeter去调用时,都会报 :
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<faultcode>soap:Server</faultcode>
<faultstring>Error invoking 'com.gxlu.ngrm.external.guangzhou.server.HelloWorldService.sayHello3(java.lang.String, java.lang.String, java.lang.String)'. Nested exception is java.lang.reflect.InvocationTargetException: null</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope> 这是在Eclipse 的WS 客户端下测试的,在JMeter中报一些的错。
这种错误,不解,我的方法参数都是String 类型 ,
还忘知道的兄弟们告之下,谢谢!
- 大小: 135.7 KB
- 大小: 162.7 KB
- 大小: 137.5 KB
- 大小: 188.2 KB
分享到:
相关推荐
JMETER 测试webservice 接口文档,内附JMETER3.0 安装包
jmeter3.0支持webservice接口测试,含有SOAP/XML-RPC Request采集器
Java多线程开发WebService,需要对Tomcat服务器进行线程控制配置,并采用JMeter进行WebService测试
Jmeter学习笔记,包含: (一)Jmeter安装与简单使用 #1024程序员节|用代码,改变世界# (二)Jmeter在请求中使用自定义变量 ...(十一)Jmeter测试webService接口 (十二)Jmeter测试dubbo接口 Jmeter使用常见问题
apache jmeter是来自国外的一款开源免费、功能强大的web压力测试工具。它是一款为负载测试功能行为和测量性能的100%纯Java应用程序,可用于测试静态和动态资源,Web动态应用程序的性能。jmeter可用于模拟服务器,...
测试SOA_WebService工具(SOAPUI,JMeter等)介绍和使用 SOA Testing 工具介绍 1 目 录 2 一、 SOAP UI 3 1. 介绍 3 2. 安装、运行SOAP UI 3 3. 使用指南 4 1.3.1创建、导入工程 4 1.3.2执行web service操作请求 7 ...
测试SOA_WebService工具(SOAPUI_JMeter等)介绍和使用
测试SOA_WebService工具(SOAPUI,JMeter等)介绍和使用.doc
apache-jmeter-5.0压力测试安装包,适用于interface接口的大规模压力测试,也可进行webservice的高并发访问测试,直接安装部署,强烈推荐给大家。
本文介绍JMeter如何做webservice测试,一般来说web服务,一般指的是HTTP请求相关的内容。这里就介绍一下如何利用JMeter做基于HTTP的web接口测试。接口也叫API(Application ProgrammingInterface),很多我们使用的...
18:命令行压测及生成报告 19:Jmeter之分布式压测 20:jm eter扩展插件 21:自己动手开发jmeter插件 22:FTP协议实战 23:WebService协议实战 24:JDBC协议实战 25:JDBC协议实战增删改查 26:JDBC协议实战高级操作...
JMeter是Apache组织开发的基于Java的webservice 压力测试工具。
10 建立与实现一个WebService测试 11 建立与实现 JMS Queue 测试(MQ测试) 12 建立与实现 JMS Topic 测试(MQ测试) 13 建立与实现 Monitor 测试 14 有关listeners 15 Remote Testing远程测试 16 Best Practices 呵呵,...
meter是apache公司基于...其中接口测试的简单操作包括做http脚本(发get/post请求、加cookie、加header、加权限认证、上传文件)、做webservice脚本、参数化、断言、关联(正则表达式提取器和处理json-jsonpathextrac
课程目录: 1:Jmeter 安装及环境配置 2:Jmeter 目录及配置文件说明 ...23:WebService协议实战 24:JDBC协议实战 25:JDBC协议实战增删改查 26:JDBC协议实战高级操作 27:Jmeter4.0的一些更新
可以测试各种类型的接口(包括Http、数据库、webservice、ftp等),比postman强大,下载使用即可
1. Jmeter简介 Apache Jmeter是一个100%的纯java桌面应用,用于压力测试...从下面的图中我们可以看到:Jmeter可以用于测试FTP、HTTP、RPC、JUNIT、JMS、LDAP、WebService(Soap) Request以及Mail和JDBC(数据库压力测试)