接口自动化-rest-assured做接口自动化测试如何获取response响应内容

本文详细介绍如何使用Rest-Assured框架进行接口自动化测试,重点讲解如何处理请求返回值,如登录token和用户ID,用于后续操作。通过实例演示,学会获取响应体、头部信息等关键数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用rest-assured做接口自动化测试,在执行用例时,有时候我们需要上一步请求的返回值作为参数,例如登录token,生成的用户id等;

在这里插入图片描述

实例演示

  • 现有如下关于患者信息的接口返回,

       Request method:	POST
          Request URI:	http://XXX/brain/rest/patient/insert
          Proxy:			<none>
          Request params:	<none>
          Query params:	<none>
          Form params:	<none>
          Path params:	<none>
          Headers:		Token=Bearer C891hs2oaDrFZTr+E8YdqAOGkfMiRD7GdyZJKEFHPA4QNkyj6JVAsoFdqXq2FvhgOhALlDZRvcXF+1QNbG3VmA==
          				Host=XXX.com
          				Accept=*/*
          				Content-Type=application/json; charset=UTF-8
          Cookies:		<none>
          Multiparts:		<none>
          Body:
          {
              "medicalHistoryType": [
                      "medicalHistoryName": "是否有老年痴呆家族史",
                      "medicalHistoryIdentify": 2,
                      "medicalHistoryDegree": 0,
                      "medicalHistoryDescribe": null,
                      "createTime": ""     
              ],
              "patient": {
                  "address": "上海市浦东新区张江镇XX路XXX号",
                  "education": "本科",
                  "educationTime": 6,
                  "jobType": "公务员",
                  "marrige": "已婚",
                  "mobilephone": "1392602****",
                  "patientAge": 0,
                  "patientBirthdate": "1965-05-04",
                  "patientName": "API测试患者qMnxUulJ",
                  "patientSex": 0
              }
          }
    
从官方给的文档中我们清楚的发现,如果只是单独的获取ResponseBody中的单一值的话可以使用"请求.path(“检索路径”)"

在这里插入图片描述

  • 现在假如我们需要通过创建患者的id来进行患者删除的操作,就可以直接通过.path的方式来获取:
Integer uid = patientManager.createPatient(patientName,mobilephone).path("body.patient.uid");
patientManager.deletePatient(uid).then().statusCode(200) .body("status",equalTo("1"));
如果想获取ResponseBody中的多个值,可以先将响应结果以json字符串的形式保存下来,再一一根据需要获取

在这里插入图片描述

  • 现假如我们需要获取uid和patientName两个值来进行参数传递:
String json = patientManager.createPatient(patientName,mobilephone).asString();
Integer uid = from(json).get("body.patient.uid");
patientName = from(json).get("body.patient.patientName");
如果想要获取Headers, cookies, status等值,可以利用Response.get的方法来获取

在这里插入图片描述

  • 现假如我们要获取Header中的token信息,就可以使用Response.get的方法来获取:
public static String getBPFAppToken(){
        String url = setLoginEnv();
        String body = loginBody;
        return RestAssured.given().log().all()
                .body(body)
                .when().post(url)
                .then().log().all().statusCode(200)
                .extract().response().getHeader("Token");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值