SoapUI測試登錄


實際登錄過程為:

1. 打開/login頁面

2. 登錄

3. 自動調整至/dashboard頁面

 

SoapUI的設計上,每一次請求后,都會清理掉cookie,於是設計的測試登錄過程如下:

1. post:/login

2. 讀取第一步的session,傳遞給下一步

3. get:/dashboard

 

1. 創建一個TestSuite

2. 新建一個TestCase,命名為login

3. 添加HTTP Request:login,設置Method為POST,在Requset參數配置參數(具體根據接口文檔配置),勾選Post QueryString(對應於過程中的第一步)

4. 添加HTTP Request:dashboard,設置Method為GET(對應於第三步)

5. 在login和dashboard兩步中添加Groovy Script

6. 在Groovy Script中傳遞cookie中的userSession信息

import com.eviware.soapui.support.types.StringToStringMap

def cookiesList = testRunner.testCase.getTestStepByName("login").testRequest.response.responseHeaders["set-cookie"]
log.info cookiesList
 
//Get the cookie
String cookieNew = cookiesList.get(0)
log.info "cookie : "+cookieNew

//Put cookie to a StringMap
def cookieMap = new StringToStringMap()
cookieMap.put("Cookie",cookieNew)

testRunner.testCase.getTestStepByName("dashboard").httpRequest.setRequestHeaders(cookieMap);

 

測試結果:

運行該Test Case

在TestCase Log中找到Step3的結果,打開后,查看Response Message中的HTML,可以看到dashboard頁面

 

剛剛開始入門SoapUI,整個登錄過程的測試,挺坎坷的。一直不知道session怎么傳遞。

首先看菜單,就覺得可以使用Property Transfer:

折騰了很久,都沒有成功。也不想網上搜索的使用Property Transfer時,可以使用Select Source XPath

 

由於一直使用Property Transfer傳遞值不成功,仔細看了login那一步的Response Message,發現Raw中,有在cookie中寫入usersSession

馬上轉為考慮從cookie中讀取userSession。

但是我所找到的所有網上的讀取cookie都是使用:

但是一直不成功,並且SoapUI一直報錯說cookiesList為null,導致后面的代碼無法執行。

一度放棄研究SoapUI,然后發現,login -- Response Message -- Raw中的是“set-cookie”,結果發現,這里大小寫敏感。

 

參考:

1. Property Transfer使用:http://blog.csdn.net/wanglha/article/details/48286169

2. SoapUI設置Cookie:https://www.cnblogs.com/milo-xie/p/6431575.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM