在 《教你用soapUI測試web服務(一)》 和 《教你用soapUI測試web服務(二)》 中,我們介紹了在創建了第一個 soapUI 項目之后,如何編寫并執行測試用例。下面我們將繼續介紹剩下的步驟。
第十四步:為TestStep添加斷言的按鈕。
一旦追加了一個斷言,首先出現的是Select Assertion對話框。有若干不同的斷言可供選擇,在本文中我們只看其中的一個。每種斷言類型的更多細節請查看soapUI用戶指南。本例中我們將執行一次XPath Query。選中該選項并點擊OK。
圖15:選擇XPath Query斷言。
第十五步:選擇XPath Query斷言。
這一部將會打開XPath Match配置對話框。在這一對話框中,你可以指定一個XPath Epression來取出希望測試的值。此外,你還要指定表達式預期的結果。你在編寫表達式和結果的時候,可以用對話框Expected Result 部分的“Select from current”和“Test”按鈕測試你的聲明。
圖16:loginReturn的XPATH校驗所用的正則表達式。
第十六步:loginReturn的XPATH校驗所用的正則表達式。
在上面圖16所示的例子中,你會看到我在回應的XML中找“loginReturn”元素,然后將其與一個10字符(含大小寫字母及0-9的數字)正則表達式比較。如果元素值匹配那些參數的話,那個聲明應該返回真。這就是為什么我的預期為真的原因。
點擊Save的時候,斷言就會被添加到測試步驟中去了。你應該就能夠在請求窗口底部看到所添加的斷言,如圖17所示。
圖17:XPath Match被添加到請求中。
第十七步: XPath Match被添加到請求中。
此刻,你可以關閉Login請求窗口了。我們已經準備好進入下一個TestStep了。接下來我們要登出。你可以按照做login相同的步驟來添加logout。到了logout請求的時候(如下表5所示),你將會看到需要把login的會話傳遞過去。
表5:Logout請求XML。
以下是引用片段:
<soapenv:Envelope?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns:xsd="http://www.w3.org/2001/XMLSchema"?xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"?xmlns:soap="http://soap.rpc.jira.atlassian.com"> ???<soapenv:Header/> ???<soapenv:Body> ??????<soap:logout?soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> ?????????<in0?xsi:type="xsd:string">?</in0> ??????</soap:logout> ???</soapenv:Body> </soapenv:Envelope> |
如果你運行這一請求是沒有傳遞會話,就會得到一個“false”的logoutReturn。這是因為JIRA不知道誰要登出。
要想改正此問題,我們需要把我們login的會話id傳遞給logout請求。我們用名為Property Transfer的東西做此事。要想添加一個Property Transfer,請點擊TestCase窗口的Property Transfer按鈕。
圖18:TestCase 窗口的Property Transfer按鈕。
第十八步:TestCase 窗口的Property Transfer按鈕。
在InsertStep對話框中,你可以對屬性進行命名。我通常根據用傳遞的值來命名。
圖19:命名Property Transfer。
第十九步:命名Property Transfer。
點擊OK時,供添加新元素的Property Transfer窗口就出現了。要想創建一個傳輸,點擊窗口左上角的add new property transfer按鈕。
第二十步:添加新的屬性傳輸的按鈕。
圖20:添加新的屬性傳輸的按鈕。
你會再一次被提示對傳輸進行命名。這是因為你也許想傳輸多個屬性。在這個窗口中,你可以映射多個屬性給傳輸(transfer)。這感覺有點多余,因為我們只處理一個屬性,但是如果你有五六個屬性需要在請求中轉移的話那就很好了。
一旦添加了傳輸進來就可以對它進行配置了。傳輸的源端和目的端都需要定義。我們會從loginReturn元素中選擇則值,并把它傳輸給Logout的in0元素。你可以在圖21中看到我是如何進行配置的。
第二十一步:設置會話屬性傳輸參數。
如果你點擊Property Transfer窗口頂部的綠色箭頭,它就會運行傳輸,然后把結果顯示在窗口底部的Transfer Log處。
你會看到上面的例子中“TD9CJdR3F1”這個值出現了,然后也被傳輸過去了。現在,如果你回去再跑一遍Logout請求,它就會返回真了。在運行時,該值會動態地在兩個請求之間轉移。
如果你現在看看自己的TestCase,就會看到所有三個元素都列出來了。如果你的元素不是按照正確的次序顯示的,只需按所需的次序拖拽它們就行了。
圖22:完成login和logout的TestCase。
第二十二步:完成login和logout的TestCase。
繼續用窗口頂部工具條的綠色按鈕運行你的測試用例。你會注意到狀態欄更新和摘要測試日志都顯示在TestCase窗口的底部了,如圖23所示。
圖23:soapUI顯示的TestCase測試結果摘要。
第二十三步:soapUI顯示的TestCase測試結果摘要。
于是,我們就已經成功設置并運行了我們的第一個JIRA服務測試了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
