• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Pytest测试框架基础篇

武飞扬头像
戒酒的李白-Lisage
帮助1

今天和大家分享一下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的测试框架

- UnitTest
- pytest
- Robot Framwork == RF

框架 优点 缺点
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效果

学新通

 Text测试报告

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

2.3 编写测试用例【重点】

2.3.1 发现规则

pytest测试用例发现规则:
1.从当前目录开始,遍历每一个目录
2.在目录中搜索test_*.py 和 *_test.py,并导入
3.在导入的文件中,收集测试用例:
  - test开头的函数
  - Test开头的类,及其test开头的方法
  - unittest.TestCase的子类,及其test开头的方法(unitest的测试用例可以被pytest兼容,相当于用pytest框架去执行unittest的用例)

 下面分别举例子说明

基于test开头的函数

  1.  
    def test_login(self):
  2.  
    pass

基于Test开头的类

  1.  
    class TestAPI:
  2.  
    def test_login(self):
  3.  
    pass

基于unittest.TestCase的子类  

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

2.3.2 实践方法

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

扩展: 

  1.  
    class TestAPI:
  2.  
        
  3.  
        def __init__(self): # 作为测试用例的class 不可以有实例化__init__方法
  4.  
            pass
  5.  
     
  6.  
        def test_login(self):
  7.  
            pass

 上面代码效果如下:

学新通

意思就是作为测试用的类不可以有初始化方法__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配置文件进行配置

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

学新通

运行效果如下:

学新通

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

三、结束语

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcecae
系列文章
更多 icon
同类精品
更多 icon
继续加载