pytest自动化测试框架基础篇

2023-10-27

目录

前言:

一、单元测试框架

二、pytest简介以及常用插件安装

三、pytest默认测试用例的规则以及基础应用

四、pytest跳过测试用例

五、pytest测试用例的前后置,固件


前言:

pytest是一个基于Python语言的自动化测试框架,它可以帮助测试人员更加高效地管理和执行测试用例,并提供了丰富的插件和扩展功能。

使用pytest可以使我们更加轻松地编写测试脚本,自动化执行测试,快速完成测试工作,并且pytest支持使用各种主流的Python测试库(如unittest)编写的测试代码,使得我们可以平滑地从使用其他测试框架过渡到使用pytest。

一、单元测试框架

1.什么是单元测试框架

单元测试框架是在自动化测试或者白盒测试中对软件的最小单元(函数,方法)进行测试的框架。

2.单元测试框架分类

python:unittest、pytest

3.单元测试框架主要做什么?

发现测试用例

执行测试用例

判断测试结果

生成测试报告

二、pytest简介以及常用插件安装

1、pytest是一个非常成熟的单元测试框架,灵活和简单。

2、它可以结合selenium、request、appium完成各种不同的自动化。

3、它还可以生成自定义allure报告以及Jenkins持续集成。

4、pytest还有很多强大的插件:

pytest

pytest-html(生成html报告的插件)

pytest-xdist(多线程运行的插件)

pytest-ordering(改变用例的执行顺序的插件)

pytest-rerunfailures(失败用例重新执行的插件)

allure-pytest(生成美观的自定义的allure报告)

通过在项目的根目录下新建一个:requirements.txt文件保持插件。然后通过以下命令安装:

pip install -r requirements.txt

三、pytest默认测试用例的规则以及基础应用

1、模块名必须以test_或者_test结尾。

2、测试类必须以Test开头,并且不能带有init方法。

3、测试用例必须以test_开头。

执行:Alt+enter自动导包

1.通过命令方式执行

pytest

执行的参数:

-vs        -v输出详细信息。 -s输出调试信息。如 :pytest -vs

-n          多线程运行。(提前安装插件:pytest-xdist)如:pytest -vs -n=2

-reruns num   失败重跑 (提前安装插件:pytest-rerunfailres)如:pytest -vs -reruns=2

                        raise Exception()抛出异常

                        try except                解决异常

-x                出现一个用例失败则停止测试。如:pytest -vs -x

--maxfail        出现几个用例失败才停止,如:pytest -vs --maxfail=2

--html        生成html的测试报告(提前安装插件:pytest-html)如:pytest -vs --html/.reports/result.html

-k                运行测试用例名称中包含某个字符串的测试用例。如:pytest -vs -k "demo1"

-m "smoke"        只执行冒烟用例                如:pytest -vs -m "smoke"               

2.通过主函数main方式执行。

if __name__ == '__main__':
    pytest.main(["-vs"])

3.通过全局配置文件pytest.ini文件执行。

注意:

一般放在项目的根目录下,名称必须是pytest.ini

编码格式为ANSI,当有中文时可能需要改变编码格式为GB2312

pytest.ini文件可以改变默认的测试用例规则

不管是命令行运行还是主函数运行,都会加载这个配置文件

[pytest]
# 参数
# 具体传参
addopts = -vs   
# 执行的测试用例的路径
testpaths = ./testcase
# 执行的模块
python_files = test_*.py
# 执行的类
python_classes = Test*
# 执行的函数
python_functions = test_*
# 测试用例分组执行进行标记
markers =
    smoke : 冒烟用例
    authority_manage : 权限管理
    menu_manage : 菜单管理

四、pytest跳过测试用例

(1)无条件跳过

@pytest.mark.skip(reason="无理由跳过")

(2)有条件跳过

@pytest.mark.skipif(time_age<10, reason="年龄小于10跳过")

五、pytest测试用例的前后置,固件

class CommonUtil:
 
    def setup_class(self):
        print("每个类之前执行一次")
 
    def teardown_class(self):
        print("每个类之后执行一次")
 
    def setup(self):
        print("每个用例之前执行一次")
 
    def teardown(self):
        print("每个用例之后执行一次")

用例demo:

import pytest
import time
 
from common.common_util import CommonUtil
 
class TestCeshi(CommonUtil):
    time_age = 8
 
    @pytest.mark.smoke
    def test_demo1(self):
        print("测试第一条用例")
        raise Exception("这条用例挂了")
 
    def test_demo2(self):
        print("测试第二条用例")
 
    @pytest.mark.skip(reason="无理由跳过")
    def test_demo3(self):
        print("测试第三条用例")
 
    @pytest.mark.skipif(time_age < 10, reason="年龄小于10跳过")
    def test_demo4(self):
        print("测试第四条用例")
        
    def test_demo5(self):
        print("测试第五条用例")

作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=2szVdJcy6VnqVi_zYhQd8aI9U5yfUv34&authKey=leQfP2SBsSV1%2FUzpd2OtJhdk%2F0SH%2FzEdi8uCVyM4q8w%2FHQEA1WUh3aqS9kyXZxUH&noverify=0&group_code=574737577

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pytest自动化测试框架基础篇 的相关文章

随机推荐

  • 【实践】PPT制作从入门到精通(含素材资源大全)

    1 摘要 作为一个演讲者和一个解决方案工程师 写好满足场景和吸引眼球的PPT是必须的技能 辉哥把所有的私藏货拿出来 希望能给同行带来帮助 2 PPT技能 2 1 PPT技巧 2 1 1 PPT学习三部曲 PPT的学习分为三个阶段 练习基础操
  • 如何定制化Spring Boot Starter,这次我终于学会了

    文章目录 什么是Spring Boot Starter 实现步骤 启动器 自动配置包 总结自定义Starter的实现逻辑 Spring Boot Starter官网描述 Spring Boot Starter官方介绍 什么是Spring B
  • 测试相关知识点

    设计测试用例 主要从功能性 性能性 安全性 易用性 兼容性 网络测试这几个方面来设计 需要考虑问题的角度全面 注意如果是手机端app测试的话需要加上中断测试这项 考虑后台切换 app切换 拔插数据线 来短信 电话 其他app消息 1 微信朋
  • openMP + cuda 实现多GPU编程

    include
  • @FeignClient configuration参数配置

    1 我们定义Feign Client时候 可以通过configuration参数指定一个配置类 那么指定的这个配置入口类上面是否需要添加 Configuration 注解呢 FeignClient name OrderServiceClie
  • 渗透测试工具Burp Suite详解

    Burp Suite 的安装 Burp Suite是一款集成化的渗透测试工具 包含了很多功能 可以帮助我们高效地完成对Web应用程序的渗透测试和攻击 Burp Suite由Java语言编写 基于Java自身的跨平台性 使这款软件学习和使用起
  • ffmpeg 和 opencv 编译

    一 ffmpeg编译 ffmpeg 编译参数 configure enable gpl disable x86asm enable shared enable pic enable static 二 opencv编译 1 安装依赖库 sud
  • 两个栈实现队列 和 两个队列实现栈

    1 两个栈实现队列 核心 push操作 每次总是往stack1 push元素 pop操作 每次总是从stack2 pop元素 分stack2是否empty分为两种情况 static final Stack
  • FEC介绍(四)—RS(544,514)编解码过程【转载】

    https zhuanlan zhihu com p 103888948 utm source wechat session
  • JAVA基础知识点总结

    文章目录 前言 一 JAVA简介 二 基础语法 面向对象 String Integer Object 异常 IO 序列化 Java 泛型 注解 反射 前言 一 JAVA简介 Java 是一门面向对象的编程语言 语言特点 面向对象 平台无关性
  • ES6 flat 与数组扁平化

    前言 flat 用于将多维数组拉平 扁平化 不影响原数组 返回新的数组 1 2 3 4 flat 1 2 3 4 仅有一个参数depth 用于指定拉平的深度 默认值为1 若depth指定为非正数 将返回原数组 指定为Infinity 无论多
  • 线程间发布和订阅

    include
  • 刷脸支付可以自动识别会员可以领券打折

    刷脸支付说白了就是用自己的脸 身份证明 来跟金融做的一个消费交易 大家对于信息这个事情是非常敏感的 因此就会存在一个安全风险问题 还有就是对商家泄露的信息太多 造成消费者的担心等情况 也是时有发生 靠脸吃饭之前只是一句调侃 如今却成为了现实
  • 01 Java NIO NIO和IO的区别

    Java NIO NIO和IO的区别 NIO和IO的区别 面向流与面向缓冲 阻塞与非阻塞IO 选择器 Selectors NIO和IO如何影响应用程序的设计 API调用 数据处理 设置处理线程数 Java IO流专栏中主要介绍了java i
  • vue3之toRefs

    把一个响应式对象转换成普通对象 该普通对象的每个属性都是一个ref reactive的响应式功能赋予给对象的 给对象结构或展开的时候 会让数据丢失响应式能力 使用toRefs可以保证该对象展开的每一个属性都是响应式的 案例一
  • 挖到过src吗?请描述一下过程

    挖到过src吗 请描述一下过程 SRC 安全漏洞奖励计划 是一种由企业或组织设立的计划 旨在鼓励独立的安全研究人员发现并报告其系统或应用程序中的漏洞 这些计划的推出是为了提高安全性 及时修复潜在的漏洞 并奖励那些贡献漏洞发现的研究人员 SR
  • 如何让网页变灰色

    在一些重大节日 如何快速使网站网页变成灰色 黑白色 在网页的标签内加入以下代码 如果想让单个网页变灰色 就写在单网页里面 如果写在继承的网页里面 是整体的变灰色 如果你不想改动CSS文件 你可以通过在网页头部中的标签内部加入内联CSS代码的
  • c语言数学追赶法编程,计算方法——C语言实现——追赶法求解非线性方程

    最近在上计算方法这门课 要求是用MATLAB做练习题 但是我觉得C语言也很棒棒啊 题目 一般三对角线性方程组的求解用这个方法 三对角线性方程组也称为带状矩阵 这方法基础上还是LU分解法 只是比LU分解法计算方法上简单一些 使用VS2017
  • [HCTF 2018]admin 1 弱口令和爆破解法

    HCTF 2018 admin 继续buu刷题 几天刷到一道比较有意思的题 HCTF 2018 admin 打开环境之后 右上角 点击login 既然题目名字都提示了admin 猜测就是弱口令 admin加123 试一下 直接就登录进去了
  • pytest自动化测试框架基础篇

    目录 前言 一 单元测试框架 二 pytest简介以及常用插件安装 三 pytest默认测试用例的规则以及基础应用 四 pytest跳过测试用例 五 pytest测试用例的前后置 固件 前言 pytest是一个基于Python语言的自动化测