python3+pytest+requests+allure+yaml测试框架搭建

news2024/11/18 16:32:06

目录

设计框架的原则

1.框架整体结构

2.框架各个模块说明

3.示例

3.1 先写一个测试用例

3.2 对上面的用例进行分层封装(可根据业务复杂度分两层或者三层,此处演示分三层)

3.3生成allure测试报告并查看


设计框架的原则

  • 封装基类方法

   对于一些较通用的方法,可以封装,比如发送请求、log日志、公共方法(多个模块均需要调用此方法,可进行封装)。

  • 高内聚低耦合

   每个用例独立完成自己的测试。

   模块与模块之间接口的复杂程度尽量低,比如在类内部尽可能减少方法之间的调用,否则一个方法的变动会影响调用它的另一个方法。

  • 脚本分离

   业务代码、测试数据应该相互分离,即平时说的数据驱动。代码中不出现具体的数据、配置。而是调用对应的数据文件、配置文件等。

1.框架整体结构

2.框架各个模块说明

public:封装公共方法,包括log、login等

testdata:存放测试数据,包括数据驱动、上传下载的文件、图片等等

conftest.py: 见pytest框架的文章

pytest.ini: 配置文件,见pytest框架的文章

mode:封装接口最底层的内容,包括传参的参数、request的调用等

api:封装业务逻辑的处理,包括前后接口的处理,场景的处理等等

testcase:测试用例层,执行测试用例,用例名以test开头

+report:可以加一个report存放allure生成的测试报告

3.示例

3.1 先写一个测试用例

    def test_baidu_select(self):
        # headers = {"Content-Type": "application/json;charset=UTF-8"}
        headers = {}
        url = "http://www.baidu.com"
        params = {"wd": "test"}
        baidu=requests.request('get',url,headers=headers,params=params)
        print(baidu.text)

3.2 对上面的用例进行分层封装(可根据业务复杂度分两层或者三层,此处演示分三层)

3.2.1 mode层

class BaiduMode():
    def baidu_search(self):
        url = "http://www.baidu.com"
        params = {"wd": "test"}
        headers={}
        baidu = requests.request('get', url, headers=headers, params=params)
        return baidu.text

3.2.2 api层

from mode.baidu_mode import BaiduMode
class BaiduApi():
    def baidu_search_api(self):
        res = BaiduMode.baidu_search(self)
        return res

3.2.3 testcase层

from api.baidu_api import BaiduApi


class TestBaidu():
    @pytest.mark.test
    @allure.title("测试")
    def test_baidu_select(self):
        baidu = BaiduApi.baidu_search_api(self)
        print(baidu)

3.3生成allure测试报告并查看

pytest -sv .\testcase\test_baidu.py -q --alluredir=./report

allure serve .\report\ 

自动化测试框架思路均类似,可根据实际项目调整适配,根本思想是少改代码多适配,尽量修改数据文件、配置文件等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541806.html

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

相关文章

第十八章 使用LNMP架构部署动态网站环境

文章目录 第十八章 使用LNMP架构部署动态网站环境一、源码包程序1、源码包的优势2、基本步骤(1)、下载及解压源码包文件(2)、编译源码包代码(3)、生成二进制安装程序(4)、运行二进制…

VS2022调试Win-flex bison生成的C语言程序

Win-flex bison是flex和bison在Windows平台的一个移植版本,它支持flex(快速词法分析器)和bison(GNU解析器生成器)。 Win-flex bison的下载及安装可参看“Windows中使用Lex(Win flex-bison)”&a…

CIBF2023深圳电池展圆满结束!昂视期待与您下次相会

5月18日,CIBF2023深圳电池展圆满结束,展会为期三天,各位参展商展示了最新技术与产品,并在展位上开展花式互动,现场气氛火热。 作为电池行业的权威展会,CIBF2023深圳电池展为国内外用户、采购商、经销商提供…

cuda编程学习——第二个cuda程序(官方案例分析)!干货向(二)

前言: 最近在做三维重建,尤其是Nerf方面多视角合成工作的时候,意识到了cuda的编程计算可以大大提高其中渲染的计算,最明显的例子是Instant-ngp,Plenoxels等文章,因此后面会学Cuda一段时间,同时…

Python代码最好的加密.pyd——easycython(Windows系统)

1 安装easycython 1.1 建议选用python 3.6及其以下的版本!! 1.2 CMD命令行 pip install easycython2 安装Visual Studio 2.1 下载 点击链接 https://visualstudio.microsoft.com/zh-hans/free-developer-offers/ 2.2 安装注意事项 记得勾选红色下图的…

渗透测试--3.1.社会工程学攻击

目录 社会工程学攻击 SET介绍 一、建立克隆钓鱼网站收集目标凭证 二、set工具集之木马欺骗实战反弹链接 三、后渗透阶段 1.查看主机系统信息 2.到处用户密码的hash值 3.获得shell控制台 日志清除 四、钓鱼邮件 1、测试邮箱的连通性 2、参数说明 3、Kali 内置了s…

位运算实现加减乘除(自用水文)

目录 位运算实现加法 位运算实现减法 位运算实现乘法 位运算实现除法 代码示例 PS:用位运算实现的加减乘除,其数据都是整型的(int、char、size_t等) 位运算实现加法 LeetCode_2.两数相加_小白麋鹿的博客-CSDN博客https://yt030917.blo…

【Jmeter第一章】Jmeter实操详细教程(快速入门)

文章目录 1、前言2、Jmeter介绍3、Jmeter下载安装4、Jmeter快速入门4.1、切换为中文显示4.2、基本使用 总结 1、前言 本篇内容为Jmeter的简单使用介绍,是基础的使用技巧,希望能帮到各位,不足之处还望多多包涵,最后感谢您的阅览。…

ChatGPT工作提效之初探路径独孤九剑遇强则强

ChatGPT工作提效之遇强则强 前言一、如何使用ChatGPT二、ChatGPT实战应用三、ChatGPT会叫的小孩有奶吃工具类的交互问答类的交互开发类的交互 前言 读《笑傲江湖》西湖比剑时,对于独孤九剑1的解读印象颇为深刻。令狐冲被任我行这个高手激发出许多精妙的剑招。这独孤…

【原创】企业级别的Kafka配置--按照市场分区

企业级别的Kafka配置--按照市场分区 背景--Kafka广播按照市场分区生产者和消费者设计方案Kafka Broker设计消费消息时增加过滤条件消费者端利用多线程/多协程机制提高吞吐量 背景–Kafka广播 对于同一个Topic来说,每个消费者组都可以拿到这个Topic中的全部数据。消…

论文阅读《Gradient-based Camera Exposure Control for Outdoor Mobile Platforms》

摘要 本文介绍了一种用于移动机器人平台上图像处理和计算机视觉应用的自动调节相机曝光的新方法。由于大多数图像处理算法严重依赖于主要基于局部梯度信息的低级图像特征,因此我们认为梯度量可以确定适当的曝光水平,从而使相机能够以对照明条件具有鲁棒…

LaTeX详细安装教程|LaTeX 基础知识|LaTeX 常用语法|LaTeX 快速入门

latex安装教程 一、LaTeX 基础知识1.1 LaTeX 的特点1.2 LaTeX 的基本组成部分 二、TeXLive安装包下载三、安装步骤四、TeXstudio安装及简单使用五、快速入门(LaTeX 常用语法)5.1 文本格式5.2 数学公式5.3 LaTeX 支持有序列表和无序列表5.4 图片和表格 La…

vim自动文件头

注意:以下方法是安装了ycm后的方法,没安装是否好使不知道,建议还是安装ycm,原版的vim真不好用。 在用vim编辑代码的时候自动添加文件头还是比较有用的。 比如像下面这样,只要输入vim test.py文件头就自动添加上了。 …

【Spring框架】--03.AOP

文章目录 5.面向切面:AOP5.1场景模拟5.1.1声明接口5.1.2创建实现类5.1.3创建带日志功能的实现类5.1.4提出问题 5.2代理模式5.2.1概念5.2.2静态代理5.2.3动态代理5.2.4测试 5.3AOP概念及相关术语5.3.1概述5.3.2相关术语①横切关注点②通知(增强&#xff0…

微服务架构 云原生应用从这一步开始

什么是云原生应用和微服务架构 云原生应用是一种设计和构建方式,旨在充分利用云计算的弹性、可扩展性和高可用性特性。云原生应用将应用程序的开发、交付和运行环境与云平台密切结合,以实现高度灵活、可靠和可扩展的部署。 云原生应用的核心原则包括以…

Java | 一分钟掌握定时任务 | 6 - Quartz定时任务

作者:Mars酱 声明:本文章由Mars酱原创,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我! 前言 前几篇介绍了单体架构的定时任务解决方式,但是现代软件架构…

Mysql【基础篇】—— mysql安装和环境配置

Mysql【基础篇】—— mysql安装和环境配置😎 Mysql 的概述Mysql下载安装和环境配置下载流程:Mysql启动:客户端连接方式一:使用MySQL提供的客户端命令行工具方式二:使用系统自带的命令行工具执行指令 总结撒花&#x1f…

tb-gateway配置OPC UA

1、安装模拟软件KEPServerEX 6 省略 2、配置OPC UA 安装好KEPServerEX 6之后,默认再电脑的最小化窗口会显示一个图标 右键点击图标,会显示一个OPC UA配置,然后点击配置,进入下面页面 点击添加按钮,弹出下面的弹窗 然后进行选择和配置,见下图,然后保存即可。 3、启动K…

【Linux】Linux编译器--vim的使用

😁作者:日出等日落 🔔专栏:Linux 当你还不能对自己说今天学到了什么东西时,你就不要去睡觉。 ——利希顿堡 目录 vim是什么 vim安装 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模…

R.I.P

0x01 这几天,陈皓老师(网名:左耳朵耗子)因心梗离世的消息相信大家也都看到了。 于我而言,震惊、难过之余,心里也是阵阵惋惜。 相信不少同学了解陈皓老师都是从他的个人博客酷壳CoolShell开始的。 同样&…