2017-08-20 10 views
1

私は、データセットXをループし、そのデータセットX内の各レコードに対して別のデータセットYでループし、いくつかの結果を取得するスクリプトを持っています。これらの結果をDataSinkにどのように渡すことができますか?GroovyスクリプトからSoapUIのDataSyncに値を渡す

周りの提案は、私のグルーヴィースクリプトでは私が結果を受け取るループを持っていますが、私はすべての結果と私は最後の結果を見ることができると思います私のDataSinkは最後の結果しか見つけません。

以下の私のコード:

def goodWeather = context.expand('${#TestCase#goodWeather}') as String 

if (goodWeather.equals("false")) 
{ 
    def response = context.expand('${CityWeatherRequest#Response#declare namespace ns1=\'http://tempuri.org/\'; //ns1:GetCityWeatherResponse[1]/ns1:GetCityWeatherResult[1]/ns1:Weather[1]}') 
    def cityinfo_City = context.expand('${GetCitiesDS#cityinfo_City}') 
    def cityinfo_Country = context.expand('${GetCitiesDS#cityinfo_Country}') 

    //Keep count to restrict number of returns. CountSuggestedCities is a property. 
    def count = context.expand('${#TestCase#countSuggestedCities}') as Integer 
    assert count instanceof Integer 

    //Suggest some cities if skies are clear 
    if (response.contains("clear sky")) 
    { 
    if (count == 0) log.info("Making suggestions") 
    count ++ 
    testRunner.testCase.setPropertyValue("countSuggestedCities", count.toString()); 
     log.info(cityinfo_City + " located in: " + cityinfo_Country); 
    } 

    //Check property maxSuggestedCities to see if maximum suggestes required as been reached. 
    if (count == (context.expand('${#TestCase#maxSuggestedCities}') as Integer)) 
    { 
    testRunner.testCase.setPropertyValue("countSuggestedCities", "0"); 
    testRunner.testCase.setPropertyValue("goodWeather", "true"); 
    testRunner.gotoStepByName("SeperatorScript"); 
    } 
} 
else 
{ 
    testRunner.gotoStepByName("SeperatorScript"); 
} 

私が欲しいものはDataSinkを使用してデータベースにその情報を保存してlog.info(cityinfo_City + " located in: " + cityinfo_Country);を交換することです。

+0

こんにちは@aristotll 。 – Dragonfly

答えて

2

私はsoapui docがgroovyとデータベースを持つDataSinkについての例を提供しているとは思わない。ただし、挿入するには常にGroovy sqlを使用してください。ここでは例のコードは次のとおりです。

def driverName = "com.mysql.jdbc.Driver" 
com.eviware.soapui.support.GroovyUtils.registerJdbcDriver(driverName) 
def user = "root" // change this , password, and jdbc url 
def password = "" 
def con = groovy.sql.Sql.newInstance("jdbc:mysql://localhost:3306/test_for_so", 
     user, password, driverName) 
def cityinfo_City = 'London' 
def cityinfo_Country = 'England' 
con.execute("INSERT INTO cityinfo (cityinfo_City, cityinfo_Country) VALUES (?, ?)", 
     [cityinfo_City, cityinfo_Country]) 
con.close() 
あなたが示唆したように、私は奇妙な発見DataSinkを経由して欲しかった何をする方法を見つけることができませんでした、私は@aristotll MySQLドライバ
+0

うん感謝を使用しています、私はそれをやった – Dragonfly

関連する問題