如何在所有请求中传输动态授权值而不是在 SOAPUI 中更改每个请求的 header 中的值

How to transfer dynamic auth value in all requests instead of changing the value in every request's header in SOAPUI

我是 SOAP 的新手 UI。我有一个场景,比如我必须传递访问令牌值作为对测试下所有请求的响应 suite.This 访问令牌类型是 "Bearer"。我在下一个名为 "Authorization" 的请求 header 字段中添加了这个标记值,它正在工作,但我的查询是否有任何方法或 groovy 我可以添加的脚本可以应用于所有soap 请求,而不是每次都更改所有请求的值 header.How 来自动执行此操作?请指导我。

我不明白你到底想达到什么目的,我想你想为 Authoritzation 添加一个 http-header 并将你的令牌作为此 [=12] 中每个请求的值=],为此,您可以在获取令牌的 testStep 请求下方放置一个 groovy script testStep。在此 groovy 脚本中,您可以放置​​以下代码,为该测试用例中的每个测试步骤设置一个 http-header:

// testSteps is a map where keys are request names and values are the instance
// of the testStep
testRunner.testCase.testSteps.each{ name, testStep ->
    log.info name
    // check if the testStep has required methods (to avoid error
    // trying to add header on groovy script testSteps for example)
    if(testStep.metaClass.getMetaMethod("getTestRequest")){
        def request = testStep.getTestRequest()
        def headers = request.getRequestHeaders()
        headers.add('Authoritzation','yourToken')
        request.setRequestHeaders(headers)
        log.info "Added header to $name"
    }
}

此脚本为您的测试用例中的每个测试步骤添加所需的 http-header。

编辑

另一种可能的方法是添加一个testCase 属性 作为http-header 值,然后在需要刷新此值时设置此属性 的值。为此,请在您的 TestStep 请求中单击 Headers() 选项卡并添加名称 Authoritzation 和值 ${#TestCase#Authoritzation} 的 http-header,如下图所示:

然后每次你想要为此设置值时 属性 你可以使用不同的方法(我没有足够的关于你的案例的细节所以我给你不同的可能的解决方案),属性 使用 testRunner.testCase.setPropertyValue('Authoritzation',yourToken).

传输 testStep 或 groovy 脚本 testStep

希望对您有所帮助,