pytest+requests+allure实现接口自动化测试系列(5)-测试脚本数据设计

2022-07-21 15:00:48 浏览数 (1)

接着上一篇继续分享

经过上面几篇的了解,现在的yaml文件肯定是不符合测试参数化,主要存在以下问题:

  1. 没有相对于的预期结果数据
  2. 只支持一种headers,肯定是不够的
  3. 没有设计相关值的提取和替换

因此我们需要改进下我们的测试数据的格式,我的想法是一个接口拥有自己的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.需要编写自己的断言函数

0 人点赞