SoapUI對於Json資料進行屬性值獲取與傳遞

2022-03-19 15:07:46 字數 2701 閱讀 3625

soapui的property transfer功能可以很好地對介面請求返回的資料進行引數屬性獲取傳遞,但對於json資料,soapui會把資料格式先轉換成xml格式,但實際情況卻是,轉換後的xml格式往往根本沒法用xpath形式獲取到指定的資料了。因此只能用script指令碼形式了。

]}}例如要獲得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('$')        //##號內為定義哪個級別的屬性變數,後面為屬性

獲取登入時的介面cookies值和登入相關的jsessionid

1

def setcookie = testrunner.testcase.teststeps["

開啟cas頁面

"].testrequest.response.responseheaders["

set-cookie"]

2345

defjsessionid

6if ((m = setcookie =~ /jsessionid=(\w*);/))

驗證登入資訊:

1

def setcookie = testrunner.testcase.teststeps["

登入請求

"].testrequest.response.responseheaders["

set-cookie"]

2def

match

3if ((m = setcookie =~ /castgc=(.*);/))

7def castgc =match

89 testrunner.testcase.setpropertyvalue( "

castgc

", castgc )

nodejs對於json資料的引用

以上四點,就是json格式的所有內容 完全顛覆了我初次接觸json時對於json的認知,一直以為json的定義就是什麼物件與陣列的巢狀 json物件的轉化 引用fs檔案系統模組 使用fs.readfilesync 方法引用到對應的json檔案 使用json.parse 方法,將引用到的json檔案內...

後台對於JSON 資料的解析

json資料解析的有點在於他的體積小,在網路上傳輸的時候可以更省流量,所以使用越來越廣泛,下面介紹使用jsonobject和jsonarray的兩種方式解析json資料。使用以上兩種方式解析json均需要依賴json lib.jar開發包使用依賴包 1 jsonobject 使用jsonobject...

對於JSON資料的操作的方法

此方法是將普通的符合json資料格式的字串轉化為json資料。例如 此處有乙個符合json格式的字串。var jsonstr 使用該方法將字串轉化為json資料 var obj1 json.parse jsonstr 下面我們分別列印字串和json資料,看兩者有什麼區別 console.log ob...