soapui xml怎么传递_在soapui里面用groovy传递cookie身份信息的方法

在上一次的公众号中,写过了怎么样来新建和保存soapui接口测试的日志,现在我们来看看用groovy传递cookie身份信息的方法。

上一篇链接地址:在soapui里面使用groovy脚本生成测试报告的方法

我们继续沿用上一个脚本,在接口测试套件的登录用例中,右键添加一个Groovy Script,然后重命名将这个脚本文件的名字改得更通俗易懂点儿,例如叫做"Set Cookie"

45fe9697238717a4d4a06d101e5e5779.png

然后就是长段的groovy脚本编写了:

首先是预备动作,因为我们后期需要处理cookie的格式,所有先在脚本文件中导入字符串和映射类型转换的模块。

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

然后我们想办法把登录接口获取到的响应信息头部中的cookie信息取出来,先看看响应信息中的cookie保存在哪里。

acee38e09fef4baff48e8827659cee87.png

发现在登录接口的响应头部有一个Set-Cookie字段,我们现在通过这个key把它对应的value值捕获下来;

在整个运行的测试过程中,找到测试用例里面有个叫做login的测试步骤,将它的响应头部中Set-Cookie字段的值保存到一个变量中。

def cookiesList = testRunner.testCase.getTestStepByName("login").testRequest.response.responseHeaders["Set-Cookie"]

这个时候保存下来的cookiesList是一个数组类型,我们通过序号将数组里面的数据拿出来。

String cookieNew = cookiesList.get(0)

然后我们需要定义一个映射类型,让cookie最后的格式变成{"Cookie":xxxx}的样子。

def cookieMap = new StringToStringMap()

然后使用映射中的put方法将cookie内容新增进去。

cookieMap.put("Cookie",cookieNew)

接下来要做的事情就是把cookie的信息传递给测试套件中的每一个测试用例的每一个测试步骤了。

所以,先获取我现在拥有的所有的测试套件。

def testSuiteList =  testRunner.testCase.testSuite.project.getTestSuiteList()

定义一个变量准备接收所有的测试用例

def testCaseList

定义一个变量准备接收所有的测试步骤

def testStepList

使用for循环来读取整个测试套件,然后在每一个套件中,用for循环读取每一个测试用例,最后在每一个用例中使用for循环读取每一个测试步骤,并且将cookie设置到每一个步骤中。

for(testSuite in testSuiteList){

    testCaseList =  testSuite.getTestCaseList()

    for(testCase in testCaseList){

        testStepList = testCase.getTestStepsOfType(com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep.class)

        for (testStep in testStepList){

            testStep.testRequest.setRequestHeaders(cookieMap)

        }

    }

}

OK,舒服了,然后我们添加另一个需要测试的接口。运行测试用例。

9bbdd6c39d408576c1258868977cc6d6.png

27246e6ee37f4d5a5eab3dcdbe2b3d39.png

下一次,我们来讲怎么添加响应数据的关联,以及进行接口参数化的方法。

谢谢大家的支持~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值