pytest框架学习-基础入门

查看所有Python相关学习笔记

pytest学习

一、相关内容的下载安装

1.1 基础安装

pip install pytest

1.2 html报告相关

pip install pytest-html

1.3 多进程运行相关

pip install pytest-xdist

1.4 错误重试相关

pip install pytest-rerunfailures

二、代码编写

2.1 编写规则

  1. 测试文件以test_开头(以_test结尾也可以);
  2. 测试类以Test开头,并且不能带有init方法;
  3. 测试函数以test_开头;
  4. 断言使用基本的assert
  5. 可自定义规则,详见【Pytest】pytest的基本设置

2.2 简单示例

简单示例代码详见第三章节

2.3 断言的使用

【Pytest】pytest断言

三、pytest执行命令

3.1 选择需要运行的用例

  1. 执行时需先切换到相关文件夹下
  2. 运行pytest时会找当前目录及其子目录中的所有test_*.py 或 *_test.py格式的文件以及以test开头的方法或者class,不然就会提示找不到可以运行的case了
  3. 演示代码
  • test_01.py
class Testcases01:
    def test_01(self):
        assert 1 == 1

    def test_02(self):
        assert 1 == 1

class Testcases02:
    def test_01(self):
        assert 1 == 1

    def test_02(self):
        assert 1 == 1
  • test_02.py
class Testcases03:
    def test_01(self):
        assert 1 == 1

    def test_02(self):
        assert 1 == 1

3.1.1 运行当前文件夹下的所有用例

pytest
pytest框架学习-基础入门_第1张图片
运行当前文件夹下的所有用例(加了html参数,详见3.2.2章节)

3.1.2 运行某个py文件中的所有用例

pytest test_01.py
pytest框架学习-基础入门_第2张图片
运行某个py文件中的所有用例(加了html参数,详见3.2.2章节)

3.1.3 运行某个py文件中的某个class下的所有用例

pytest test_01.py::Testcases01
pytest框架学习-基础入门_第3张图片
运行某个py文件中的某个class下的所有用例(加了html参数,详见3.2.2章节)

3.1.3 运行某个py文件中的某个class下的某个用例

pytest test_01.py::Testcases01::test_02
pytest框架学习-基础入门_第4张图片
运行某个py文件中的某个class下的某个用例(加了html参数,详见3.2.2章节)

3.2 参数说明

3.2.1 -q(-quiet)作用是减少冗长(命令行窗口不再展示pytest的版本信息)。

  • 演示代码
class TestClass:
    def test_one(self):
        x = "this"
        assert 'h' in x
  • 演示命令
pytest -q
pytest框架学习-基础入门_第5张图片
带-q与不带-q的区别

3.2.2 --html=xxx.html运行后生成html测试报告

执行前需先安装pytest-html模块,详见1.2章节。

  • 演示代码
class TestClass:
    def test_one(self):
        x = "this"
        assert 'h' in x


    def test_two(self):
        x = "hello"
        assert hasattr(x, 'check')
  • 演示命令
pytest --html=myreport/myreport.html
  • 上面方法生成的报告,css是独立的,分享报告的时候样式会丢失,为了更好的分享发邮件展示报告,可以把css样式合并到html里
pytest --html=report.html --self-contained-html
pytest框架学习-基础入门_第6张图片
生成的html报告界面

3.2.3 -n NUM多进程运行用例,NUM是线程数。

执行前需先安装pytest-xdist模块,详见1.3章节。

pytest -n 3

3.2.4 --reruns NUM某个用例运行失败时自动重试,NUM是重试次数。

执行前需先安装ppytest-rerunfailures模块,详见1.4章节。

pytest --reruns 2

3.2.5 -s运行命令时显示调试信息(print内容)。

pytest -s
pytest框架学习-基础入门_第7张图片
带-s与不带-s的区别

四、参考文档

  1. 全功能Python测试框架:pytest
  2. Python单元测试框架Pytest——如何生成测试报告
  3. 通过Hook函数使Py.test支持含有中文的测试用例名称(nodeid)和测试报告
  4. Pytest和Allure测试框架-超详细版+实战
  5. Pytest - 使用介绍

你可能感兴趣的:(pytest框架学习-基础入门)