jmeter压测学习47-发soap请求测试webservice接口

前言

jmeter3 的版本可以新建一个SOAP/XML-RPC Request 的请求,直接测试webservice的接口。
jmeter5.1.1 版本已经去掉了自带的SOAP/XML-RPC Request,需在插件管理安装 Custom SOAP Sampler 插件

Custom SOAP Sampler 插件

选项-Plugins Manager - Available Plugins - 搜索 soap 勾选 Custom SOAP Sampler 插件安装

webservice接口

通过浏览器访问也可以看到对应的方法和请求参数http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx

测试 getDatabaseInfo 接口不用带参数

调用后返回

<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/">
<string>全部 数据 265903</string>
<string>安徽 安庆 658</string>
<string>安徽 蚌埠 456</string>
<string>安徽 亳州 489</string>
......
</ArrayOfString>

jmeter 发SOAP 1.1

先看 SOAP 1.1的版本请求示例

# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
POST /WebServices/MobileCodeWS.asmx HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getDatabaseInfo"

<?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>
    <getDatabaseInfo xmlns="http://WebXml.com.cn/" />
  </soap:Body>
</soap:Envelope>

SOAP 1.1的版本需在头部声明 Content-Type: text/xml; charset=utf-8SOAPAction 这2个参数.
SOAPAction 对应的值,可以在接口文档上查看到 SOAPAction: "http://WebXml.com.cn/getDatabaseInfo"

jmeter上添加-取样器-Custom SOAP Sampler

添加 HTTP信息头管理器,SOPA 1.1版本需声明2个头部参数

  • Content-Type: text/xml; charset=utf-8
  • SOAPAction: “http://WebXml.com.cn/getDatabaseInfo”

添加SOAP 请求参数

  • url地址 :http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx
  • Soap version : 1_1 (默认是1_2)
  • 勾选Treat selected attachment as response
  • SOAP Envelope 添加请求body内容

查看请求结果(这里结果有中文会显示乱码)

jmeter 发SOAP 1.2

接下来再看下jmeter 发 SOAP 1.2 请求,1.2和1.1的请求区别主要在头部,1.2版本的头部需声明

Content-Type: application/soap+xml; charset=utf-8

头部不需要SOAPAction 参数了,请求body的标签也有不一样是

详细报文查看接口文档,以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。

# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
POST /WebServices/MobileCodeWS.asmx HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: application/soap+xml; 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>
    <getDatabaseInfo xmlns="http://WebXml.com.cn/" />
  </soap12:Body>
</soap12:Envelope>

jmeter上添加-取样器-Custom SOAP Sampler

添加 HTTP信息头管理器,SOPA 1.2版本需声明

  • Content-Type: application/soap+xml; charset=utf-8

添加SOAP 请求参数

  • url地址 :http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx
  • Soap version : 1_2 (默认是1_2)
  • 勾选Treat selected attachment as response
  • SOAP Envelope 添加请求body内容(注意是接口文档上1.2的body内容)

查看运行结果

HTTP GET请求

webservice的接口也可以直接发 http 协议的GET 请求,参考接口文档

HTTP GET
以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/


GET /WebServices/MobileCodeWS.asmx/getDatabaseInfo? HTTP/1.1
Host: ws.webxml.com.cn
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
  <string>string</string>
  <string>string</string>
</ArrayOfString>

jmeter 上添加HTTP 取样器

查看结果

HTTP POST

从接口文档上看,webservice 的接口也可以直接发 http 协议的 POST 请求

HTTP POST
以下是 HTTP POST 请求和响应示例。所显示的占位符需替换为实际值。

POST /WebServices/MobileCodeWS.asmx/getDatabaseInfo HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: application/x-www-form-urlencoded
Content-Length: length

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
  <string>string</string>
  <string>string</string>
</ArrayOfString>

jmeter 上添加HTTP 取样器, 如果带参数,可以头部声明 Content-Type: application/x-www-form-urlencoded ,不带参数可以不用管

结果返回

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JMeter是一款开源的性能测试工具,可以用于对Web应用程序、接口和服务器进行压力测试。在JMeter中,可以通过组合多个接口来进行压测。 下面是一种常见的JMeter压测组合接口的方式: 1. 创建线程组:在JMeter中,首先需要创建一个线程组,用于模拟并用户。可以设置线程数、循环次数等参数。 2. 添加HTTP请求:在线程组下添加HTTP请求,默认情况下,JMeter送一个HTTP GET请求。可以根据需要修改请求方法、URL、参数等。 3. 添加断言:可以在HTTP请求后添加断言,用于验证接口返回结果是否符合预期。常见的断言类型包括响应代码、响应消息、响应时间等。 4. 添加参数化:如果需要对接口进行参数化测试,可以使用JMeter提供的参数化功能。可以通过CSV文件、数据库等方式提供参数数据。 5. 添加监听器:可以添加监听器来收集和分析测试结果。常见的监听器包括查看结果树、聚合报告、图形结果等。 6. 添加逻辑控制器:如果需要对接口进行复杂的逻辑控制,可以使用JMeter提供的逻辑控制器。例如,循环控制器、条件控制器等。 7. 添加定时器:可以添加定时器来模拟用户的访问间隔。常见的定时器包括固定定时器、随机定时器等。 8. 运行测试计划:配置完成后,可以运行整个测试计划,JMeter会模拟并用户请求,并收集测试结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值