在多个线程上发送 SOAP 请求

Send SOAP requests on multiple threads

提问人:plaidshirt 提问时间:11/2/2023 更新时间:11/2/2023 访问量:14

问:

我使用带有 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;
测试 Groovy 性能测试 SOAPUI

评论


答: 暂无答案