2016-08-04 101 views
0

我使用soapui(5.2.1)进行webservice测试,无法击中剩下的api-Get请求,然后是 post request(authentication)。Soapui - 如何保持会议从登录帖子请求获取请求

下面是我有

1登录(Post请求)的scritps - 登录

2 setCookie方法 - Groovyscript

3.GetBasic(Get请求) - 要获得JSON输出数据

4.RunAll(运行所有测试步骤(发布请求,SetCookie,获取请求)) - Groovyscript

第一个请求工作正常,试图命中获取请求但抛出“这需要http认证”。 我搜索了几个博客,并编写了setcookie groovy脚本,下面是代码。

def header = testRunner.testCase.getTestStepByName("Login").httpRequest.response.responseHeaders["Set-Cookie"] 

header=header.toString() 

start=header.indexOf("JSESSIONID=") 

end=header.indexOf("; Path=") 

testCaseProperty= header.substring(start,end) 

testRunner.testCase.testSuite.setPropertyValue("JSESSIONID", testCaseProperty) 

testRunner.testCase.testSuite.project.setPropertyValue("JSESSIONID", testCaseProperty) 

log.info "jsession id - "+testCaseProperty 

后,在GetBasic测试步骤我设置页眉$ {##TestSuite的JSESSIONID}。然后在RunAll 脚本我刚才提到的step1,2,3运行。

1.登陆成功地执行(用户名,指定的密码) 2.设置的cookie成功地执行 3.GetSystemdata(获取请求)失败(抛出“这需要HTTP认证”)

但是手动当我选择测试案例(检查维护会话)并执行(Step1,2,3)它工作正常

请查找附件,以供参考。

注(setCookie方法脚本设置Cookie,但它不使用GetBasic get请求)

+0

这听起来像是您需要在GET请求上使用HTTPS和/或您需要在请求的标头中设置一些凭据。 –

+0

感谢蒂姆的回复,但得到请求只显示http不https.Still我应该改变 – user3350712

+0

在这里使用你的直觉。你从登录中得到了什么?有没有任何形式的凭证?如果是这样,您可能需要将它们包含在随后的请求中。 –

回答

-1

对于基本身份验证,则需要在TestCase的选项中打开“保持HTTP会话”。这在官方文档here中有描述。