Jmeter接口测试之用户自定义变量(九)

在使用Jmeter做接口自动化测试中,经常会使用到公共的数据,那么就需要对这些公共的数据分离出来,不管是基于测试框架的思想,还是使用工具来进行做自动化测试,公共数据的分离首先是需要思考的。这里就以获取电话号码归属地来作为测试的案例,看接口的文档如下:

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/getMobileCodeInfo"

<?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>
    <getMobileCodeInfo xmlns="http://WebXml.com.cn/">
      <mobileCode>string</mobileCode>
      <userID>string</userID>
    </getMobileCodeInfo>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

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

在如上信息中,可以得出如下的信息:

请求地址:

http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx

请求头:

Content-Type: text/xml; charset=utf-8

请求参数:

<?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>
    <getMobileCodeInfo xmlns="http://WebXml.com.cn/">
      <mobileCode>string</mobileCode>
      <userID>string</userID>
    </getMobileCodeInfo>
  </soap:Body>

其中请求参数中userID可以为空,而请求参数mobileCode不能为空

打开Jmeter测试工具,创建线程组并且新增该接口的测试用例,如图所示:

那么在这个案例中,参数mobileCode它就是一个变量,我们完全可以把它分离出来,因为依据测试用例的不同查询的电话号码是不同的,在计划中,添加用户自定义的步骤为:添加--->配置元件--->用户自定义的变量,添加用户自定义变量后,定义变量mobile,如下图所示:

那么下来就是调用该变量,在Jmeter中调用的方式为&{自定义的变量},在接口变量中调用,我们在请求参数中直接调用mobile的变量,如下图所示:

再次执行接口用例,执行的结果如图所示:

见发送请求后,服务端返回的响应数据:

也许看到这里,有人心里会想,那么每次请求可以除了这种方式可以自定义不同的电话吗?答案是可以的,这就是下一节需要讲的知识体系。

原文发布于微信公众号 - Python自动化测试(wuya-python)

原文发表时间:2018-08-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏漏斗社区

工具| 诸神之眼nmap定制化之并发处理

当我们使用nmap来进行大规模探测的时候,速度和准确度是摆在我们面前的两个问题,这时需要考虑到nmap的并发处理能力。 0x01 nmap本身的并发执行 相关...

4035
来自专栏王纯的专栏

Valgrind 使用入门

Valgrind 是一套类似于 gprof 的动态检测的工具集,由于使用方便,不需修改目标程序源码,输出清晰图文并茂等优势,常被用作后台(特别是linux后台)...

2.3K0
来自专栏前端知识分享

前端模块化开发解决方案详解

AMD(常用在浏览器端,异步的,如requirejs)(Asynchronous Module Definition)

1.5K1
来自专栏全沾开发(huā)

使用postman进行API自动化测试

使用postman进行API自动化测试 最近在进行一个老项目的升级,第一步是先将node版本从4.x升级到8.x,担心升级会出现问题...

6167
来自专栏哲学驱动设计

BaaS API 设计规范

上个月写了一个团队中的 BaaS API 的设计规范,给大家分享下: 目录 1. 引言... 4 1.1. 概要... 4 1.2. 参考资料... 4 1...

26510
来自专栏数据和云

innodb实例损坏情况下恢复数据及相关工具的开发

作者介绍:谢浩,现任职于云和恩墨(北京)信息技术有限公司,具有多年oracle数据库企业级运维经验,擅长结合业务、硬件系统制定各种项目方案,具有丰富mysql相...

3418
来自专栏散尽浮华

redis cluster集群管理工具redis-trib.rb命令小结-运维笔记

redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单、便捷、实...

2183
来自专栏Java技术栈

Maven Optional & Exclusions使用区别

Optional和Exclusions都是用来排除jar包依赖使用的,两者在使用上却是相反。 Optional定义后,该依赖只能在本项目中传递,不会传递到引用该...

3399
来自专栏测试驿栈

Jmeter(十一)_针对响应信息不明确的接口做关联

1:做接口关联的时候,发现接口响应没有可以利用的信息.如下图只返回了一个成功的标识,这样的接口如何与之关联?

1632
来自专栏开发与安全

linux网络编程之socket(八):五种I/O模型和select函数简介

一、五种I/O模型 1、阻塞I/O ? 我们在前面所说的I/O模型都是阻塞I/O,即调用recv系统调用,如果没有数据则阻塞等待,当数据到来则将数据从内核空间(...

2860

扫码关注云+社区

领取腾讯云代金券