当前位置: 首页 > news >正文

Python+Pytest+Yaml+Request+Allure接口自动化测试框架详解

Python+Pytest+Yaml+Allure整体框架目录(源代码请等下篇)

在这里插入图片描述

框架详解

  • common:公共方法包
    在这里插入图片描述

    –get_path.py:获取文件路径方法

    –logger_util.py:输出日志方法

    –parameters_until.py:传参方式方法封装

    –requests_util.py:请求方式方法封装

    –yaml_util.py:yaml文件读取写入方法

  • config: 配置包

    –config.yml:配置文件,主要为域名ip地址配置及日志输出级别

    –extract.yml:接口上下游串联时,用例文件做参数化截取返回值后自动输出保存到该文件

  • data: 用于存放csv传参文件包(可用可不用,具体根据实际情况)
    在这里插入图片描述

    –get_token.csv:存放csv文件参数

  • logs: 日志输出文件,会自动生成
    在这里插入图片描述

  • reports: 测试报告文件
    在这里插入图片描述

  • testcase: 测试用例文件集
    在这里插入图片描述

      --fenmi:项目测试用例--login.yml:接口参数传参  
    
	# 如:-   name: 1、获取UUIDbase_url: ${get_base_url(base_fenmi_url)}request:method: geturl: /fenmi/codeheaders:Authorization: '{{access_token}}'params:Accept: application/json, text/plain, */*Accept-Encoding: gzip, deflate, br, zstdAccept-Language: zh-CN,zh;q=0.9Connection: keep-aliveextract:uuid: '"uuid":"(.*?)"'validate:-   equals: {code: 200}-   equals: {msg: "操作成功"}# 解释:name:为接口名称base_url:读取config.yml文件的域名IPrequest:请求参数method:请求方式url:接口地址headers:请求头,比如token,'{{access_token}}'为取上游接口返回值做变量进行参数化,做参数化为固定写法'{{变量名}}'params: 请求参数,具体需要看接口请求传参方式extract:用于存在上下游接口关联时对返回值进行取值,固定写法,'"uuid":"(.*?)"'为正则表达式取值,也可用json提取,固定写法'"变量名":正则表达式'validate:断言           --test_fenmi.py: 单用例执行器,执行式传入对应yaml文件地址即可import allureimport pytestfrom common.requests_util import Requestutilfrom common.parameters_until import read_file@allure.epic('分米互联')@allure.feature('登录并查询服务收入细项列表数据')class Testrequests:# 获取access_token(get请求)@allure.story('获取uuid并登录获取token')@allure.severity("normal")@pytest.mark.parametrize("caseinfo",read_file('/testcases/fenmi/login.yml'))def test_get_token(self,caseinfo):allure.dynamic.title(caseinfo['name'])allure.dynamic.description(caseinfo['name'])Requestutil().analysis_yaml(caseinfo)
  • all.py: 主运行程序

  • conftest.py: 测试配置工具,clean_extract方法为重跑时清除原文件数据

  • debugtalk.py:自定义函数,用于存放公共函数和变量的文件

  • environment.properties:用于生成allure测试报告时,配置展示环境数据

  • pytest.ini: pytest测试运行配置文件,用于配置pytest运行时指定一些参数

[pytest]addopts = -vs --alluredir=reports/temp --clean-alluredir            运行时清除原先的测试报告及临时文件; testpaths = testcases/fenmi                                       执行单个项目测试文件时可选一个testcase目录testpaths = testcases/fenmi testcases/weixin testcases/Zgen         执行多个项目测试文件时可选多个testcase目录   python_files = test_*.py                                            执行的文件,及测试用例python_classes = Test*                                              执行对应测试用例目录所有Test开头的类python_functions = test_*                                           执行对应类下所有的test开头的方法

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • HTTP网络协议
  • Esxi上创建windows 11虚拟机
  • 一个关于空格的Sql Server面试题
  • shinydashboard与shiny详细教程
  • # Kafka_深入探秘者(2):kafka 生产者
  • 如何让视频有高级感 高级感视频制作方法 高级感视频怎么剪 会声会影视频剪辑制作教程 会声会影中文免费下载
  • [Linux] 文件/目录命令
  • MySQL学习笔记-进阶篇-锁
  • 反射机制详解
  • 6 DSL_03地理信息查询相关性算分
  • std::function和std::bind函数
  • MyBatis-Plus入门教程(一)
  • Day11 —— 大数据技术之Spark
  • C#的膨胀之路:创新还是灭亡
  • npm i 报错 gifsicle pre-build test failed
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • CentOS 7 修改主机名
  • C学习-枚举(九)
  • express + mock 让前后台并行开发
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • LeetCode29.两数相除 JavaScript
  • python学习笔记 - ThreadLocal
  • React 快速上手 - 07 前端路由 react-router
  • React的组件模式
  • Swift 中的尾递归和蹦床
  • webpack入门学习手记(二)
  • 初识 beanstalkd
  • 初识 webpack
  • 关于Java中分层中遇到的一些问题
  • 如何利用MongoDB打造TOP榜小程序
  • 走向全栈之MongoDB的使用
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • "无招胜有招"nbsp;史上最全的互…
  • # Redis 入门到精通(七)-- redis 删除策略
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • %@ page import=%的用法
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (六)vue-router+UI组件库
  • (全注解开发)学习Spring-MVC的第三天
  • (十三)MipMap
  • (算法)区间调度问题
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .NET C# 配置 Options
  • .NET 快速重构概要1
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET6实现破解Modbus poll点表配置文件