zoukankan      html  css  js  c++  java
  • 基于RestAssured实现接口自动化

    RestAssured是一款强大的接口自动化框架, 旨在使用方便的DSL,简化接口自动化。 

    下面是基于RestAssured扩展的一个简单框架示例, 先看看用例的风格:

    package testcases
    
    import models.Create_Post
    import models.Info_Post
    import models.List_Get
    import org.testng.annotations.Test
    import settings.Givens
    import settings.RetryStrategy
    import test.TestBase
    
    class TestCase extends TestBase {
        @Delegate
        Givens givens = new Givens() // 可以放到新建的测试基类中
    
        @Test(description = '创建并获取用户', retryAnalyzer = RetryStrategy)
        void testcase_01() {
            use(categories) {
                given_host() // 此处只有一个host,如果有多个host 交互,可以在Givens中新建另一个host, 如 given_host_a()
                    .use(Create_Post) { it.name = 'Zack' } //修改请求体里面的值
                    .when().call('创建用户,并校验接口结果')
                    .then().assertThat()
                    .statusCode(200)
                    .body { assert it.status == 'Awesome!' }
                    .extract().store('id', this) { it.id } // 将id 存起来
    
                given_host()
                    .use(List_Get)
                    .when().call('获取所有用户')
                    .then().assertThat()
                    .statusCode(200)
                    .body {
                        assert it.data.id.contains(get_store('id')) //验证新建的id存在
                        assert it.data.name.contains('Zack') //验证第一步的用户名存在
                    }
    
                given_host()
                    .use(Info_Post)
                    .queryParams("id": get_store('id')) //获取ID对应用户的详细信息
                    .when().call('获取所有用户')
                    .then().assertThat()
                    .statusCode(200)
                    .body { assert it.info == 'my name is Zack' }
            }
        }
    }

    下面是此框架用到的一些技术:

    1. RestAssured
    2. TestNG
    3. AllureReport
    4. Groovy(MOP)
    5. Gradle

    项目结构:

    最终的测试报告示例:

    代码位置 :  https://github.com/ZackZhou/zrest

    构建方法如下:

    clone 到本地后,命令行运行

    1. ./gradlew User
    2. ./gradlew allureReport
    3. ./gradlew allureServe

    后期详细介绍实现方式。 

  • 相关阅读:
    5.2 TensorFlow:模型的加载,存储,实例
    5.2 TensorFlow:模型的加载,存储,实例
    卷积神经网络(cnn)的体系结构
    卷积神经网络(cnn)的体系结构
    Python学习笔记(四) 函数
    Python学习笔记(三) 字典
    Python学习笔记(二) 字符串
    Python学习笔记(一) 列表和元组
    Linux学习笔记(七) 查询系统
    Linux学习笔记(六) 进程管理
  • 原文地址:https://www.cnblogs.com/FsharpZack/p/14772711.html
Copyright © 2011-2022 走看看