Jmeter实现webservice的接口测试
前提条件
测试的URL:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx
测试接口:getSupportCityString
获取城市的编码:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionDataset
(该页面下显示的是所有城市的编码信息)如下图:

使用北京的编码信息:311101
输入参数:theRegionCode = 省市、国家ID或名称,返回数据:一维字符串数组
一、 Jmeter发送SOAP请求对WebService接口测试
前提:以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值
POST /WebServices/WeatherWS.asmx HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: application/soap+xml; charset=utf-
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="http://WebXml.com.cn/">
<theRegionCode>string</theRegionCode>
</getSupportCityString>
</soap12:Body>
</soap12:Envelope>
HTTP/1.1 OK
Content-Type: application/soap+xml; charset=utf-
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="http://WebXml.com.cn/">
<getSupportCityStringResult>
<string>string</string>
<string>string</string>
</getSupportCityStringResult>
</getSupportCityStringResponse>
</soap12:Body>
</soap12:Envelope>
步骤一: 添加线程组,如下图:

添加完成后设置名称为soap
步骤二、添加SOAP/XML-RPC Request Sampler,如下图:

步骤三、配置soap
在URL中填写测试地址:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx
在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="http://WebXml.com.cn/">
<theRegionCode>string</theRegionCode>
</getSupportCityString>
</soap12:Body>
</soap12:Envelope>
注意:在发送的信息中,要填写真正的参数替换占位符,string的值需要替换成需要的值
<theRegionCode>string</theRegionCode>

步骤四、在测试计划中添加用户定义的变量
点击测试计划>添加,如下图:

最终步骤3发送的数据为:<theRegionCode>${test}</theRegionCode>,如下图:

步骤五、插入查看结果树,如下图:

点击运行,发送请求后会发现响应数据错误,提示“服务器未能识别 HTTP 头 SOAPAction 的值: ”,如下图:

这是因为服务器不知道以何种类型来解析请求数据,才导致没有正确的数据返回。
所以在发送请求之前,还有一个重要的步骤,就是添加HTTP信息头管理器
步骤六、添加HTTP信息头管理器

添加完成后需要手动拖动到改线程组的最上方,配置如下:

步骤七、验证

一、 Jmeter发送post请求对Webservice接口测试
前提:以下是 HTTP POST 请求和响应示例。所显示的占位符需替换为实际值
POST /WebServices/WeatherWS.asmx/getSupportCityString HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: application/x-www-form-urlencoded
Content-Length: length theRegionCode=string
HTTP/1.1 OK
Content-Type: text/xml; charset=utf-
Content-Length: length <?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
<string>string</string>
<string>string</string>
</ArrayOfString>
步骤一:添加线程组,并改名为post,如下图:

步骤二、添加HTTP请求并进行配置,如下图:

配置如下:


在请求响应中都有,直接去找就行
Implementation:java
协议:http
方法:post
Content encoding:utf8
步骤三、查看结果树并运行查看结果,如下图:

一、 Jmeter发送get请求对webservice接口测试
前提:以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。
GET /WebServices/WeatherWS.asmx/getSupportCityString?theRegionCode=string HTTP/1.1
Host: ws.webxml.com.cn
HTTP/1.1 OK
Content-Type: text/xml; charset=utf-
Content-Length: length <?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
<string>string</string>
<string>string</string>
</ArrayOfString>
步骤1:添加线程组,并改名为get,如下图:

步骤二、添加HTTP请求并进行配置,如下图:

步骤三、查看结果树并运行查看结果,如下图:

*************************************************************************************************
参考文档:
http://blog.csdn.net/zhangchaoy/article/details/57412085
Jmeter实现webservice的接口测试的更多相关文章
- RobotFrameWork webservice soap接口测试 (二)
上一篇提到做soap接口测试自己简单的写了个py,然后就简单的实现了个客户端能对远程接口进行调用,对返回的数据进行解析,可后面想着也觉得不对劲,soap协议虽说不像http协议那么普及,但是现在很多公 ...
- 使用Jmeter至WebService压力测试
使用Jmeter至WebService压力测试 目中我们使用了Jmeter对webservice进行了压力測试,Apache JMeter是Apache组织开发的基于Java的压力測试工具.用于对 ...
- 用Jmeter+Badboy+Fiddler做接口测试
用Jmeter+Badboy+Fiddler做接口测试 2016-12-05 目录: 1 简介2 Badboy录制3 Jmeter打开Badboy脚本4 用Fiddler抓请求,补充完善脚本5 测试中 ...
- jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter) 一.环境准备: 1.JDK:http://www.oracle.com/technetwork/java/jav ...
- 学习总结——JMeter做WebService接口功能测试
用JMeter作WebService接口功能测试(可以借助SoapUI来完成) SoapUI里面的操作: Wsdl文件或链接导入或添加到SoapUI打开待测请求:运行请求:取URL SOAPActi ...
- 通过jmeter发送webservice接口请求
1.webservice接口地址:http://ip:port/...?wsdl 2.接口数据类型:<cuxGmiChukuRmaTrxV><salesrepId xmlns:xsi ...
- 『动善时』JMeter基础 — 50、使用JMeter测试WebService接口
目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...
- 『动善时』JMeter基础 — 51、使用JMeter测试WebService接口
目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...
- Jmeter之WebService接口测试
一.简介 1.JMeter3.2前的版本,可以使用SOAP/XML-RPC Request插件直接进行webservice接口,而3.2后的版本则已经取消了这个接口,需要另外的方法才能进行测试. 2 ...
随机推荐
- mvc4 @foreach 如何写@if 判断
不知道你想写在里面还是外面,我里外都写上,你可以参考下:@if(Model!=null){ foreach(var item in Model) { if(item.Name=="李四&qu ...
- Python操作Excle
python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库.可从这里下载https://pypi.python.org/pypi.下面分别记录p ...
- python socket编程和黏包问题
一.基于TCP的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端,有顺序,不重复,可靠.不会被加上数据边界. server端 import socket sk = so ...
- 利用sys.dm_db_index_physical_stats查看索引大小/碎片等信息
我们都知道,提高sql server的数据查询速度,最有效的方法,就是为表创建索引,而我们对数据表进行新增,删除,修改的时候,会产生索引碎片,索引碎片多了,对性能产生很大的影响,索引碎片越多对数据库查 ...
- 20165203《Java程序设计》第三周学习总结
教材学习内容总结 1.类: (1)类的声明:class+类名 (2)类体:成员变量的声明+方法(局部变量+语句) 注意: 方法体内声明的局部变量只在方法内有效和书写位置有关. 局部变量和成员变量同名: ...
- (最大矩阵链乘)Matrix-chain product
Matrix-chain product. The following are some instances. a) <3, 5, 2, 1,10> b) < ...
- IDEA创建Spring Boot项目
首先安装Spring Boot CLI 先确定自己安装的JDK是1.8版本或者以上,然后下载Srping Boot CLI,Spring Boot CLI下载地址,下载下来是一个压缩包,解压,得到一个 ...
- ExampleConfigurationSectionHandler
ExampleConfigurationSectionHandler.cs using System; using System.Collections.Generic; using System.C ...
- 更快的速度、更好的服务——易普优APS云排程
众所周知软件执行效率受制于硬件性能,市面上的APS产品多为单机版本,企业要应用好APS,保证紧急插单.计划下发全程无忧,用户电脑硬件性能是不容忽视的一大瓶颈.APS的直接用户是车间管理人员.计划员,而 ...
- mysql proxy代理安装和配置
mysql proxy代理安装和配置 服务器说明: 192.168.1.219 mysql主库(主从复制) 192.168.1.177 mysql从库(主从复制) 192.168.1.202 ...