Day20:实战:接口自动化测试框架封装之一------接口关联封装

一、法2:通过文件保存中间变量实现接口关联(联系Day17的四五)-----接口关联封装

在什么情况下需要清空 extract.yaml?需要清空几次?

整个项目只需要清空一次。

二、为什么要这样封装?

原因:

1、能够看到中间变量,易于去判断前置接口返回的数据有没有问题

2、可以避免多个模块之间的接口关联报错的问题,可以避免跨模块之间传递中间变量出错的问题

三、YAML文件详解

简介:

yaml 也是一种数据格式,在接口自动化里面主要用于配置文件或编写测试用例。

数据组成:

字典 :键值对,key:(空格) value

(json 和字典的区别,json 是字符串,字典对象,json 和字典可以相互转换,json 就是字典的字符串的形式)

列表 :a,b,c

在 yaml 中可以通过一组`-`来表示列表

复制代码
csrf_token:
  - name: 百里
  - age: 36

四、pytest数据驱动以及数据与代码的分离

数据驱动:

python 复制代码
@pytest.mark.parametrize(args_name,args_value)

args_name:参数名,一般取名 caseinfo

args_value:列表或字典列表,并且列表中有几个值那么用例就会执行几次。

示例格式:

列表:a,b,c,字典:{},{},{},{}

考点一句话:parametrize 做 pytest 数据驱动,args_value 里面有多少组数据,测试函数就自动运行多少次。

五、生成Allure报告

  1. 下载 allure 报告并且配置 path 路径

`D:\allure-2.21.0\bin`

验证:

在 DOS 窗口和 Pycharm 窗口通过 `allure --version` 验证环境

  1. 生成临时 json 报告
python 复制代码
addopts = -vs --alluredir=./temps --clean-alluredir

3、生成 allure 报告

复制代码
if __name__ == '__main__':
    pytest.main()
    time.sleep(3)
    os.system("allure generate ./temps -o ./reports --clean")

说明1. 先执行 pytest 运行用例,产出 temps 目录下的临时结果文件

  1. `time.sleep(3)`:等待文件写入完成,防止文件未保存就开始生成报告

  2. `allure generate ./temps -o ./reports --clean`:读取 temps 临时数据,生成 html 报告到 reports 文件夹,`--clean`清空旧报告

六、持续集成

安装 jenkins,启动

插件的安装和使用 各种配置:系统配置,工具配置

流水线 pipeline

实际工作中,你的 jenkins 在服务器。

七、遗留的问题

  1. 一个接口用例可能会有几十个,也在 yaml 文件里复制粘贴嘛?

  2. 接口关联

  3. 断言

  4. allure 报告的美化

  5. 日志封装

  6. 业务流程的封装

相关推荐
奈落244 小时前
AI 办公助手选型指南:从聊天问答到主动式工作流,企业办公自动化该怎么挑、边界在哪
人工智能·自动化·工作流·ai 办公
天远Date Lab4 小时前
零信任架构实战:基于天远风控经营异常预警构建自动化商业园区租户巡检网关
大数据·人工智能·架构·自动化
天远API16 小时前
零信任架构实战:基于天远风控经营异常预警构建自动化供应商店铺巡检网关
人工智能·架构·自动化·dubbo
星星码️16 小时前
博客系统 Web 端测试报告:功能、自动化与性能
功能测试·测试工具·压力测试·模块测试·测试覆盖率
han688917 小时前
selenium之实战
笔记·python·selenium·测试工具·自动化
挨踢诗人17 小时前
玄讯CRM集成金蝶云星空解决方案
自动化