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

news2025/1/18 20:08:35

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、获取UUID
     
            base_url: ${get_base_url(base_fenmi_url)}
            request:
                method: get
                url: /fenmi/code
                headers:
                    Authorization: '{{access_token}}'
                params:
                    Accept: application/json, text/plain, */*
                    Accept-Encoding: gzip, deflate, br, zstd
                    Accept-Language: zh-CN,zh;q=0.9
                    Connection: keep-alive
            extract:
                uuid: '"uuid":"(.*?)"'
            validate:
                -   equals: {code: 200}
                -   equals: {msg: "操作成功"}
                
        # 解释:
            name:为接口名称
            
            base_url:读取config.yml文件的域名IP
            
            request:请求参数
            
            method:请求方式
            
            url:接口地址
            
            headers:请求头,比如token,'{{access_token}}'为取上游接口返回值做变量进行参数化,做参数化为固定写法'{{变量名}}'
            
            params: 请求参数,具体需要看接口请求传参方式
            
            extract:用于存在上下游接口关联时对返回值进行取值,固定写法,'"uuid":"(.*?)"'为正则表达式取值,也可用json提取,固定写法'"变量名":正则表达式'
            
            validate:断言           
		
		--test_fenmi.py: 单用例执行器,执行式传入对应yaml文件地址即可
		
	    import allure
	    import pytest
	    from common.requests_util import Requestutil
	    from 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://www.coloradmin.cn/o/1853159.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cadence 16.6与17.4个人学习版推荐

一. 简介与下载 Cadence个人学习版是基于Cadence官方发行的安装包做了适当精简和优化的二次打包版本,包括了Cpature原理图设计、PSpice 电路仿真以及Allegro PCB设计等以电子产品设计为主的主要功能,能满足绝大部分硬件工程师的使用需求。 学习版预先已…

我国人工智能核心产业规模近6000亿元

以下文章来源:中国证券报 2024世界智能产业博览会6月20日至6月23日在天津举行。会上发布的《中国新一代人工智能科技产业发展报告2024》显示,我国人工智能企业数量已经超过4000家,人工智能已成为新一轮科技革命和产业变革的重要驱动力量和战略…

stm32学习笔记---OLED调试工具(理论部分和代码部分)

目录 理论部分 三种常用的程序调试方法 第一种是串口调试 第二种是显示屏调试 第三种是Keil调试模式 其他调试方式 OLED显示屏的介绍 OLED的硬件电路 OLED驱动程序中所包含的驱动函数 OLED_Init(); OLED_Clear(); OLED的显示函数 OLED_ShowChar(1, 1, A); OLED_S…

【SSM】

Spring常见面试题总结 Spring 基础 什么是 Spring 框架? Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块…

海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow

一、介绍 海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物(‘蛤蜊’, ‘珊瑚’, ‘螃蟹’, ‘海豚’, ‘鳗鱼’, ‘水母’, ‘龙虾’, ‘海蛞蝓’, ‘章鱼’, ‘水獭’, …

计算机系统基础实训五—CacheLab实验

实验目的与要求 1、让学生更好地应用程序性能的优化方法; 2、让学生更好地理解存储器层次结构在程序运行过程中所起的重要作用; 3、让学生更好地理解高速缓存对程序性能的影响; 实验原理与内容 本实验将帮助您了解缓存对C程序性能的影响…

地推利器Xinstall:全方位二维码统计,打造高效地推策略,轻松掌握市场脉搏!

在移动互联网时代,地推作为一种传统的推广方式,依然占据着重要的地位。然而,随着市场竞争的加剧,地推也面临着诸多挑战,如如何有效监测下载来源、解决填码和人工登记的繁琐、避免重复打包和iOS限制、以及如何准确考核推…

安装vue时候发现npm淘宝镜像不能使用,报出:npm.taobao.org和registry.npm.taobao.or

2024.3.12 安装vue时候发现npm淘宝镜像不能使用,需要重新更换源,简单来说就是更换镜像 使用 npm config get registry 查看当前的镜像; npm config get registry 使用npm config set registry http://mirrors.cloud.tencent.com/npm/ &…

嵌入式实验---实验五 串口数据接收实验

一、实验目的 1、掌握STM32F103串口数据接收程序设计流程; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、STM32F103R6能通过查询中断方式接收数据,每接收到一个字节,立即向对方发送一个相同内容的字节,并把该字节的十六进…

见证数据的视觉奇迹——DataV Atlas

引言 前段时间一直沉迷于AI方向,几乎很久没碰大数据开发的相关内容了,今天突然看到阿里活动又推出DataV的体验了,我直接“啪”的一下就点进来了,很快啊!本来之前开发数字孪生的时候就接触过基础的DataV操作了&#x…

Monica

在 《long long ago》中,我论述了on是一个刚出生的孩子的脐带连接在其肚子g上的形象,脐带就是long的字母l和字母n,l表脐带很长,n表脐带曲转冗余和连接之性,on表一,是孩子刚诞生的意思,o是身体&a…

Redis 的安装与部署

本文为Redis的Linux版单机部署。 上传 redis-3.2.8 源码到 /opt/software/ 解压到 /opt/module/ [huweihadoop101 software]$ tar -zxvf redis-3.2.8.tar.gz -C /opt/module/安装依赖 [huweihadoop101 software]$ sudo yum -y install gcc-c tclRedis是C语言编写的 编译安装…

文件顺序读取--函数解析

fgetc和fputc 函数 fgetc和fputc是C语言中用于文件操作的函数,分别用于从文件中读取字符和向文件中写入字符。以下是这两个函数的详细原型和说明: fgetc函数原型 int fgetc(FILE *stream);参数说明: FILE *stream:一个指向FIL…

【Linux系列】find命令使用与用法详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

淘酒屋荣获2024中法贸易杰出服务商称号暨夏季窖主大会圆满召开

淘酒屋荣获中法贸易杰出服务商称号,暨闪光的创始人2024夏季窖主大会圆满召开 2024年,作为中法建交60周年的重要节点,同时迎来了中法文化旅游年,这为两国文化交流与合作开启了新的篇章。在庆祝中法贸易交流的重要时刻,…

Java——集合(一)

前言: Collection集合,List集合 文章目录 一、Collection 集合1.1 集合和数组的区别1.2 集合框架1.3 Collection 集合常用方法1.4 Collction 集合的遍历 二、List 集合2.1 List 概述2.2 List集合的五种遍历方式2.3 List集合的实现类 一、Collection 集合 1.1 集合和…

ubuntu 18.04 server源码编译安装freeswitch 1.10.11——筑梦之路

前言 这里主要编译支持语音通话、视频通话、短信、webrtc功能的PBX。 安装编译工具包和依赖包 sudo apt-get updatesudo apt-get install -y autoconf git libtool g zlib1g-dev libjpeg-dev libcurl4-openssl-dev libspeex-dev libldns-dev libedit-dev libssl-dev pkg-con…

学校报修管理系统

摘 要 随着社会的发展和技术的进步,学校报修管理系统在学校设备维修工作中扮演着至关重要的角色。该系统的设计和实现对于提高学校设备维修效率、优化资源管理、提升用户体验具有重要意义。本论文基于SpringBoot框架,设计并实现了一套学校报修管理系统。…

DWG转PDF字体研究记录

1.前言 最近需要对PDF中的符合业务规则的文字进行提取,发现有些文字不是文字信息形式存储,而是polyline形式表达,意味着仅仅有形体上的表达,丢失了原本的文字信息。 经过沟通得知,这些PDF是AutoCAD软件导出的&#xf…

2-3KW户储、家储逆变器设计资料

储能电源方案双向逆变器板资料,原理文件,PCB文件,源代码,bom清单。 bom表: PCB: 变压器电感 2-3KW户储、家储逆变器设计通常需要考虑以下几个方面: 输入电压范围:逆变器需要能够适应…