暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

RestAssured系列

迅捷小莫 2021-09-02
460


RestAssured学习(二)


<<<My Auto Studying Plan>>>





















Vol

RestFul Assured

继assured(一)我们已经学习了一个最小的demo了,很多小伙伴看到这个框架是java后内心都比较恐怖+害怕。也常听人说“人生短暂,我学python”,不过在这个“卷王”霸世的环境里,只能说:多学有益,并且有小提莫一步一步带着实现,你说你怕啥呢?


一、提取封装Cookie

前言:因为上个demo-Cookie并没动态获取关联认证。并且根据惯例,我们接口都是需要携带cookie,所以提取这一步,必不可少哦,话不多说我们直接上代码


    package common;
    import org.hamcrest.core.IsEqual;


    import static io.restassured.RestAssured.given;


    /**
    * @Project : teemoRestful
    * @File : TeemoConfig.java
    * @IDE : IntelliJ IDEA
    * @Author jelly的小蜗牛🐌🐌🐌
    * @Date 2021/7/26 10:04 上午
    **/


    public class TeemoConfig {


    private static String cookie;


    public static String getCookie() {
    if (cookie == null) {
    String url = "http://39.105.34.24:8080/apis/login";
    String body = "{\"userName\": \"admin\", \"password\": \"123456\"}";
    cookie = given()
    .contentType("application/json")
    .body(body)
    .post(url)
    .then()
    .statusCode(200) //断言状态码是否等于200
    .body("success", IsEqual.equalTo(true)) //断言body里面的success是否等于true
    .extract().response().getCookie("JSESSIONID");




    cookie = "JSESSIONID" + "=" + cookie;
    }
    return cookie;
    }


    public static void main(String[] args) {


    System.out.println(TeemoConfig.getCookie().hashCode());
    System.out.println(TeemoConfig.getCookie().hashCode());
    /**
    * 输出
    * 741312491
    * 741312491
    */
    }
    }







    二、Cookie的使用

    我们已经封装好了cookie,并且测试后没啥大毛病,那接下来我们就康康如何正确的使用它


      import common.TeemoConfig;
      import org.testng.annotations.Test;


      import static io.restassured.RestAssured.*;


      public class RestDemo {


         @Test
         public void testLogin(){
             //接口url
             String url = "http://39.105.34.24:8080/apis/login";
             //接口请求体
             String body = "{\"userName\":\"admin\",\"password\":\"123456\"}";
             given().log().all()
                     .contentType("application/json")
                     .body(body)
                     .post(url)
                     .then().log().all()
                     .statusCode(200);


         }
         @Test
         public void testGet(){
             String url = "http://39.105.34.24:8080/apis/task/1?taskName=&isParallel=";
             given().log().all()
                     .contentType("application/json")
                     .header("Cookie", "JSESSIONID=3D68194C785221F6E39ECB699C970791")
                     .get(url)
                     .then().log().all()
                     .statusCode(200);


         }


         /**
          * 使用封装好的cookie发送请求
          */
         @Test
         public void testGetOne(){
             String url = "http://39.105.34.24:8080/apis/task/1?taskName=&isParallel=";
             given().log().all()
                     .contentType("application/json")
                     .header("Cookie", TeemoConfig.getCookie())
                     .get(url)
                     .then().log().all()
                     .statusCode(200);


         }
      }


      结果如下:



      三、新增的pom依赖

         <dependencies>
               <dependency>
                   <groupId>io.rest-assured</groupId>
                   <artifactId>rest-assured</artifactId>
                   <version>3.2.0</version>
                   <scope>test</scope>
               </dependency>
               <dependency>
                   <groupId>org.testng</groupId>
                   <artifactId>testng</artifactId>
                   <version>6.10</version>
               </dependency>


               <dependency>
                   <groupId>org.projectlombok</groupId>
                   <artifactId>lombok</artifactId>
                   <version>1.18.12</version>
                   <scope>compile</scope>
               </dependency>


               <dependency>
                   <groupId>io.rest-assured</groupId>
                   <artifactId>rest-assured</artifactId>
                   <version>4.1.1</version>
                   <scope>compile</scope>
               </dependency>
           </dependencies>


        1. 想玩的小伙伴,记得pom依赖要同步哦,不然项目可能会跑不起来

        2. 后续还会持续更新进一步封装,目前已有封装框架地址在下方

        3. https://gitee.com/ronin-jelly/rest-assured喜欢的小伙伴请点个star哈






























         本文重点 

        重点:提取封装Cookie

        难点:需要懂Java语言


         本系列重点 

        1、Rest-Assured实现接口自动化

        2、支持各种模版引擎:支持解析yml、json、har,优雅的实现基于http的接口自动化









        Study Hard 

        And Make Progress Every Day



        /

        /

        / 微信号 ya1kaikai/




        文章转载自迅捷小莫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论