2016-07-14 8 views
0

TL; DR

(手動で)単一SOAPUIテストステップのJDBC接続プロパティを更新した後SoapUIのすべてのJDBCテストステップに接続設定を適用する方法は?

    Iは ${property}に頼ることなくプロジェクト(他のテストステップにコピーする方法
  • 拡張)?
  • Groovyがキーだと思いますか?

背景

私はそのような私の開発データベースを指している多くのJDBCテストステップ含むSOAPUIプロジェクトがあります。JDBC TestStepのオープンソース版を設定するためのフィールドがあり

を 接続プロパティとSQLクエリを手動で実行します。 Getting Started | JDBC (SoapUI.org)

制約:私は、現在入手可能なSmartbearのプロバージョンから接続機能を持たずに働いています

ゴール

展開する前に、私はテストスイート(S)を通じて変更JDBC接続設定に私が持っている私たちのステージング環境、すなわちで同じテストを実行します。

予備的検討事項: 私はSOAPUI ability to switch between database connections for test suiteで説明したように、プロパティの拡張に依存する接続文字列とドライバの分野に私のテストを編集することができステージング・データベースへのすべてのJDBCの手順再直接のために。

具体的なアプローチ: しかし、ここで、この場合には、私はテストに直接接続文字列およびドライバを確認する必要があります(ただ${expansion}変数を見るとは対照的に)ステップ - 論拠:それはより多くを与えます実際の値を持つ便利なスクリーンショット...

答えて

0

接続プロパティは、次のGroovyスクリプトを使用して、プロジェクト内の他のJDBCのテストステップに一つのテスト段階からコピーすることができます。

// Select "correctly configured" JDBC TestStep/Case/Suite to be used as reference 
def s = testRunner.testCase 
     .testSuite 
     .project 
     .testSuites["Reference TestSuite"] 
     .testCases["Reference TestCase"].getTestStepAt(1) 
log.info "${s.getConnectionString()}, ${s.getDriver()}" 

// Use s to configure all JDBC TestSteps in current TestSuite 
testRunner.testCase 
     .testSuite 
     .testCases 
     .each{iTC, testCase -> 
      //log.debug "${iTC}: ${testCase}" 
      testCase.getTestStepsOfType(com.eviware.soapui.impl.wsdl.teststeps.JdbcRequestTestStep) 
        .each{testStep -> 
         testStep.setConnectionString(s.getConnectionString()) 
         testStep.setDriver(s.getDriver()) 
         log.info "${testStep.getConnectionString()}, ${testStep.getDriver()}" 
        } 
     } 

これを実行するには、追加のテストスイートinternal TSとテストケースinternal TCをそれぞれ導入しました。私はGroovy TestStepを上記のスクリプトでinternal TCに追加して一度実行しました。 私はいつかもう一度それが必要になるまでinternal TSを無効にしました。

関連する問題