问答 求助 RestAssured 做接口测试时怎么做到所有请求共同一个 cookie

对方正在输入... 测试交流1 221字数 57阅读0分11秒阅读模式

最近刚开始学习 RestAssured,遇到一个问题,就是每次请求的时候都要设置 cookie,有没有一种方法在拿到 cookie 以后所有的接口都可以共用,不需要在设置 文章源自玩技e族-https://www.playezu.com/179156.html

 
    • AlexYou
      AlexYou 9

      可以封装一个带 cookie 的发起请求的方法,比如第一个能拿到 cookie 请求依旧使用原来的框架的请求方式,拿到 cookie 之后,把 cookie 值传递给带 cookie 请求的方法,这样后续的请求就是用封装的请求方法,这样就可以一直使用一个 cookie,也不用每个接口再次设置 cookie 了
      Example package Tools;

      import io.restassured.specification.RequestSpecification;

      import static BaseTest.BaseAPI.conFig;
      import static io.restassured.RestAssured.given;

      public class RequestWithCookie {
      /**
      * 获取到的cookie写入配置文件
      * 再次读取
      * 使用requestWithCookie代替given
      * @return
      */
      public static RequestSpecification requestWithCookie() {
      String cookie = conFig.getConfig(“cookie”);
      RequestSpecification request =given().cookie(“cookie”,cookie);
      return request;
      }

      }
      楼主用过 httpclient 嘛?最近在学习 httpclient,发现大家都比较推荐 RestAssured,所以突然纠结是继续搞 httpclient,还是转向学习 RestAssured httpclient 偏底层,实际项目用一般都要自行封装各种调用方法,否则用起来要写不少代码,太繁琐了。

      RestAssured 相对顶层一些,底层其实也是通过调用 httpclient 之类的 http 库实现功能的,但函数封装比较好,调用起来没那么繁琐,并且集成了一些断言、AOP 之类的能力,在接口测试领域的常见实践都可以无需二次封装,开箱即用。感谢大佬回复。 那我还是先研究 httpclient 吧,自行封装搞熟练了,应该学习到的东西更多一点感谢各位大佬回复httpclient 就是请求接口的,restassured 除了调用 http 库请求接口,还有断言的功能,支持 json 模糊搜索语法。你理解为 restassured 把 httpclient 和 junit/testNG 部分功能搞一起了不知道用的是什么测试框架,如果是 TestNG 的话,其本身提供了很多 AOP 接口,实现一下即可。或者在 @BeforeSuite / Class / Test ( 视你测试级别而定 ) 的方法中使用 ITestContext 设置 cookie,然后在需要的 case 中取出来也行。

    匿名

    发表评论

    匿名网友
    确定

    拖动滑块以完成验证