1. 程式人生 > >SOAPUI中文教程---腳本和腳本庫

SOAPUI中文教程---腳本和腳本庫

text media color call 更新 編輯 清理 現在 chang

SoapUI為腳本編寫提供了廣泛的選擇,使用Groovy或Javascript(由SoupUI 3.0開發)作為腳本語言,使用哪些選項可在左下方的項目詳細信息選項卡中設置項目級別。 這裏提供的大部分文檔將適用於Groovy語言,因為它可以大大簡化Java API的腳本(您可以在Groovy網站上獲取更多信息,教程等)。 本文檔將進一步介紹如何使用JavaScript的概述。

腳本可以在了SoapUI以下地方使用:

Groovy Script TestStep

運行測試之前和之後運行一個TestCase或TestSuite的初始化或清理。

當啟動/停止MockService時初始化或清理MockService狀態

打開/關閉項目,用於初始化或清理項目相關的設置

作為動態DataSource或DataSink與相應的DataSource/ DataSink測試步驟

為了提供動態MockOperation調度。

創建動態MockResponse內容

用腳本創建任意斷言


所有腳本都獲得了多項具體情況的變量,總是包括記錄日誌對象Groovy的日誌和上下文對象為執行特定上下文PropertyExpansions或Property處理(如果適用)。具體的上下文變量始終可用於直接訪問了SoapUI對象模型。

1. Script Editors

腳本編輯器通常在相應的對象編輯器的底部,每一個都有運行按鈕,下拉編輯菜單(與右鍵單擊彈出),信息標簽,以及幫助按鈕;

技術分享

在彈出菜單(如上圖所示)包含標準的編輯有關的行為,並會在soapUI中展開,顯示當前範圍內可用的所有屬性。選擇屬性“Get Data”菜單選項(或創建一個選項新的)最終將創建一個腳本來獲取變量,例如

def test = context.expand( ‘${#Project#test}‘ )

它得到了項目級“test”參數。

2. Groovy的腳本庫

你可以訪問Groovy類的中央圖書館,它可以用於集中常見任務和功能,並創建有用的擴展。

Groovy的腳本庫

腳本庫,可以使用如下;

  • 指定soapUI的首選項卡要使用的目錄(默認為/scripts)。SoapUI將在啟動時在此目錄的文件檢查與“Groovy”的延伸和編譯該目錄,然後定期檢查(每5秒)來進行更新新的或現有的腳本編譯並在必要時重新編譯。
  • 腳本應放置在其包含的包命名的目錄,也就是在包soapui.d??emo應放在指定的腳本目錄soapUI / demo目錄下的腳本。
  • 編譯的類被添加到所有Groovy腳本的父類加載器,你可以訪問它們作為標準Java類。

請記住,腳本文件必須是有效的類,不只是任意腳本,因此,作為一個例子,讓我們建立這些Groovy對象之一

首先,創建一個目錄(如C:\ GroovyLib),然後在目錄中添加Callee.groovy文件包含以下內容:

package readyapi.demo //Callee.groovyclass 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.groovyc = 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.groovyclass 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中文教程---腳本和腳本庫