SoapUI 关联之Property Transfer、JSONPath、Xpath
进行接口功能测试过程中,经常会碰到,需要获取到上一个请求响应结果中数据,传递到下一个请求中来使用。在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的更多相关文章
- JSONPath - XPath for JSON
http://goessner.net/articles/JsonPath/ [edit] [comment] [remove] |2007-02-21| e1 # JSONPath - XPath ...
- soapUI系列之—-05 JDBC Request & Xpath Match
一.配置JDBC Connection String 1. 以Oracle为例,要使用JDBC数据库就要先下一个 oracle JDBC的驱动,下载成功后把它放到soapUI安装目录下的 bin/e ...
- [SoapUI] SoapUI可以做到些什么?功能有多强大?
SoapUI. The Swiss-Army Knife of Testing. Whether you’re a tester, developer, business analyst, or ma ...
- [SoapUI] Property Expansion in soapUI
1. Property Expansion in soapUI SoapUI provides a common syntax to dynamically insert ("expand& ...
- python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(1)
一.数据类型及解析方式 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的数据. 非结构化数据:先有数据,再有结构, 结构化数 ...
- soapUI学习文档(转载)
soapUI 学习文档不是前言的前言记得一个搞开发的同事突然跑来叫能不能做个WebService 性能测试,当时我就凌乱了,不淡定啊,因为我是做测试的,以前连WebService 是什么不知道,毕竟咱 ...
- soapUI-property Transfer
1.1.1 Property Transfer 创建或双击现有的Property-Transfer TestStep将打开以下窗口: 左侧的列表显示了此TestStep中配置的传输,添加和管理所需的 ...
- soapui中文操作手册(八)----Web服务的功能测试案例
现在,让我们来看看在一个TestCase的功能测试. 展开 Simple TestSuite并双击Simple Login and Logout w. Properties Steps. 正如你所看到 ...
- SoapUI:入门实例
这一章中我们要掌握如下内容: 1) 构建项目: 2) 运行单个请求: 3) 构建测试用例: 4) 接口之间传递参数,组织测试步骤: 5) ...
随机推荐
- UITableView tableHeaderView 自动布局
let size = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize) headerView.frame.s ...
- 转:怎么用Sql语句获取一个数据库中的所有表的名字
用sql获取数据库中所有的表名的方法:1.oracle下:select table_name from all_tables;2.MySQL下:select table_name from infor ...
- jquery的api以及用法总结-属性/css/位置
属性/css 属性 .attr() attr()设置普通属性,prop()设置特有属性 获取或者设置匹配的元素集合中的第一个元素的属性的值 如果需要获取或者设置每个单独元素的属性值,需要依靠.each ...
- FileDetail
import org.apache.hadoop.conf.*; import org.apache.hadoop.fs.*; import java.io.IOException; import j ...
- 利用Python进行数据分析:【IPython】
一.IPython基础功能 1.IPython是交互式的Python命令行2.安装与使用 #安装:pip install ipython #使用:ipython与Python解释器的使用方法一致 注: ...
- Linux 部署vsftp服务及详解
一.FTP服务概述: FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP(File Transf ...
- 死磕 java同步系列之redis分布式锁进化史
问题 (1)redis如何实现分布式锁? (2)redis分布式锁有哪些优点? (3)redis分布式锁有哪些缺点? (4)redis实现分布式锁有没有现成的轮子可以使用? 简介 Redis(全称:R ...
- java递归求八皇后问题解法
八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...
- 使用sp_getAppLock引发的一个小问题
这几天线上频繁报如下的错误:“无法释放应用程序锁(数据库主体: 'public',资源: 'aa'),原因是当前没有保留该应用程序锁.” 下面是写法: declare @result int; BEG ...
- Drill 学习笔记之 与Mongo性能测试比较
性能测试: 竟然用了30秒.... 如果使用mongo 客户端只有1-2秒 感觉Drill是把数据拉过来再进行sql优化,并没有使用Mongo的API,效率低下让人失望...