1. 程式人生 > >SOAPUI測試步驟(五)---Properties

SOAPUI測試步驟(五)---Properties

轉載地址:http://www.cnblogs.com/zerotest/p/4677540.html

屬性是先進soapUI測試一個核心的方面。

對於功能測試,屬性用於引數化測試的執行,例如:

  • 屬性可以被用來儲存你的服務的節點,因此很容易改變實際的節點測試執行期間使用(見下面的例子)。
  • 屬性可用於身份驗證憑證,便於管理這些在一箇中心位置或外部檔案中。
  • 屬性可用於傳輸和共享會話id在測試執行,所以多個teststeps或用例可以共享相同的會話

讓開始尋找一些基本在我們深入一個例子。

1。 定義屬性

soapUI在幾個級別上定義可以定義:

  • 在專案,TestSuite和TestCase相應的屬性選項卡(見下文)。
  • 在一個屬性TestStep(見下文)。
  • 在一個DataGen TestStep( 閱讀更多 )。
  • 的一部分TestStep配置:
    • 在一個數據源TestStep( 閱讀更多 )來執行資料驅動測試場景。
    • 在一個DataSink TestStep( 閱讀更多 屬性值儲存到外部儲存。

此外,大多數其他TestSteps暴露屬性讀寫,例如:

  • 指令碼TestStep暴露出含有最後執行的指令碼返回的字串值的“結果”屬性。
  • 所有請求TestSteps暴露包含上次收到響應的響應屬性。

屬性可以很容易地讀取和從指令碼寫入,並在TestSteps之間轉移

專案,TestSuite和TestCase屬性

例如在專案級別:

project-properties

在這裡你可以看到定義的“Some Property”屬性在Properties選項卡的Overview選項卡專案視窗(向右),以及專案的自定義屬性選項卡在左側導航節點。 相應的標籤可用於testsuite和TestCase,都可以用來新增/刪除/改變所包含的屬性。

在這些級別定義屬性使他們能夠很容易地訪問指令碼(見下文),通過屬性擴張(見下文),例如全球密碼可能被儲存在專案級別且訪問使用標準屬性擴充套件請求訊息:${#Project#Password}

2。 屬性TestStep

TestStep屬性用於用於在TestCase定義自定義屬性。 其主要優勢在TestCase級別定義的屬性有:

  • 你可以組織屬性為多個屬性TestSteps(如果你有很多)。
  • 您可以指定源和目標檔名用來讀寫執行TestStep時所包含的屬性。

屬性TestStep視窗如下:

properties-teststep-window

這裡您可以看到兩個定義的屬性讀取指定的登入。 在執行TestStep txt檔案。

3。 指令碼訪問屬性

閱讀和寫作從指令碼直接屬性值,獲得屬性值首先需要得到包含的物件,然後使用getPropertyValue(. .)方法。 例如從指令碼TestStep中獲得TestSuite屬性你會做到以下幾點:

1。/ /獲取使用者名稱屬性從TestSuite 2。def 使用者名稱= testRunner.testCase.testSuite.getPropertyValue( “使用者名稱” )

屬性已在TestSuite的視窗被定義如下:

sample-testsuite-property

和寫這個值(例如)你會做一個HTTP請求引數屬性

1。/ /寫HTTP請求的使用者名稱 2。testRunner.testCase.testSteps[ “HTTP請求” ].setPropertyValue( “使用者名稱” 、使用者名稱)

4。 例子——集中的埠

在更復雜的服務環境中一個常見的場景是需要改變的一些服務的端點參與測試,例如測試,開發和不同環境之間測試。 手動更改埠當然是可能的但太乏味當可能有數百個請求teststeps參與,並使用主機覆蓋命令列選項不允許你改變一個服務埠如果你有多個要使用。 屬性來救援;

  1. 定義一個專案屬性控制埠: 

    service-endpoint-property
  2. 通過property-expansion埠配置為使用這個屬性: 

    service-endpoints-tab
     
  3. 確保你的請求使用埠配置: 

    request-service-endpoint
     
  4. 現在,當您執行要求,屬性將自動替換為其當前值。 只是改變端點的使用者介面,從命令列您可以使用- p選項;