SOAPUI中文教程---腳本和腳本庫
阿新 • • 發佈:2017-06-03
text media color call 更新 編輯 清理 現在 chang SoapUI為腳本編寫提供了廣泛的選擇,使用Groovy或Javascript(由SoupUI 3.0開發)作為腳本語言,使用哪些選項可在左下方的項目詳細信息選項卡中設置項目級別。 這裏提供的大部分文檔將適用於Groovy語言,因為它可以大大簡化Java API的腳本(您可以在Groovy網站上獲取更多信息,教程等)。 本文檔將進一步介紹如何使用JavaScript的概述。 在彈出菜單(如上圖所示)包含標準的編輯有關的行為,並會在soapUI中展開,顯示當前範圍內可用的所有屬性。選擇屬性“Get Data”菜單選項(或創建一個選項新的)最終將創建一個腳本來獲取變量,例如
腳本可以在了SoapUI以下地方使用:
Groovy Script TestStep
運行測試之前和之後運行一個TestCase或TestSuite的初始化或清理。
當啟動/停止MockService時初始化或清理MockService狀態
打開/關閉項目,用於初始化或清理項目相關的設置
作為動態DataSource或DataSink與相應的DataSource/ DataSink測試步驟
為了提供動態MockOperation調度。
創建動態MockResponse內容
用腳本創建任意斷言
1. Script Editors
腳本編輯器通常在相應的對象編輯器的底部,每一個都有運行按鈕,下拉編輯菜單(與右鍵單擊彈出),信息標簽,以及幫助按鈕;def test = context.expand( ‘${#Project#test}‘ )
它得到了項目級“test”參數。
2. Groovy的腳本庫
你可以訪問Groovy類的中央圖書館,它可以用於集中常見任務和功能,並創建有用的擴展。
Groovy的腳本庫
腳本庫,可以使用如下;
- 指定soapUI的首選項卡要使用的目錄(默認為/scripts)。SoapUI將在啟動時在此目錄的文件檢查與“Groovy”的延伸和編譯該目錄,然後定期檢查(每5秒)來進行更新新的或現有的腳本編譯並在必要時重新編譯。
- 腳本應放置在其包含的包命名的目錄,也就是在包soapui.d??emo應放在指定的腳本目錄soapUI / demo目錄下的腳本。
- 編譯的類被添加到所有Groovy腳本的父類加載器,你可以訪問它們作為標準Java類。
首先,創建一個目錄(如C:\ GroovyLib),然後在目錄中添加Callee.groovy文件包含以下內容:
package readyapi.demo
//Callee.groovy
class Callee {
String hello() {
return "Hello world! "
}
def static salute( who, log ) { log.info "Hello again $who!" }
}
現在,讓我們設置SoapUI加載你的Groovy庫,設置文件>首選項>了SoapUI標簽>腳本庫。因此,我們將其設置為“C:\ GroovyLib”然後我們重新啟動了SoapUI拿起庫腳本。現在,如果我們在創造一個TestCase Groovy腳本步驟,我們可以從上面的庫使用類://Caller.groovy
c = new Callee()
log.info c.hello()
從Groovy的編輯器中運行,這將顯示Groovy的編輯日誌如下:Tue MONTH 29 10:56:08 EST YEAR:INFO:Hello world!
修改腳本文件
如果我們修改Callee.groovy文件:package readyapi.demo
//Callee.groovy
class Callee {
String hello() {
return "Hello world! "
}
String hello(String who) {
return "Hello $who"
}
def static salute( who, log ) { log.info "Hello again $who!" }
}
SoapUI將拿起修改後的文件(一旦它被保存),在日誌中看到:Tue MONTH 29 10:56:08 EST YEAR:INFO:C:\GroovyLib\Callee.groovy is new or has changed, reloading...
We also change the script:
//Caller.groovy
c = new Callee()
log.info c.hello("Mike")
And we get:
Tue MONTH 29 10:56:08 EST YEAR:INFO:Hello, Mike!
靜態方法
我們也可以調用靜態方法: readyapi.demo.Callee.salute( "Mike", log )
這將產生以下的輸出Tue MONTH 29 10:56:08 EST YEAR:INFO:Hello again Mike!
SOAPUI中文教程---腳本和腳本庫