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

WebService中的WSDL详解 及jmeter测试
WebService中的WSDL详解 及jmeter测试
首先简单讲解一下什么是wsdl.一个WSDL文档通常包含8个重要的元素,即definitions、types、import、message、portType、operation、binding、service元素。这些元素嵌套在definitions元素中,definitions是WSDL文档的根元素。WSDL文档外层结构图示:WSDL 服务进行交互的基本元素:Types(消息类型):数据类型定义的容器,它使用某种类型系统(如 XSD)。Message(消息):通信数据的抽象类型化定义,它由一个或者多个 part 组成。Part:消息参数PortType(端口类型):特定端口类型的具体协议和数据格式规范。,它由一个或者多个 Operation组成。Operation(操作):对服务所支持的操作进行抽象描述,WSDL定义了四种操作:1.单向(one-way):端点接受信息;3.要求-响应(solicit-response):端点发送消息,然后接受相关消息;4.通知(notification[2] ):端点发送消息。Binding:特定端口类型的具体协议和数据格式规范。Port:定义为绑定和网络地址组合的单个端点。Service:相关端口的集合,包括其关联的接口、操作、消息等。外层结构里面也可能有多层结构。小编在测试过程中多次遇到上图样式的接口 也就是俗称“WebService”接口类型,对于这类接口测试工具有不少,LR、soapUI、jmeter。。。其中对于WebService类型接口支持最高的 要属于soapUI这个接口测试工具,我们今天来说说关于jmeter怎么进行测试。小编使用的是3.2版本的jmeter;jmeter在3.2版本取消了 soap/xml这个Request,可以直接使用Http Request-Body Data 来进行测试。至于怎么测试,分析上图就能得出有两个部分,上面的部分就是我们需要发起的请求类容,其中包含了参数名称,参数类型,接口名称。。。。 至于接口地址就是这个页面的URL地址,直接复制粘贴。填入相关的参数就完成了。相比其他类型的接口,WebService类型接口是比较简单的,就是有点繁琐。下图就是一个会员接口,这里还要说一下,关于类似接口 一定需要添加信息头!!!!否则会出错
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百家号 最近更新:
简介: 聚焦机器人领域和智能家居,泛科技类来自媒体2635人阅读
Jmeter(7)
Jmeter也可以对WebService接口测试。本次测试的接口是:
getSupportCityString
获得支持的城市/地区名称和与之对应的ID
输入参数:theRegionCode = 省市、国家ID或名称,返回数据:一维字符串数组。
以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
POST /WebServices/WeatherWS.asmx HTTP/1.1
Content-Type: application/soap+ charset=utf-8
Content-Length: length
&?xml version=&1.0& encoding=&utf-8&?&
&soap12:Envelope xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:xsd=&http://www.w3.org/2001/XMLSchema& xmlns:soap12=&http://www.w3.org/2003/05/soap-envelope&&
&soap12:Body&
&getSupportCityString xmlns=&.cn/&&
&theRegionCode&string&/theRegionCode&
&/getSupportCityString&
&/soap12:Body&
&/soap12:Envelope&
HTTP/1.1 200 OK
Content-Type: application/soap+ charset=utf-8
Content-Length: length
&?xml version=&1.0& encoding=&utf-8&?&
&soap12:Envelope xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:xsd=&http://www.w3.org/2001/XMLSchema& xmlns:soap12=&http://www.w3.org/2003/05/soap-envelope&&
&soap12:Body&
&getSupportCityStringResponse xmlns=&.cn/&&
&getSupportCityStringResult&
&string&string&/string&
&string&string&/string&
&/getSupportCityStringResult&
&/getSupportCityStringResponse&
&/soap12:Body&
&/soap12:Envelope&
添加线程组,并添加SOAP/XML-RPC Request Sampler。
在URL中填写测试地址:
在Soap/XML-RPC Data中输入:
&?xml version=&1.0& encoding=&utf-8&?&
&soap12:Envelope xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:xsd=&http://www.w3.org/2001/XMLSchema& xmlns:soap12=&http://www.w3.org/2003/05/soap-envelope&&
&soap12:Body&
&getSupportCityString xmlns=&.cn/&&
&theRegionCode&string&/theRegionCode&
&/getSupportCityString&
&/soap12:Body&
&/soap12:Envelope&
在发送的信息中,要填写真正的参数替换占位符&theRegionCode&string&/theRegionCode&
为TestPlan添加用户定义的变量
最终发送的数据为
&theRegionCode&${RegionCode}&/theRegionCode&
在监听器中插入查看结果树。
发送请求后会发现响应数据错误,提示“服务器未能识别 HTTP 头 SOAPAction 的值: ”
这是因为服务器不知道以何种类型来解析请求数据,才导致没有正确的数据返回。
所以在发送请求之前,还有一个重要的步骤,就是添加HTTP信息头管理器
再次发送数据,可以成功获取城市代码。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:124154次
积分:2315
积分:2315
排名:第16550名
原创:108篇
转载:29篇
(2)(7)(4)(1)(1)(1)(3)(1)(18)(27)(2)(6)(1)(5)(5)(4)(2)(4)(8)(1)(14)(1)(8)(11)标签:至少1个,最多5个
JMeter的特性包括了对SOAP的支持
以天气服务为例
浏览器访问
可以看到如下内容
有SOAP的请求头信息(上图中红框外的内容)以及SOAP请求内容
jmeter的samper中,有一个SOAP/XML-RPC Request组件,可以看到里面有URL,Send SOAPAction和Soas/XML-RPC Data
根据上图中的内容,稍作整理,可以填写成如下的内容
(其中增加变量和断言)
执行下结果
至此,基本的脚本已经完成
剩下的就是配置场景了,这里不做赘述
----EOF---
0 收藏&&|&&0
你可能感兴趣的文章
分享到微博?
技术专栏,帮你记录编程中的点滴,提升你对技术的理解收藏感兴趣的文章,丰富自己的知识库
明天提醒我
我要该,理由是:2637人阅读
Jmeter(7)
Jmeter也可以对WebService接口测试。本次测试的接口是:
getSupportCityString
获得支持的城市/地区名称和与之对应的ID
输入参数:theRegionCode = 省市、国家ID或名称,返回数据:一维字符串数组。
以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
POST /WebServices/WeatherWS.asmx HTTP/1.1
Content-Type: application/soap+ charset=utf-8
Content-Length: length
&?xml version=&1.0& encoding=&utf-8&?&
&soap12:Envelope xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:xsd=&http://www.w3.org/2001/XMLSchema& xmlns:soap12=&http://www.w3.org/2003/05/soap-envelope&&
&soap12:Body&
&getSupportCityString xmlns=&.cn/&&
&theRegionCode&string&/theRegionCode&
&/getSupportCityString&
&/soap12:Body&
&/soap12:Envelope&
HTTP/1.1 200 OK
Content-Type: application/soap+ charset=utf-8
Content-Length: length
&?xml version=&1.0& encoding=&utf-8&?&
&soap12:Envelope xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:xsd=&http://www.w3.org/2001/XMLSchema& xmlns:soap12=&http://www.w3.org/2003/05/soap-envelope&&
&soap12:Body&
&getSupportCityStringResponse xmlns=&.cn/&&
&getSupportCityStringResult&
&string&string&/string&
&string&string&/string&
&/getSupportCityStringResult&
&/getSupportCityStringResponse&
&/soap12:Body&
&/soap12:Envelope&
添加线程组,并添加SOAP/XML-RPC Request Sampler。
在URL中填写测试地址:
在Soap/XML-RPC Data中输入:
&?xml version=&1.0& encoding=&utf-8&?&
&soap12:Envelope xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:xsd=&http://www.w3.org/2001/XMLSchema& xmlns:soap12=&http://www.w3.org/2003/05/soap-envelope&&
&soap12:Body&
&getSupportCityString xmlns=&.cn/&&
&theRegionCode&string&/theRegionCode&
&/getSupportCityString&
&/soap12:Body&
&/soap12:Envelope&
在发送的信息中,要填写真正的参数替换占位符&theRegionCode&string&/theRegionCode&
为TestPlan添加用户定义的变量
最终发送的数据为
&theRegionCode&${RegionCode}&/theRegionCode&
在监听器中插入查看结果树。
发送请求后会发现响应数据错误,提示“服务器未能识别 HTTP 头 SOAPAction 的值: ”
这是因为服务器不知道以何种类型来解析请求数据,才导致没有正确的数据返回。
所以在发送请求之前,还有一个重要的步骤,就是添加HTTP信息头管理器
再次发送数据,可以成功获取城市代码。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:124156次
积分:2315
积分:2315
排名:第16550名
原创:108篇
转载:29篇
(2)(7)(4)(1)(1)(1)(3)(1)(18)(27)(2)(6)(1)(5)(5)(4)(2)(4)(8)(1)(14)(1)(8)(11)}

我要回帖

更多关于 接口测试请求工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信