2.鉴权与REST-assured基础使用-创新互联

一、鉴权

授权:相当于给一个通行证

成都创新互联公司是专业的大方网站建设公司,大方接单;提供做网站、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行大方网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

鉴权:鉴定是否有权限访问(判定有没有通行证)

token

token的意思是“令牌”,是服务端生成的加密后一串字符串,作为客户端进行请求的一个标识。

![在这里插入图片描述](https://img-blog.csdnimg.cn/fcbdff2a248a44ec97e2011c95860785.png

cookie和session

cookie是一门客户端技术,一般是由服务器生成返回给浏览器客户端来保存的,并且cookie是以键值对的形式保存在浏览器客户端的,每一个cookie都会有名称,值,过期时间…。cookie有很多使用场景,在项目中比较常见的有:

1.登录记住用户名
2.记录用户浏览记录

Cookie过期时间:

  • 日期时间
  • 会话期间(打开网站->关闭网站)

Http协议是无状态的,Session是一种让请求从无状态变成有状态的机制,session是服务端的会话技术,当用户登录了系统,服务器端的就会创建一个会话,此会话中可以保存登录用户的信息。

在这里插入图片描述

token鉴权和cookie+session鉴权的区别??
  • cookie:客户端技术,用来保存一些数据,比如:用户的登录数据、用户浏览数据
  • session:服务端技术,在用户登录之后服务端也需要保存一些用户的数据
  • token:令牌技术,由服务端通过加密之后生成一串字符串返回给客户端,在我们登录成功之后由服务端返回给客户端,之后之后的接口请求就会携带token值来做鉴权

(1)token鉴权:登录–>服务端生成token字符串–>返回给客户端–>登录之后的请求携带这个token串即可

(2)cookie+session鉴权,登录–>服务端通过session保存用户数据,再生成一个标识sessionId–>返回给客户端(sessionID保存在set-cookie这个响应头字段里面)–>浏览器自动化识别set-cookie并且将其值保存到本地cookie中–>登录之后的请求携带这个sessionID串即可

二、REST-assured

REST-assured是Github上一个开源项目,它的语法非常简洁,是在Java世界中一种专为接口测试而设计的测试框架

基本使用
  1. Maven的pom.xml添加 REST-assured 依赖坐标
io.rest-assured  rest-assured4.2.0testorg.testngtestng7.0.0test
  1. 语法格式
given().
    XXXX
when().
    XXXX
then().
    XXXX
  • given 设置测试预设(包括请求头、请求参数、请求体、cookies 等等)
  • when 所要执行的操作(请求方法)
  • then 请求结束之后的操作(解析响应结果、断言)
get请求

直接在URL地址后面拼接参数
given().
when().
get(“http://httpbin.org/get?phone=13323234545&password=123456”).
then().
log().body();
通过queryParam方法添加参数
given().
queryParam(“mobilephone”,“13323234545”).
queryParam(“password”,“123456”).
when().
get(“http://httpbin.org/get”).
then().
log().body();

post请求

1. form表单参数类型

Content-Type:application/x-www-form-urlencoded

given().
    header("Content-Type","application/x-www-form-urlencoded").
    body("hello=1111&&world=2222")
when().
    post("http://httpbin.org/post").
then().
    log().body();

2. json参数类型

Content-Type:application/json

String jsonData = "{\"mobilephone\":\"13323234545\",\"pwd\":\"123456\"}";
given().
    header("Content-Type","application/json").
    body(jsonData).
when().
    post("http://www.httpbin.org/post").
then().
    log().body();

3. xml参数类型

Content-Type:application/xml

String xmlStr = "\n" +
                "\n" +
                "测试xml\n" +
                "";
given().
    header("Content-Type","application/xml").
    body(xmlStr).
when().
    post("http://www.httpbin.org/post").
then().
    log().body();

4. 上传文件

Content-Type: multipart/form-data

当我们需要传输大容量的数据到服务端时,我们通常使用 multipart 表单数据技术。REST-assured提供了一个叫做 multiPart 的方法可以让我们指定文件(file)、字节数组(byte-array)、输入流或者是上传文件

given().
    multiPart(new File("D:\\match.png")).
when().
    post("http://httpbin.org/post").
then().
    log().body();

注:此时不需要指定请求头Content-Type

三、常见面试题

简述token、 cookie 和session的区别?

说说你们项目采用的鉴权方式?

四、作业

通过REST-assured完成:登录、商品搜索、商品详情页、添加购物车接口请求,代码提交过来即可

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:2.鉴权与REST-assured基础使用-创新互联
网页地址:http://myzitong.com/article/cdpedi.html