我正在尝试加载测试包含多个Web方法的Web服务。一些Web服务方法被调用得比其他方法更多,所以我试图模拟一个真实的负载(尽可能多)。
示例:
1对web方法x的请求
对web方法y的5个请求
对web方法z的24个请求
理想情况下,我希望从这样开始,然后根据上述比率增加请求的数量。
他们无论如何都要在免费版的SoapUI中这样做吗?
我考虑过为每个请求添加一个延迟,但提供的延迟功能会延迟整个测试用例,而不仅仅是那个请求。
似乎SoapUI只是推出尽可能多的每个Web服务方法的请求,这些请求根本没用,因为一些请求几乎没有被调用,导致在服务器上进行大量处理。
感谢。
答案 0 :(得分:1)
所以,你可以通过一些groovy脚本来做到这一点。 例如,你可以放置一个groovy脚本,它将运行你第n次请求。 要从test_suite运行测试步骤,请检查以下代码:
import com.eviware.soapui.model.testsuite.TestRunner.Status
def tc = testRunner.testCase.testSuite.project.testSuites["TestSuite_Name"].testCases["Test_Case_Name"]
tc.setPropertyValue("Property_Name", value)
def runner = tc.run( null, false )
log.info "Status: $runner.status, time taken for TestCase was: $runner.timeTaken ms"
// assert that it didn't fail
assert runner.status != Status.FAILED : runner.reason
在您的情况下,您可以添加此类代码和applyloop以运行测试步骤。 最后,对于延迟你可以这样说:
random = new Random()
randomNum = random.nextInt(100)+1
log.info(randomNum)
if ( randomNum > 70 ) {
testRunner.testCase.getTestStepByName( "Test_Step_Name" ).disabled = true
}
else {
testRunner.testCase.getTestStepByName( "Test_Step_Name" ).disabled = false
}
即。请求转了一段时间