我已经创建了RESTful
服务,我正在SOAPUI
项目中对其进行测试。
在测试用例中,我想验证HTTP
脚本中的groovy
响应状态代码。
我尝试过使用以下内容:
def value = messageExchange.responseHeaders["#status#"]
assert value==200
但是它总是给出错误并且没有验证。(我正在使用的测试确实返回200状态代码,但我不知道如何正确地放置groovy)
任何人都可以引导我。我不想在groovy中执行GET
操作。我正在使用soapui单独执行GET
,我只想测试状态代码。
答案 0 :(得分:8)
这对将来的使用非常有用。我做了一些搜索,并在SoapUI forum找到了关于此的帖子。
我用HTTP步骤测试了它(对不起,我没有任何其他服务可以使用),它运行良好。幸运的是,SoapUI以相同的方式处理大多数请求,因此它也适用于您。
原始代码:
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def httpResponseHeaders = context.testCase.testSteps["testName"].testRequest.response.responseHeaders
def httpStatus = httpResponseHeaders["#status#"]
def httpStatusCode = (httpStatus =~ "[1-5]\\d\\d")[0]
log.info("HTTP status code: " + httpStatusCode)
答案 1 :(得分:1)
对于在 ReadyAPI 中工作的任何人来说,自 2014 年以来,解决方案发生了一些变化。
def httpResponseHeaders = testRunner.testCase.getTestStepByName["testName"].testRequest.response.responseHeaders
def httpStatus = httpResponseHeaders["#status#"]
def httpStatusCode = (httpStatus =~ "[1-5]\\d\\d")[0]
log.info("HTTP status code: " + httpStatusCode)
这会将 context
变量替换为 testRunner
变量,这两个变量都由 ReadyAPI 公开。