Pytest测试框架基础篇

Pytest测试框架基础篇今天和大家分享一下 pytest 测试框架的基础篇 内容包括 了解 pytest 测试框架的特点 掌握 pytest 基本使用 掌握 pytest 常用的场景 掌握 pytest 运行参数和配置方法

今天和大家分享一下pytest测试框架的基础篇,内容包括:

– 了解pytest测试框架的特点

– 掌握pytest基本使用

– 掌握pytest常用的场景

– 掌握pytest运行参数和配置方法

目录

一、测试框架的作用和类型

1.1 测试框架

1.2 关于Python的测试框架

二、pytest测试框架 

2.1 安装pytest

2.2 启动pytest

2.3 编写测试用例【重点】

2.3.1 发现规则

2.3.2 实践方法

2.4 运行参数及其配置化

2.4.1 配置项

2.4.2 配置化

三、结束语


一、测试框架的作用和类型

1.1 测试框架

概念:测试框架,对测试用例进行发现、组织、执行、记录、报告等管理操作,从而帮助测试人员更好的设计、开发自动化测试脚本。

1.2 关于Python的测试框架

框架 优点 缺点
RF

关键字驱动

丰富的插件

良好扩展性

不方便自定义测试报告

不方便进行测试

UnitTest

python内置

xUnit用法

使用方便

命名风格和Python不一致

过多的支持抽象,面向对象

缺少插件,没法扩展

Pytest

不要求使用面向对象

使用起来很灵活

丰富的插件

不兼容其他框架

要求掌握python基础

共同点: 

1.标记和筛选用例
2.执行用例
3.记录测试过程
4.可以管理测试环境
5.生成测试报告








二、pytest测试框架 

pytest是更加pythonic的测试框架,具有强烈风格特色。

pythonic,简单的翻译就是python风格,pythonic code,就是说你写的代码要带有浓厚的python规范和python风格

2.1 安装pytest

pip install pytest

注意:pytest的生态是由pytest本身和pytest插件共同构成的,除了本身以外还需要一些插件。

  • pytest:pytest框架本体
  • pytest-html:生成HTML测试报告
  • pytest-xdist:并行化执行测试用例
  • pytest-rerunfailures:失败重跑
  • pytest-ordering:为用例排序
  • allure-pytest:生成allure测试报告(更高级)

一键安装所有:

pip install pytest pytest-html pytest-xdist pytest-rerunfailures pytest-ordering allure-pytest

2.2 启动pytest

1.执行在命令行输入pytest —- 在什么地方安装,就在什么地方输入(建议)

2.python代码中执行 pytest.main()

3.pycharm提供了testrunner(不建议使用)

   – 执行在命令行输入pytest效果

Pytest测试框架基础篇

 Text测试报告

1.报告头:
  – 平台和版本信息
  – 根目录、配置文件、特殊选项
  – 插件列表
2.收集情况
  – 测试用例的数量
3.执行状态
  – 用例的执行结果
  – 测试的执行进度
4.摘要
  – 错误提示、捕获的输出
  – 结果统计
  – 耗时统计
























2.3 编写测试用例【重点】

2.3.1 发现规则

 下面分别举例子说明

基于test开头的函数

def test_login(self): pass

基于Test开头的类

class TestAPI: def test_login(self): pass

基于unittest.TestCase的子类  

import unittest class test(unittest.TestCase): # 如果是unittest.Testcase的子类,命名不做要求 def test_login(self): pass

2.3.2 实践方法

1.创建test_开头的文件:test_api.py
2.在文件中,创建test_开头的函数:test_login
3.在函数中使用断言关键字断言:assert 




扩展: 

class TestAPI:          def __init__(self): # 作为测试用例的class 不可以有实例化__init__方法         pass     def test_login(self):         pass

 上面代码效果如下:

Pytest测试框架基础篇

意思就是作为测试用的类不可以有初始化方法__init__。

思考: 

如果有太多的文件,想要分门别类怎么办?

太多的文件可以放下任意文件夹里,不影响加载和执行,pytest对文件夹没有任何要求。

惯例:文件夹如有和测试相关的一切,使用test或者test_来开头。

2.4 运行参数及其配置化

2.4.1 配置项

这里可以在pytest官网上进行阅读和查看

pytest官网:pytest: helps you write better programs — pytest documentation/

或者可以输入命令进行帮助查看

pytest -h 

下面举几个常用的配置项:

  • -v 显示详细信息
  • -s 关闭输出捕获
  • -n X:使用X进程,并行化的运行测试用例(电脑是几核的就写几)
  • -n auto:自动选择进程数执行
  • –html=Path:生成HTML测试报告,并保存在Path路径
  • –self-contained-html:HTML文件自包含
  • –reruns X:测试用例失败之后,重试X次  

2.4.2 配置化

通过pytest.ini配置文件进行配置

[pytest]
addopts = -v -s -n 1 --html=report.html

Pytest测试框架基础篇

运行效果如下:

Pytest测试框架基础篇

会显示我么配置参数里面各个效果

三、结束语

今天的分享主要是围绕pytest基础去讲解,后续还会分享pytest测试框架的进阶篇和实战篇,感兴趣的朋友可持续关注,创作不易,还望三连。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220743.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:45
下一篇 2026年3月17日 下午7:46


相关推荐

  • 江诗丹顿geneve系列推荐大全_江诗丹顿geneve

    江诗丹顿geneve系列推荐大全_江诗丹顿geneve很多腕表印刻有众多的字母,比如“AUTOMATIC”英文,你知道这代表什么意思呢?这是自动机械表的标志,意味着腕表内部设计着上百个机械零件,也可带你感受机械运转的魅力。那么江诗丹顿geneve是什么意思呢?有什么与众不同的意义呢?学习可让你对腕表界有着更多的了解。江诗丹顿geneve是什么意思?有着什么意义呢?“geneve”,这是日内瓦的意思,也可引申为日内瓦印记,此印记有着百年历史,作用是对时…

    2025年8月12日
    3
  • python的遍历字符串的方式

    python的遍历字符串的方式1)直接进行遍历strs=’abcd’forchinstrs:print(ch)2)利用下标遍历strs=’abcd’forindex,chinenumerate(strs):print(index,end=”)print(ch)3)利用range进行遍历strs=’abcd’forindexin…

    2022年6月22日
    57
  • android Apk打包过程概述_android是如何打包apk的「建议收藏」

    最近看了老罗关于android应用资源编译和打包过程的分析,过程比较复杂,这里结合其他资料,简要描述下打包过程,从整体上了解这个流程,感兴趣的再去详细研究过程。流程概述:1、打包资源文件,生成R.java文件2、处理aidl文件,生成相应java 文件3、编译工程源代码,生成相应class 文件4、转换所有class文件,生成classes.dex文件5、打包生成apk6、对apk文件进行签名7、

    2022年3月11日
    58
  • 动态添加流式布局

    动态添加流式布局自定义流式布局 之前的一篇文章写过 这里就不阐述了 http blog csdn net article details 随后封装一个方法工具类 GradientDraw 代替 shape StateListDra 替换 selector 设置 publicclassD GradientDraw

    2026年3月16日
    2
  • Django(54)drf视图家族[通俗易懂]

    Django(54)drf视图家族[通俗易懂]视图家族drf的视图总共分为以下4个,对应4个源码文件views:视图类generics:工具视图mixins:视图工具集viewsets:视图集学习曲线我们学习视图,可以按照以下的曲线

    2022年7月31日
    7
  • Gmapping学习总结「建议收藏」

    Gmapping学习总结「建议收藏」Gmapping学习总结Gmapping的程序框架是依托Open_slam,该框架主要分成slam_gmapping和openslam_gmapping。在slam_gmapping可以从lasercallback出发,作为整个框架的起点(虽然有main函数,main函数在main.cpp中,从这里出发不影响这个流程的分析)。Lasercallback函数在slam_gmapping.cpp文件…

    2022年6月17日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号