本篇文章來講一下SoapUI在使用中常用的參數化方法字段參數化和使用DataSource調用Excel中的
數據給接口參數化,其中DataSource功能SoapUI開源版沒有,大家可以使用破解版,
破解地址:https://www.cnblogs.com/Sweettesting/p/11399534.html
一、准備工作
為了方便大家上手實操,本次我們使用公用的WEB服務。
關於接口方法“getDomesticAirlinesTime”的介紹:
| 輸入參數:startCity = 出發城市(中文城市名稱或縮寫、空則默認:上海); lastCity = 抵達城市(中文城市名稱或縮寫、空則默認:北京); theDate = 出發日期(String 格式:yyyy-MM-dd,如:2007-07-02,空則默認當天); userID = 商業用戶ID(免費用戶不需要)
Item(AirlineCode)航班號、Item(StartDrome)出發機場、 Item(ArriveDrome)到達機場、Item(StartTime)出發時間、 Item(ArriveTime)到達時間、Item(Mode)機型、 Item(AirlineStop)經停、Item(Week)飛行周期(星期) |
二、參數化之Properties
Property 是一個命名的字符串可以被 Groovy Script,Property Transfer 或者 Property-Expansion 引用,目前所有的變量均被處理為字符串。
SoapUI允許在項目的各個層次中定義變量,常用的層次包括: Project,TestSuite,TestCase,Global等。
官方文檔:https://www.soapui.org/docs/functional-testing/teststep-reference/properties.html
1.首先,我們New Soap Project,新建一個Soap接口項目,命名為DomesticAirline

2.我們鼠標雙擊Request1,依據接口方法要求輸入入參,測試一下此接口的正確性

3.為Request1新增一個TestCase,命名為“獲取航班時刻表”,此時會發現之前我們測試接口的入參數據跟着帶入進來


4.右鍵Test Steps>>>Add Step>>>Properties,然后添加需要進行參數化的變量,變量名自定義為startCity、lastCity、theDate,填寫對應的Value


5.雙擊“獲取航班時刻表”請求,對請求中的參數進行變量引用,格式:${#Properties#變量名},
第一個#后定義哪個級別的屬性變量,第二個#后定義屬性名稱。REST類接口請求同理。

6.雙擊TestCase1,點擊綠色三角圖標運行請求,進度條綠色表示請求通過。在TestCase Log中雙擊Step可以查看運行結果。


三、參數化之DataSource
對於DataSource工具欄中各項屬性的含義,大家可以閱讀官方文檔:https://www.soapui.org/docs/data-driven-tests/reference/datasources.html
DataSource Type:

a.本次我們使用DataSource調用Excel中的數據給接口參數化,先准備Excel文件,內容如下:

這里要注意,入參theDate的值要使用文本格式,不然SoapUI會讀取出錯。
b.右鍵Test Steps-->Add Step-->DataSource,添加變量名startCity、lastCity、theDate,
DataSource選擇Excel,Configuration配置見圖解。

c.配置好DataSource,接下來在接口中進行參數化,如起始城市${DataSource#startCity},其它參數同理

d.此時,我們需要遍歷DataSource中的所有內容,這里就要用到DataSource Loop這個步驟。
右鍵Test Steps-->Add Step-->DataSource Loop,設置DataSource Loop的數據來源、Target step

e.調整Test Steps的順序,正確的步驟應當是“數據源>>>請求>>>數據源循環”,
雙擊TestCase1,運行,我們可以看到Excel的數據均被調用。


