进行接口功能测试过程中,经常会碰到,需要获取到上一个请求响应结果中数据,传递到下一个请求中来使用。在soapui中我们通过Property Transfer来实现。

1、Property Transfer功能界面介绍

右键项目project-->new TestSuite-->new TestCase-->右键Test Steps-->Add step-->Property Transfer

详细参考官方文档:https://www.soapui.org/docs/functional-testing/teststep-reference/property-transfers.html

2、Property Transfer 之 JSONPath

假设我们有两个接口:登录、查询用户信息。登录后响应结果会返回一个token值;查询用户信息时,请求头中需带上这个token值,才能查询成功

1)登录请求,运行返回结果成功,且返回token值

2)查询用户信息,请求头中添加token值,运行,成功查询到当前登录用户的信息

如果只有以上2步,则每次都得先运行登录,copy出token值,再粘贴到查询用户信息的请求头,再运行;相当麻烦;因此在以上2步中间,我们需要插入一个step

3)右键loginIn-->Insert Step-->Property Transfer,但是在进行Target设置时,不能直接把值传到user请求头中,所以,先自定义设置一个变量,把token值传递到这个变量,再进行变量引用

4)右键Test Steps-->Add step-->Properties,并且自定义一个变量名称为token

5)进行Property Transfer的设置如下,运行后查看Properties中token值获取成功

 
 

这里$.token表示获取根元素下的token对应的值。JSONPath详细请移步参考http://lemfix.com/topics/63

{
"code": "",
"message": "登录成功",
"token": "40c6d6e2d2a949f6d988c275fd4725ab31b6c14c33c2bbbee0d787b911af58f1"
}

6)从上面步骤可以看到token已经获取成功了,怎么传递到查询信息接口的请求头呢?直接${变量名}引用

7)双击TestCase,运行成功

3、Property Transfer 之 XPath

假设现在我们要从数据库获取某一个用户信息,然后去登录;soapui发起jdbc请求返回结果默认是xml格式的,这里要用到XPath表达式

1)发起JDBC Request,运行,返回数据库用户信息

2)然后再从JDBC Request的返回结果中,获取到name值进行登录;这里右键JDBC Request-->Insert Step-->Property Transfer,然后进行如下设置

这里//Results/ResultSet/Row[1]/USER.NAME[1] 中
//表示不考虑Results在文档中的位置,选取Results下的所有ResultSet元素下的第一个Row元素下的第一个USER.NAME元素,所以在这里会取到tudou

XPath详细请移步参考:https://www.w3school.com.cn/xpath/xpath_syntax.asp

<Results>
<ResultSet fetchSize="0">
<Row rowNumber="1">
<USER.NAME>tudou</USER.NAME>
<USER.PWD>lemon123456</USER.PWD>
<USER.AGE>30</USER.AGE>
<USER.EMAIL>121313927@qq.com</USER.EMAIL>
<USER.PHONE>18866668888</USER.PHONE>
</Row>
<Row rowNumber="2">
<USER.NAME>yameng</USER.NAME>
<USER.PWD>lemon666</USER.PWD>
<USER.AGE>30</USER.AGE>
<USER.EMAIL>121313928@qq.com</USER.EMAIL>
<USER.PHONE>15811112223</USER.PHONE>
</Row>
</ResultSet>
</Results>

3)登录请求这里,不用做什么设置

4)双击TestCase,运行,查看结果,成功

soapui的关联方式就整理到这,希望大家学有所用

SoapUI 关联之Property Transfer、JSONPath、Xpath的更多相关文章

  1. JSONPath - XPath for JSON

    http://goessner.net/articles/JsonPath/ [edit] [comment] [remove] |2007-02-21| e1 # JSONPath - XPath ...

  2. soapUI系列之—-05 JDBC Request & Xpath Match

    一.配置JDBC Connection String 1. 以Oracle为例,要使用JDBC数据库就要先下一个 oracle JDBC的驱动,下载成功后把它放到soapUI安装目录下的  bin/e ...

  3. [SoapUI] SoapUI可以做到些什么?功能有多强大?

    SoapUI. The Swiss-Army Knife of Testing. Whether you’re a tester, developer, business analyst, or ma ...

  4. [SoapUI] Property Expansion in soapUI

    1. Property Expansion in soapUI SoapUI provides a common syntax to dynamically insert ("expand& ...

  5. python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(1)

    一.数据类型及解析方式 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的数据. 非结构化数据:先有数据,再有结构, 结构化数 ...

  6. soapUI学习文档(转载)

    soapUI 学习文档不是前言的前言记得一个搞开发的同事突然跑来叫能不能做个WebService 性能测试,当时我就凌乱了,不淡定啊,因为我是做测试的,以前连WebService 是什么不知道,毕竟咱 ...

  7. soapUI-property Transfer

    1.1.1  Property Transfer 创建或双击现有的Property-Transfer TestStep将打开以下窗口: 左侧的列表显示了此TestStep中配置的传输,添加和管理所需的 ...

  8. soapui中文操作手册(八)----Web服务的功能测试案例

    现在,让我们来看看在一个TestCase的功能测试. 展开 Simple TestSuite并双击Simple Login and Logout w. Properties Steps. 正如你所看到 ...

  9. SoapUI:入门实例

    这一章中我们要掌握如下内容: 1)         构建项目: 2)         运行单个请求: 3)         构建测试用例: 4)         接口之间传递参数,组织测试步骤: 5) ...

随机推荐

  1. 前端基础-BOM和DOM学习

    JavaScript分为 ECMAScript,BOM,DOM. BOM:是指浏览器对象模型,使JavaScript有能力与浏览器进行对象. DOM:是指文档对象模型,通过它,可以访问HTML文档的所 ...

  2. 暑期——第八周总结(1,安装好hadoop之后访问http://localhost:50070,无法连接【已解决】 2,Hbase命令详解)

    所花时间:7天 代码行:800(Java) 博客量:1篇 了解到知识点 : 一:http://localhost:50070无法访问 安装好hadoop之后 输入所有东西都有 可就是访问50070无法 ...

  3. js之捕捉冒泡和事件委托

     以下为转载内容 一.事件流(捕获,冒泡)   事件流:指从页面中接收事件的顺序,有冒泡流和捕获流. 当页面中发生某种事件(比如鼠标点击,鼠标滑过等)时,毫无疑问子元素和父元素都会接收到该事件,可具体 ...

  4. shell管道与重定向

    输出重定向 $ ls -l > lsoutput 这条命令将ls命令执行后的结果输入出到lsoutput文件中. 在linux shell中使用符号 > ,< 来完成输入输出的重定向 ...

  5. idea git和svn间切换

    如图在file->settings->Version Controll间选择相对应的版本控制类型

  6. spring系列常用注解

    常见注解使用 - @SpringBootApplication,springboot的核心注解,用于开启自动配置,等效于@Configuraion.@ComponentScan和@EnableAuto ...

  7. MongoDB的查询索引

    ​ 目录 为什么要建立索引? 索引的分类有哪些? _id索引 单键索引 多键索引 复合索引 过期索引 hello,今天是万圣节

  8. html5一些特性

    html5可以理解为html+css+js 其目前可以解决:1.浏览器的兼容问题 2.统一web应用标准 3.解决文档结构定义不明确问题 4.解决web应用中的功能受限问题 5.是程序员编写的web应 ...

  9. vue 上传文件 和 下载文件 面试的时候被问到过

    Vue上传文件,不必使用什么element 的uplaod, 也不用什么npm上找的个人写的包,就用原生的Vue加axios就行了, 废话不多说,直接上代码:html: <input type= ...

  10. Feign【入门】

    feign简介: feign是一种声明式,模板化的HTTP客户端,spring cloud对feign进行了增强,使其支持SpringMvc的相关注解,并整合了ribbon做负载均衡.在spring ...