SoapUI 關聯之Property Transfer、JSONPath、Xpath

進行接口功能測試過程當中,常常會碰到,須要獲取到上一個請求響應結果中數據,傳遞到下一個請求中來使用。在soapui中咱們經過Property Transfer來實現。html

 

一、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測試


二、Property Transfer 之 JSONPath

假設咱們有兩個接口:登陸、查詢用戶信息。登陸後響應結果會返回一個token值;查詢用戶信息時,請求頭中需帶上這個token值,才能查詢成功fetch


1)登陸請求,運行返回結果成功,且返回token值 ui


2)查詢用戶信息,請求頭中添加token值,運行,成功查詢到當前登陸用戶的信息spa

若是隻有以上2步,則每次都得先運行登陸,copy出token值,再粘貼到查詢用戶信息的請求頭,再運行;至關麻煩;所以在以上2步中間,咱們須要插入一個step3d


3)右鍵loginIn-->Insert Step-->Property Transfer,可是在進行Target設置時,不能直接把值傳到user請求頭中,因此,先自定義設置一個變量,把token值傳遞到這個變量,再進行變量引用code


4)右鍵Test Steps-->Add step-->Properties,而且自定義一個變量名稱爲tokenxml


5)進行Property Transfer的設置以下,運行後查看Properties中token值獲取成功htm

這裏$.token表示獲取根元素下的token對應的值。JSONPath詳細請移步參考http://lemfix.com/topics/63

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


6)從上面步驟能夠看到token已經獲取成功了,怎麼傳遞到查詢信息接口的請求頭呢?直接${變量名}引用


7)雙擊TestCase,運行成功


三、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的關聯方式就整理到這,但願你們學有所用

相關文章
相關標籤/搜索