Agile development faster and faster pace of interface test from development environment needs to step in debugging stage to complete interface smoke test, the subsequent fast interface test.
- SpringFramework 4.* (custom test listener)
- Gradle 3.*
- TestNG(custom report, custom listener)
- ExtentReports
- REST-Assured
- selenide
- yml
- dubbo(泛型调用dubbo接口)
require jdk1.8
- 请求地址
- BaseURL
- RequestPath
- RequestEnv
- 认证信息
- Cookie
- Token
- DK
- 请求参数
- Map
- json
- 默认配置(没有指定特定配置,所有请求使用默认配置)
- 请求地址,默认情况;
- 认证信息,默认情况,默认用户.
- 特定配置(特定信息默认不指定,制定了特定信息,就不在使用默认配置)
- 特定请求地址;
- 特定认证信息;
- 特定参数.
- multi suite
- class
- method
- 读取全局配置(yml),数据项如下:
- BaseURL
- UserId
- env
- 读取全局测试数据(yml,excel),共享数据(所有用例),如:
- 用户名
- 加载单个用例配置(yml),数据项如下:
- URL(BaseURL+Path)
- UserId
- RequestPath
- 加载单个用例数据(yml,excel),隔离数据(单个用例),如:
- 商品价格
- 为每个用例构造请求信息
- 认证信息
- 全路径地址
- 参数
- 验证返回参数
- 重写TestNG IAnnotationTransformer,@Test方法之前设置dataProvider
- 缺点:不能实现数据共享,每个case重复的字段都要写一遍
- 优点:不用手动组装请求参数 使用例子:@ZBJTestDataProvider(dataFile="")
- 使用注解加载测试数据到Ehcache中
- 优点:实现数据数据共享
- 缺点:每个用例都要手动组装请求数据
- @DataFile(Path="", Scope="")
- 重写TestNG IClassListener方法,执行class用例之前加载配置到ehcache
- 测试类执行前,加载测试配置
- 使用rest-assured方式组装请求
Given 给定一些条件,When 当执行一些操作时,Then 期望得到某个结果
- 通过confluence生成yml,testCase. 调用src/main/java/com/whatistest/generate/Generate.java
- 加载测试数据
- 选择请求方式
- 配置请求参数信息
- 添加断言,可以使用默认的或者使用jsonPath
- 用例只需要一条数据,使用yml. 运用yml特性,数据共享
- 用例需要使用多条数据,使用excel
- json
系统提供占位符,添加到数据脚本中,构造数据时,发现存在占位符变替换为相应拉取数据方式
- 没有依赖的接口
- 直接将测试数据填写到yml中,多个测试case之间能数据共享的(采用yml的引用)
- 可以从数据库中拉取某些数据,进行填充
- 依赖外部数据的接口
- 调用其他接口返回当前接口数据
- 插入依赖数据到数据库(即:将调用接口的处理逻辑数据插入数据库)。如果依赖接口是缓存就不好操作
运用springframework test module 包括:SQL执行、事务处理(默认自动提交)。使用如下:
- 继承测试基础类
- class/method 前添加测试脚本,使用@Sql @SqlConfig @SqlGroup annotation
- @BeforeTransaction @AfterTransaction 事务前后验证
- 组织用例过程复杂
- 接口数据依赖太强
- 原始数据
- 需要其他接口
- 可用性(组织用例快)
- 维护性
- 可扩展性
- 稳定性
- 丰富报告
- 添加每个用例入参(完成)
- 丰富入参
- 插入前置数据(完成)
- 多环境配置自动加载
- 自动清理插入的数据(完成)
- 支持将Excel数据文件自动转换为sql脚本插入前置数据(完成)
- json入参
- excel sheetName 入
- 分离报告与数据装作成模块
- 支持dubbo接口测试(基本支持)
- 从数据库获取值验证内容
author by : rubyvirusqq@gmail.com