SoapUIオープンソースでテストケースを準備しました。これは、csvファイルの値をループし、値の各セットの要求を送信します(groovyスクリプトによって処理されます)。新しい反復ごとの各スレッドがcsvファイルの次の行の値を使用するように変更したいと思います。
import com.eviware.soapui.impl.wsdl.teststeps.*
def testDataSet = []
def fileName = "C:\\sSHhrTqA5OH55qy.csv"
new File(fileName).eachLine { line -> testDataSet.add( line.split(",") ) }
def myProps = new java.util.Properties();
myProps = testRunner.testCase.getTestStepByName("Properties");
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def testCase = testRunner.testCase;
def testStep = testCase.getTestStepByName("TestRequest");
testRunner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testCase, null);
testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
while (true) {
for ( i in testDataSet ) {
myProps.setPropertyValue("parameter0",i[0]);
myProps.setPropertyValue("username",i[1]);
myProps.setPropertyValue("parameter1",i[2]);
myProps.setPropertyValue("password",i[3]);
testStep.getTestRequest().setUsername(myProps.getPropertyValue("username"))
testStep.getTestRequest().setPassword(myProps.getPropertyValue("password"))
testStep.run(testRunner, testStepContext);
}
}
このスクリプトを変更して、プールの各スレッドがデータソースから一意の(次の)未使用の値を取得するようにします
ここで提案されているようにjava.util.concurrentのnewFixedThreadPoolを使用しようとしましたが(Groovyとの同時実行)、動作させることができません-リクエストが重複しているか、SoapUIがクラッシュします(同時実行は初めてです)。
私がそれを正しくするのを手伝ってくれませんか?