SoapUI对于Json数据进行属性值获取与传递
来源:互联网 发布:mac系统压缩软件 编辑:程序博客网 时间:2024/05/20 04:13
SoapUI的Property Transfer功能可以很好地对接口请求返回的数据进行参数属性获取与传递,但对于Json数据,SoapUI会把数据格式先转换成XML格式,但实际情况却是,转换后的XML格式往往根本没法用Xpath形式获取到指定的数据了。因此只能用Script脚本形式了。
{"addUsersToDirectoryResponse":{"addUserToDirectoryResponse":[{"ack":"Success","userId":"2745379"}]}}
例如要获得userId的数据,有两种方式
一、建立一个script步骤,然后再建一个Property Transfer步骤,将script步骤的结果传递到指定的properties中的property中就可以了
import groovy.json.JsonSlurper
def xresponse = testRunner.testCase.testSteps["addUserToDirectory"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def result = slurper.parseText(xresponse)
def userId = result.addUsersToDirectoryResponse.addUserToDirectoryResponse[0].userId
二、直接在script步骤中赋值
import groovy.json.JsonSlurper
def xresponse = testRunner.testCase.testSteps["addUserToDirectory"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def result = slurper.parseText(xresponse)
def userId = result.addUsersToDirectoryResponse.addUserToDirectoryResponse[0].userId.toString()
//testSteps[]中括号中指定当前testCase中的哪个Properties步骤,setPropertyValue()方法中第一个userId参数指Properties步骤中名为userId的property,
第二个参数设定它的值,即上面从返回结果中获得的userId
testRunner.testCase.testSteps["Properties"].setPropertyValue("userId",userId)另外,在断言中使用脚本断言时,如果也要获得testCase步骤中的property的话,不能直接使用
testRunner.testCase.testSteps["Properties"].getPropertyValue("userId")这样的形式,
否则会报"No such property: testRunner for clases: Script1"的错误
在Script Assertion中想要获得属性值的话可以用以下形式替代
def number = messageExchange.modelItem.testCase.testSteps["Properties"].getPropertyValue("userId")
对于项目中的属性可分为这么几个级别Global, Project,TestSuite, TestCase
即全局变量、项目级别、用例集级别、单个用例级别
要获得如项目级别的属性变量的话,可以用以下方法
def time_num=context.expand('${#Project#time_num}') //##号内为定义哪个级别的属性变量,后面为属性名
- SoapUI对于Json数据进行属性值获取与传递
- SoapUI对于Json数据进行属性值获取与传递
- soapui笔记 Property Transfer 传递属性值
- 【SoapUI】获取请求响应json中键值对的值,并进行断言
- soapUI获取数据表数据并向下传递给request
- 通过AJAX与Servlet进行交互:通过JSON传递数据
- SOAPUI 属性传递之二
- 使用JSON格式传递数据,获取JSON的值
- SOAPUI系列09- SOAPUI 属性传递之二
- JAVA中使用JSON进行数据传递
- JAVA中使用JSON进行数据传递
- JAVA中使用JSON进行数据传递
- JAVA中使用JSON进行数据传递
- JAVA中使用JSON进行数据传递
- JAVA中使用JSON进行数据传递
- JAVA中使用JSON进行数据传递
- JAVA中使用JSON进行数据传递
- JAVA中使用JSON进行数据传递
- UVaOJ106 - Fermat vs. Pythagoras
- 第一步:office转pdf
- 微信打造智能家居新生活
- LeetCode-Add Two Numbers
- linux 系统目录介绍
- SoapUI对于Json数据进行属性值获取与传递
- 自己的动态规划题目(持续更新)
- 第二步:pdf转swf
- 图论--网络流题目(持续更新)
- 项目角色职责分配表 项目角色划分
- 第三步:FlexPaper呈现swf
- UICollectionView如果在数据不够一屏时上下滚动
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
- linux下mysql5.5.11编译安装笔记