进行接口功能测试过程中,经常会碰到,需要获取到上一个请求响应结果中数据,传递到下一个请求中来使用。在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. html常见的块元素与内联(行内)元素用法说明(一)

    html平时常见的块元素有:div, p, h1, h2, h3等,内联元素有:span, a, img等. 块元素的属性:无论内容是什么,都会独占一整行.主要用于页面布局. 内联元素的属性:只占自身 ...

  2. Spring常犯的十大错误,你踩过吗?

    1.错误一:太过关注底层 我们正在解决这个常见错误,是因为 "非我所创" 综合症在软件开发领域很是常见.症状包括经常重写一些常见的代码,很多开发人员都有这种症状. 虽然理解特定库的 ...

  3. 夯实Java基础系列17:一文搞懂Java多线程使用方式、实现原理以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  4. 【集群监控】Docker上部署Prometheus+Alertmanager+Grafana实现集群监控

    Docker部署 下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.re ...

  5. Scala 学习笔记之集合(6)

    object CollectionDemo7 { def main(args: Array[String]): Unit = { //数组使用 val arr = Array("red&qu ...

  6. Currying 及应用

    Currying,中文多翻译为柯里化,感觉这个音译还没有达到类似 Humor 之于幽默的传神地步,后面直接使用 Currying. 什么是 Currying Currying 是这么一种机制,它将一个 ...

  7. Ansible Roles角色

    Roles小技巧: 1.创建roles目录结构,手动或使用ansible-galaxy init test roles 2.编写roles的功能,也就是tasks. nginx rsyncd memc ...

  8. html5新媒体播放器标签video、audio 与embed、object

    html5里的一些新的标签,看到里面object.embed.video.audio都可以添加视频或音频文件 embed是针对非IE的浏览器的媒体播放器 video是html5出的一种新标准,但并不是 ...

  9. 第一次 在Java课上的编程

    第一次在java课上的编程(使用参数输入求和): 代码: public class He {    public static void main(String[] args)    {       ...

  10. 部署主从dns

    主机部署:yum安装DNS服务和依赖 [admin@haifly-bj-dns1 ~]$ sudo yum install bind-chroot启动named-chroot服务 [admin@hai ...