gpt4 book ai didi

multithreading - groovy脚本中的soapui共享数据源

转载 作者:行者123 更新时间:2023-12-03 13:05:12 24 4
gpt4 key购买 nike

我已经在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);
}
}

我想修改此脚本,以便池中的每个线程从数据源获取唯一的(下一个)未使用的值

我尝试按照此处的建议( Concurrency with Groovy)使用来自java.util.concurrent的newFixedThreadPool,但是我无法使它正常工作-请求重复或SoapUI崩溃(我是并发的新手)。

您能帮我把它弄好吗?

最佳答案

我认为这将为您工作:

 while (true) {
for ( i in testDataSet ) {

def th = Thread.start(){
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);
}

th.join()
}

因此,将在每个循环上创建新线程。

如果您想测试其是否可以正常工作,可以将loginfo(s)放入代码中...
 log.info("Thread Id: " + Thread.currentThread().getId() as String)

关于multithreading - groovy脚本中的soapui共享数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13359235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com