提问人:plaidshirt 提问时间:11/2/2023 更新时间:11/2/2023 访问量:14
在多个线程上发送 SOAP 请求
Send SOAP requests on multiple threads
问:
我使用带有 Groovy 脚本的 SoapUI 在多个线程中发送 SOAP 请求。txt 文件中有一个 ID 列表,必须将它们一个一个地放在 SOAP 请求中并发送。我尝试在多个线程上执行此操作。 我写了以下脚本,但它执行得太慢了。似乎没有同时有 40 个线程。
import java.util.concurrent.*
def threadPoolSize = 40
def executorService = Executors.newFixedThreadPool(threadPoolSize)
def completionService = new ExecutorCompletionService<Void>(executorService)
def props = testRunner.testCase.getTestStepByName("Properties");
def testStepSend = testRunner.testCase.getTestStepByName("Send request")
def dt = String.format('__%tF_%<tH_%<tM', java.time.LocalDateTime.now())
def resultFile = new File("C:\\testing\\" + "myResult_" + dt + ".txt")
resultFile.createNewFile()
props.setPropertyValue("resultFile", resultFile.toString());
def is = new File("C:\\testing\\mylist.txt").newInputStream()
is.eachLine { line ->
def future = completionService.submit({
if(line.toString().length() > 0){
props.setPropertyValue("uuid", line.toString());
testStepSend.run(testRunner, context)
}
return null
} as Callable<Void>)
future.get(1, TimeUnit.MINUTES)
}
executorService.shutdown()
executorService.awaitTermination(1, TimeUnit.HOURS)
is.close()
def dontCare = null;
答: 暂无答案
评论