SoapUI自动OAuth2令牌检索问题

时间:2016-10-14 00:56:30

标签: automation soapui access-token oauth2

我是SoapUI的新用户,但我觉得这个过程应该很简单。我已经阅读了所有关于此事的文档,但我似乎无法解决这个问题。

问题: 我正在为客户负责测试网站,这将涉及创建1000个帐户并浏览课程注册过程。我已经设法创建测试用例,逐步完成新用户的创建过程,在创建新用户后,网站会自动执行OAuth2过程并将用户重定向到他们的个人资料。此流程的流程如下:帐户创建>在REQUEST中发送到令牌URI的凭证> RESPONSE回击访问令牌>令牌用于获取凭据并将用户重定向到配置文件。

我已成功将令牌提取为变量并将其存储到本地测试用例中,但这是我遇到的问题。我能够检索用户配置文件的唯一方法是手动将访问令牌粘贴到SoapUI中的OAuth2访问令牌字段中,然后运行测试用例。由于我必须使用1000个帐户执行此操作,因此这显然不是一种有效的方法。

我尝试使用自动访问令牌脚本编辑器获取登录页面/用户创建页面的ElementID,但所有这些字段都位于单独的.js脚本中,因此SoapUI中不存在ElementID。

我是否会犯这个错误,或者某种程度上可以做到这一点?我不是在寻找任何人来编写我的代码,只是在我理解错误的情况下解释这个过程。

1 个答案:

答案 0 :(得分:0)

我设法通过创建一个抓取" Set-Cookie"的Groovy脚本来绕过OAuth2身份验证方法。来自令牌调用的标头然后将cookie添加到每个调用之后。

这种方法似乎解决了这个问题!

import com.eviware.soapui.support.types.StringToStringMap

def getcookie = context.testCase.testSteps["Token"].testRequest.response.responseHeaders["Set-Cookie"][0]

def headers = new StringToStringMap()
headers.put('Cookie', getcookie)

testRunner.testCase.getTestStepByName('Get User').testRequest.setRequestHeaders(headers)