接着上一篇继续分享
经过上面几篇的了解,现在的yaml文件肯定是不符合测试参数化,主要存在以下问题:
- 没有相对于的预期结果数据
- 只支持一种headers,肯定是不够的
- 没有设计相关值的提取和替换
因此我们需要改进下我们的测试数据的格式,我的想法是一个接口拥有自己的yaml文件数据,改进后的yaml文件格式如下:
代码语言:javascript复制 - testCase:
description: login success
name: login
method: post
uri: /v3/api/user/phone_login
headers:
Content-Type: application/json
payload:
phone: "135288728xxx"
password: "123456abc"
callbackType: 0
extract:
token: $.data.token
validate:
- equal_to:
$.code: 0
- equal_to:
$.code: 0
- testCase:
description: login fail
name: login
method: post
uri: /v3/api/user/phone_login
headers:
Content-Type: application/json
payload:
phone: "1352887280xxxx"
password: "123456abcaaaaa"
callbackType: 0
validate:
- equal_to:
$.code: 0
- equal_to:
$.code: 0
上面是我设计的测试数据结构,不是很完善,但是大部分该有的都有了吧,各种字段的介绍:
-testCase 是一个测试用例的开头,是列表里面的一项
description 是测试用例的描述
name 测试接口的描述
method 接口的请求的方法
uri 接口请求路径地址
headers 是请求头
payload 是请求的数据
extract 是要从响应数据里面提取的值,供其他接口或者测试用例使用
validate 测试用例的断言
根据上面的数据格式,我们暂时需要做以下事情
1.重新改写request封装的函数
2.需要设计提取值的规则和提取值的函数
3.需要设计如何使用提取的值的规则和编写提取值之后的数据处理的函数
4.需要编写自己的断言函数
先把之前写的代码重新整理,把整个工程结构化,结构化后的目录结构如下:
主要目录介绍
common:存放一些工具类,比如日志封装、reqeuests封装等
log:日志的存放目录
testCases :测试脚本的存放目录
testData:存放yaml文件测试数据
今天的分享就到这里,后续的文章会从以下的存在的问题进行分享
1.重新改写request封装的函数
2.需要设计提取值的规则和提取值的函数
3.需要设计如何使用提取的值的规则和编写提取值之后的数据处理的函数
4.需要编写自己的断言函数