我不知道从哪里开始。
现在的情况:我们有一个导入某些目录的软件。为了测试这个,我们设置了SOAPUI:
a)使用SOAPUI,我们可以向我们的基于Web的软件发送POST请求。在此请求中,我们包括文件地址等。
b)我们的软件然后响应PUT请求告诉我们它是否接受了请求。 SOAP UI没有收到与发送的导入PUT请求相关的进一步响应。
c)然后我们的软件开始导入所述目录/文件。
问题:文件/目录有时可能很大,导入这些文件可能需要相当长的时间。这意味着如果先前的导入完成,则必须每隔几分钟手动检查一次,然后发送下一个导入请求,这是一项繁琐的工作。 我想自动完成此过程。
我们的软件在导入完成后不会发送响应,此外它一次不能处理多于1个导入请求,即只有在上一次导入完成后它才会接受任何更多的导入请求。
我想要做的是让这个过程自动化,即发送一个POST请求,然后在导入完成后发送下一个导入请求。
我的解决方案:我对如何实现它有了一般性的想法,即我的解决方案(一段代码)将发送一个POST请求,并在预定义的时间段(5分钟)之后发送下一个请求。如果POST请求的响应是否定的(意味着我们的软件仍然从先前的请求导入),那么我的解决方案(一段代码)将再等待5分钟,然后再次发送POST请求。如果我们的软件接受POST请求,则意味着先前的导入已完成。通过这种方式,我可以自动执行此过程,并根据需要一个接一个地发送POST请求。
我对此帖的需求:我不知道要使用哪些技术。是否可以使用SOAP UI?或者Java REST ASSURED框架可能是我最好的解决方案?我对任何其他技术持开放态度。此外,如果您认为此解决方案可能无效,请告诉我或建议另一个更好的解决方案。
我需要帮助。
提前谢谢。
答案 0 :(得分:0)
关于在SoapUI中发送多个请求的可能性 - 可以使用Groovy脚本完成并创建测试套件,例如:
groovy脚本将包含您的逻辑。我假设请求可以在几个小时内循环发送,或者某些响应消息没有出现。就像一个REST请求及其解析的JSON响应正在运行一段时间(当然,在您的情况下,您将根据可能的响应消息进行http请求并评估它们):
import net.sf.json.groovy.*
import groovy.time.*
import java.time.*
// send request and parse response
testRunner.runTestStepByName("Request_1")
def ResponseMessage = testRunner.testCase.testSteps.("Request_1").testRequest.response.contentAsString
def jsonSlurper = new JsonSlurper ().parseText(ResponseMessage)
def response
// set cutoff time
def currentTime = LocalDateTime.now()
def cutoffTime = LocalDateTime.now()
use(TimeCategory) {
cutoffTime = cutoffTime.plusMinutes(2)
}
//looping until set time
while (currentTime < cutoffTime){
// make request
testRunner.runTestStepByName("Request_1")
response = jsonSlurper.message
log.info "Response was: " + response
sleep(300000)
currentTime = LocalDateTime.now()
}
然而,总的来说,SoapUI更像是测试工具,你的问题听起来更像是一些作业调度软件的任务