2.鉴权与REST-assured基础使用

一、鉴权

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

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

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 依赖坐标
<dependency>
      <groupId>io.rest-assured</groupId>
      <artifactId>rest-assured</artifactId>
      <version>4.2.0</version>
      <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.0.0</version>
    <scope>test</scope>
</dependency>
​
  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 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
                "<suite>\n" +
                "    <class>测试xml</class>\n" +
                "</suite>";
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完成:登录、商品搜索、商品详情页、添加购物车接口请求,代码提交过来即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RestAssured是一个流行的Java自动化测试框架,用于编写和执行RESTful API测试。它可以通过简单的API来处理HTTP请求和响应,并且可以轻松地将请求和响应转换为可读性强的代码。RestAssured还可以使用Gherkin语言编写BDD测试,并且支持与JUnit和TestNG等测试框架集成。 使用RestAssured可以快速编写和执行HTTP请求,验证响应状态码、响应头、响应体等细节,并且可以使用各种验证方式进行验证,如JSON Schema验证、XPath验证、正则表达式验证等等。同时,RestAssured还支持多种HTTP身份验证方式,包括基本身份验证、摘要身份验证、OAuth等。 使用RestAssured编写自动化测试用例的步骤如下: 1. 引入RestAssured依赖。 2. 编写测试用例,包括HTTP请求和验证响应的代码。 3. 运行测试用例并查看测试结果。 下面是一个使用RestAssured编写的示例测试用例: ```java import io.restassured.RestAssured; import org.junit.Test; import static io.restassured.RestAssured.given; public class RestAssuredTest { @Test public void testGet() { // 发送GET请求 given() .get("https://jsonplaceholder.typicode.com/posts/1") // 验证响应状态码和响应体 .then() .statusCode(200) .body("title", equalTo("sunt aut facere repellat provident occaecati excepturi optio reprehenderit")); } } ``` 上面的示例测试用例发送了一个GET请求,验证了响应状态码和响应体。使用RestAssured,可以非常方便地编写和执行各种HTTP请求和自动化测试用例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值