• java版接口测试框架 rest-assured的简单示例


    一、前言

      REST Assured 是一种 Java DSL,用于简化构建在 HTTP Builder 之上的基于 REST 的服务的测试。它支持 POST、GET、PUT、DELETE、OPTIONS、PATCH 和 HEAD 请求,可用于验证和验证这些请求的响应。

    二、java语言选rest-assured的首选原因

    • 开源
    • 简约的接口测试DSL
    • 支持xml json的结构化解析
    • 支持xpath jsonpath gpath等多种解析方式
    • 对spring的支持比较全面

    三、添加依赖

      maven方式

        <dependencies>
    
            <!--jUnit5相关的依赖-->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>5.6.2</version>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-runner</artifactId>
                <version>1.6.2</version>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>RELEASE</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-launcher</artifactId>
                <version>1.6.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>5.6.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
                <version>5.6.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-params</artifactId>
                <version>5.6.2</version>
                <scope>test</scope>
            </dependency>
    
            <!-- 对yaml序列化和反序列化的库 -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.9.8</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-yaml</artifactId>
                <version>2.9.9</version>
            </dependency>
    
            <!-- allure报告的库 -->
            <dependency>
                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-junit5</artifactId>
                <version>RELEASE</version>
                <scope>test</scope>
            </dependency>
    
            <!--rest-assured相关的包-->
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>rest-assured</artifactId>
                <version>4.4.0</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>json-path</artifactId>
                <version>4.4.0</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>xml-path</artifactId>
                <version>4.4.0</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>json-schema-validator</artifactId>
                <version>4.4.0</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>

       假如jdk的版本是1.9的话,则则是如下导入方式

    <dependency>
       <groupId>io.rest-assured</groupId>
       <artifactId>rest-assured-all</artifactId>
       <version>4.4.0</version>
       <scope>test</scope>
    </dependency>

    四、Demo演示

      1、src/test/java下new一个包(restassureddemo),并且在下面new一个TestDemo.class

      2、为了更好的使用restassured,官网推荐Static imports如下几个包  

    import static io.restassured.RestAssured.given;
    import static io.restassured.matcher.RestAssuredMatchers.*;
    import static org.hamcrest.Matchers.*;

      假如还想使用JsonSchemaValidator的话,也推荐静态导入

    import static io.restassured.module.jsv.JsonSchemaValidator.*;

      3、第一个get案例,请求百度

    package restassureddemo;
    
    import org.junit.jupiter.api.Test;
    
    import static io.restassured.RestAssured.given;
    
    public class TestDemo {
    
        @Test
        void simpleTest(){
            given()
            .when ()
                    .get ("https://www.baidu.com")
            .then ()
                    .log ().all ();
        }
    }
    • given 设置测试预设(包括请求头、请求参数、请求体、cookies 等等)
    • when 所要执行的操作(GET/POST 请求)
    • then 解析结果、断言

    rest-assured官方文档:https://github.com/rest-assured/rest-assured/wiki/GettingStarted

    rest-assured中文手册

    知道、想到、做到、得到
  • 相关阅读:
    Azure HDInsight 现已在中国正式发布
    避免由于Windows Update自动安装安全补丁导致VM意外重启
    如何修复在Microsoft Azure中“虚拟机防火墙打开,关闭RDP的连接端口”问题
    关于Azure Auto Scale的高级属性配置
    在Azure中使用Load Runner测试TCP最大并发连接数
    Windows Azure案例分析: 选择虚拟机或云服务?
    Windows Server基础架构云参考架构:硬件之上的设计
    浅析基于微软SQL Server 2012 Parallel Data Warehouse的大数据解决方案
    在Windows Azure公有云环境部署企业应用
    如何在后台运行_Linux_命令并且将进程脱离终端
  • 原文地址:https://www.cnblogs.com/Durant0420/p/14862115.html
Copyright © 2020-2023  润新知