在 《教你用soapUI測(cè)試web服務(wù)(一)》 和 《教你用soapUI測(cè)試web服務(wù)(二)》 中,我們介紹了在創(chuàng)建了第一個(gè) soapUI 項(xiàng)目之后,如何編寫并執(zhí)行測(cè)試用例。下面我們將繼續(xù)介紹剩下的步驟。
第十四步:為TestStep添加斷言的按鈕。
一旦追加了一個(gè)斷言,首先出現(xiàn)的是Select Assertion對(duì)話框。有若干不同的斷言可供選擇,在本文中我們只看其中的一個(gè)。每種斷言類型的更多細(xì)節(jié)請(qǐng)查看soapUI用戶指南。本例中我們將執(zhí)行一次XPath Query。選中該選項(xiàng)并點(diǎn)擊OK。
圖15:選擇XPath Query斷言。
第十五步:選擇XPath Query斷言。
這一部將會(huì)打開XPath Match配置對(duì)話框。在這一對(duì)話框中,你可以指定一個(gè)XPath Epression來(lái)取出希望測(cè)試的值。此外,你還要指定表達(dá)式預(yù)期的結(jié)果。你在編寫表達(dá)式和結(jié)果的時(shí)候,可以用對(duì)話框Expected Result 部分的“Select from current”和“Test”按鈕測(cè)試你的聲明。
圖16:loginReturn的XPATH校驗(yàn)所用的正則表達(dá)式。
第十六步:loginReturn的XPATH校驗(yàn)所用的正則表達(dá)式。
在上面圖16所示的例子中,你會(huì)看到我在回應(yīng)的XML中找“l(fā)oginReturn”元素,然后將其與一個(gè)10字符(含大小寫字母及0-9的數(shù)字)正則表達(dá)式比較。如果元素值匹配那些參數(shù)的話,那個(gè)聲明應(yīng)該返回真。這就是為什么我的預(yù)期為真的原因。
點(diǎn)擊Save的時(shí)候,斷言就會(huì)被添加到測(cè)試步驟中去了。你應(yīng)該就能夠在請(qǐng)求窗口底部看到所添加的斷言,如圖17所示。
圖17:XPath Match被添加到請(qǐng)求中。
第十七步: XPath Match被添加到請(qǐng)求中。
此刻,你可以關(guān)閉Login請(qǐng)求窗口了。我們已經(jīng)準(zhǔn)備好進(jìn)入下一個(gè)TestStep了。接下來(lái)我們要登出。你可以按照做login相同的步驟來(lái)添加logout。到了logout請(qǐng)求的時(shí)候(如下表5所示),你將會(huì)看到需要把login的會(huì)話傳遞過(guò)去。
表5:Logout請(qǐng)求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> |
如果你運(yùn)行這一請(qǐng)求是沒(méi)有傳遞會(huì)話,就會(huì)得到一個(gè)“false”的logoutReturn。這是因?yàn)镴IRA不知道誰(shuí)要登出。
要想改正此問(wèn)題,我們需要把我們login的會(huì)話id傳遞給logout請(qǐng)求。我們用名為Property Transfer的東西做此事。要想添加一個(gè)Property Transfer,請(qǐng)點(diǎn)擊TestCase窗口的Property Transfer按鈕。
圖18:TestCase 窗口的Property Transfer按鈕。
第十八步:TestCase 窗口的Property Transfer按鈕。
在InsertStep對(duì)話框中,你可以對(duì)屬性進(jìn)行命名。我通常根據(jù)用傳遞的值來(lái)命名。
圖19:命名Property Transfer。
第十九步:命名Property Transfer。
點(diǎn)擊OK時(shí),供添加新元素的Property Transfer窗口就出現(xiàn)了。要想創(chuàng)建一個(gè)傳輸,點(diǎn)擊窗口左上角的add new property transfer按鈕。
第二十步:添加新的屬性傳輸?shù)陌粹o。
圖20:添加新的屬性傳輸?shù)陌粹o。
你會(huì)再一次被提示對(duì)傳輸進(jìn)行命名。這是因?yàn)槟阋苍S想傳輸多個(gè)屬性。在這個(gè)窗口中,你可以映射多個(gè)屬性給傳輸(transfer)。這感覺(jué)有點(diǎn)多余,因?yàn)槲覀冎惶幚硪粋€(gè)屬性,但是如果你有五六個(gè)屬性需要在請(qǐng)求中轉(zhuǎn)移的話那就很好了。
一旦添加了傳輸進(jìn)來(lái)就可以對(duì)它進(jìn)行配置了。傳輸?shù)脑炊撕湍康亩硕夹枰x。我們會(huì)從loginReturn元素中選擇則值,并把它傳輸給Logout的in0元素。你可以在圖21中看到我是如何進(jìn)行配置的。
圖21:設(shè)置會(huì)話屬性傳輸參數(shù)。
第二十一步:設(shè)置會(huì)話屬性傳輸參數(shù)。
如果你點(diǎn)擊Property Transfer窗口頂部的綠色箭頭,它就會(huì)運(yùn)行傳輸,然后把結(jié)果顯示在窗口底部的Transfer Log處。
你會(huì)看到上面的例子中“TD9CJdR3F1”這個(gè)值出現(xiàn)了,然后也被傳輸過(guò)去了。現(xiàn)在,如果你回去再跑一遍L(zhǎng)ogout請(qǐng)求,它就會(huì)返回真了。在運(yùn)行時(shí),該值會(huì)動(dòng)態(tài)地在兩個(gè)請(qǐng)求之間轉(zhuǎn)移。
如果你現(xiàn)在看看自己的TestCase,就會(huì)看到所有三個(gè)元素都列出來(lái)了。如果你的元素不是按照正確的次序顯示的,只需按所需的次序拖拽它們就行了。
圖22:完成login和logout的TestCase。
第二十二步:完成login和logout的TestCase。
繼續(xù)用窗口頂部工具條的綠色按鈕運(yùn)行你的測(cè)試用例。你會(huì)注意到狀態(tài)欄更新和摘要測(cè)試日志都顯示在TestCase窗口的底部了,如圖23所示。
圖23:soapUI顯示的TestCase測(cè)試結(jié)果摘要。
第二十三步:soapUI顯示的TestCase測(cè)試結(jié)果摘要。
于是,我們就已經(jīng)成功設(shè)置并運(yùn)行了我們的第一個(gè)JIRA服務(wù)測(cè)試了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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