Java自动化第11课-接口测试中Cookie与Token机制

1、cookie和session都是由服务器生成并且返回的。
cookie当中记录的sessionId相当于服务器记录的session信息的编号,唯一确认本次会话,相当于住酒店时的房卡上的房间号。
cookie通过服务器返回报文中的set-cookie头域返回给客户端进行保存。

2、浏览器和默认创建的httpclient都有接收cookie之后进行保存的功能。
使用同一个httpclient对象的情况下,会沿用之前获取到的cookie进行操作。
如果重新创建一个httpclient又没有指定使用同一个cookie池的情况下,新的client对象的cookie存储是空的。

httpclient通过cookiestore来存储发包过程中获得的cookie,那么可以通过指定client对象是否使用同一个cookiestore来管理cookie的使用。

3、httpclient管理cookie使用的第一种方式:
通过创建公用的cookiestore,在进行httpclient创建时时,选择是否使用这个cookiestore存储的cookies,从而决定发包时,是否有cookie携带。
  适用场景:所有的cookie都是在流程中自动获取。
   流程:
  1)创建一个cookiestore用于保存和调用发包过程中,httpclient获取到的cookie
  2)设计usecookie和notusecookie方法,修改是否使用cookie的标志位布尔数。
  3)调用发包方法时,基于cookie标志位,决定实例化client的时候是否带上cookiestore.

  第二种方式:
  通过添加头域的方式进行操作,就把cookie看成一个普通的头域信息。
  Cookie:Cookie值的方式来传递Cookie。
  适用场景:已知一个cookie需要进行传递,或者在第一个请求发起时,就需要设置一个cookie的值。
  流程:
  1)直接在请求时,添加header即可。

4、token可以通过任何形式进行传递,可以是通过cookie中传递,也可以通过头域传,还可以通过请求参数传。具体看服务器的解析方式,也就是接口文档的具体描述。
而cookie,通常都是通过头域进行传递的。

5、keywordofInter关键字的封装:
  1)对代码进行分层,httpclientKw这一层专注于完成发包操作,而不对接口测试流程中的返回结果解析断言进行操作
  2)keywordOfInter关键字类,完成解析断言操作的同时,对header添加的方式进行封装修改,以json格式传递并解析为map,再调用httpclientkw进行头域添加。
  3)每次接口的返回信息,作为成员变量在keywordOfInter中,方便断言方法也能进行调用。

 

posted @ 2021-04-07 14:02  沫笙*  阅读(453)  评论(0编辑  收藏  举报