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 ,不带参数可以不用管

结果返回

2021年第六期《python接口自动化+测试开发》课程,1月9号开学(火热报名中!)

本期上课时间:1月9号-4月18号,每周六、周日晚上20:30-22:30

(0)

相关推荐

  • Delphi 调用webservice接口的三类方法

    一.使用向导 1.导入wsdl文件:file--new----other----webservice---WSDLimporter---输入wsdl地址 http://www.webxml.com.c ...

  • jmeter压测学习39-获取post请求x-www-form-urlencoded格式的数据

    前言 post请求的参数有一些是json格式,也有一些是x-www-form-urlencoded格式,前面讲签名的时候获取到post请求的是json格式. 本篇继续讲x-www-form-urlen ...

  • jmeter压测学习13-添加配置元件之HTTP请求默认值

    前言 在使用jmeter测接口的时候,当我们的接口数量越来越多的时候,在每个接口里面都需要添加服务器ip和端口. 当测试环境的ip和端口发生改变时,需一个个去修改这时候去维护接口就很麻烦,我们希望有个 ...

  • jmeter压测学习2-linux运行jmeter环境

    前言 使用jmeter做压测的时候,在windows上不太稳定,所有一直在linux服务器上使用jmeter做压力测试. 本篇记录下linux上搭建jmeter环境,以及运行jmeter脚本,查看报告 ...

  • jmeter压测学习5-XPath提取器

    前言 有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面. 并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数,如:csrfmidd ...

  • jmeter压测学习4-正则表达式提取

    前言 上一个接口返回的token作为下个接口的入参,除了前面一篇讲到的用json提取器提取,也可以用正则提取. json提取器只能提取json格式的数据,正则可以匹配任意的返回. 我现在有一个登陆接口 ...

  • jmeter压测学习3-提取json数据里面的token参数关联

    前言 现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值. 上一个接口返回的token作为下个接口的入参. 案例场景 我现在有 ...

  • jmeter压测学习7-登录参数化(CSV 数据文件设置)

    前言 我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况. 如果要压测登录接口,肯定得准备几百,甚至上千的账号去登录,测试的结果才具有 ...

  • jmeter压测学习8-压测带token的接口

    前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口. 比如我现在要压测一个修改用户的个人信息接口,每个用 ...

  • jmeter压测学习11-模拟浏览器访问web页面

    前言 在做性能测试的时候,有时候我们希望测试用户访问一个web页面的加载时间,使用 jmeter 压测的话,需模拟浏览器的行为,加载整个页面的内容. 包含一些js,css,png图片资源等文件的加载. ...