【SoapUI】获取请求响应json中键值对的值,并进行断言



SoapUI】获取请求响应json中键值对的值,并进行断言


JSON串响应值

{
   "code": 0,
   "msg": "success",
   "data": {"orderId": "1234567892123456"}
}


方法1:在请求中添加Script Assertiongroovy脚本的方法

步骤1:进入请求(请求命名:获取订单号信息)中,选择Assertions,添加Script Assertion

步骤2:在Script Assertion页面输入如下groovy脚本案例:

import groovy.json.JsonSlurper

   //获取response

        defxresponse = messageExchange.modelItem.testCase.testSteps["获取订单号信息"].testRequest.response.contentAsString

       def slurper = new JsonSlurper()

       def result = slurper.parseText(xresponse)

        //获取json串中msg和 orderid

        defmsg=result.msg.toString()   

       def orderid=result.data.orderId.toString()

        log.info(msg)

        //断言

        assertmsg.equals("success")

 

方法2:在testCase中独立新建Groovy Script的方法

步骤1:先建REST请求,并创建testSuitetestCase请求(请求命名:获取订单号信息)

步骤2:在testCase中创建Groovy Script,脚本案例如下:

import groovy.json.JsonSlurper

 //获取response值,注testSteps指得是请求名称,而不是TestCase的名称

        defxresponse = testRunner.testCase.testSteps["获取订单号信息"].testRequest.response.contentAsString

        defslurper = new JsonSlurper()

        defresult = slurper.parseText(xresponse)

        //获取json串中msg

        defmsg=result.msg.toString()

        log.info(msg)

        //断言

        assertmsg.equals("success")

 

备注:testSteps指得是请求名称,而不是TestCasetestSuite的名称



你可能感兴趣的:(自动化测试方面)