其他分享
首页 > 其他分享> > 技术面没过,因为Pytest框架......

技术面没过,因为Pytest框架......

作者:互联网

概述

pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点:

使用介绍

1、安装:

pip install pytest

2、编写规则:

编写pytest测试样例非常简单,只需要按照下面的规则:

pytest1.py

fixture的scope参数

setup和teardown操作

备注:也可以通过在fixture函数中通过yield实现setup和teardown功能

3、测试结果

如何执行

通过pytest.mark对test方法分类执行

通过@pytest.mark控制需要执行哪些feature的test,例如在执行test前增加修饰@pytest.mark.website

$ pytest  -v -m "website" pytest1.py

============================================================================== test session starts ===============================================================================platform linux2 -- Python 2.7.14, pytest-3.0.0, py-1.5.2, pluggy-0.3.1 -- /home/kevin/soft/anaconda2/bin/python

cachedir: .cacheUsing --randomly-seed=1522925202rootdir: /home/kevin/learn/python-web/tox/case2, inifile:plugins: randomly-1.0.0, mock-1.2, cov-2.0.0collected 3 items

pytest1.py::test_1 PASSED

============================================================================= pytest-warning summary =============================================================================WC1 None pytest_funcarg__cov: declaring fixtures using "pytest_funcarg__" prefix is deprecated and scheduled to be removed in pytest 4.0.  Please remove the prefix and use the @pytest.fixture decorator instead.=============================================================================== 2 tests deselected ========================================================================================================================================== 1 passed, 2 deselected, 1 pytest-warnings in 0.00 seconds ============================================================
$ pytest  -v -m "not website" pytest1.py

============================================================================== test session starts ===============================================================================platform linux2 -- Python 2.7.14, pytest-3.0.0, py-1.5.2, pluggy-0.3.1 -- /home/kevin/soft/anaconda2/bin/python

cachedir: .cacheUsing 

--randomly-seed=1522925192rootdir: /home/kevin/learn/python-web/tox/case2, inifile:plugins: randomly-1.0.0, mock-1.2, cov-2.0.0collected 3 items

pytest1.py::test_3 PASSED

pytest1.py::test_2 PASSED============================================================================= pytest-warning summary =============================================================================WC1 None pytest_funcarg__cov: declaring fixtures using "pytest_funcarg__" prefix is deprecated and scheduled to be removed in pytest 4.0.  Please remove the prefix and use the @pytest.fixture decorator instead.=============================================================================== 1 tests deselected ========================================================================================================================================== 2 passed, 1 deselected, 1 pytest-warnings in 0.00 seconds ============================================================

Console参数介绍

Case 1

$ pytest -v pytest1.py

============================================================================== test session starts ===============================================================================

platform linux2 -- Python 2.7.14, pytest-3.0.0, py-1.5.2, pluggy-0.3.1 -- /home/kevin/soft/anaconda2/bin/python

cachedir: .cache

Using --randomly-seed=1522920341

rootdir: /home/kevin/learn/python-web/tox/case2, inifile:

plugins: randomly-1.0.0, mock-1.2, cov-2.0.0

collected 3 items

pytest1.py::test_1 PASSED

pytest1.py::test_3 PASSED

pytest1.py::test_2PASSED

============================================================================= pytest-warning summary =============================================================================WC1 None pytest_funcarg__cov: declaring fixtures using "pytest_funcarg__" prefix is deprecated and scheduled to be removed in pytest 4.0.  Please remove the prefix and use the @pytest.fixture decorator instead.================================================================== 3 passed, 1 pytest-warnings in 0.01 seconds ===================================================================

Case 2

$ pytest -s pytest1.py

============================================================================== test session starts ===============================================================================

platform linux2 -- Python 2.7.14, pytest-3.0.0, py-1.5.2, pluggy-0.3.1

Using --randomly-seed=1522920508

rootdir: /home/kevin/learn/python-web/tox/case2, inifile:

plugins: randomly-1.0.0, mock-1.2, cov-2.0.0

collected 3 items

pytest1.py setup_function called.Test_1 

called..teardown_function called.setup_module called.Test_2 called..Test_3 called..teardown_module called.============================================================================= pytest-warning summary =============================================================================WC1 None pytest_funcarg__cov: declaring fixtures using "pytest_funcarg__" prefix is deprecated and scheduled to be removed in pytest 4.0.  Please remove the prefix and use the @pytest.fixture decorator instead.================================================================== 3 passed, 1 pytest-warnings in 0.01 seconds ===================================================================

03、扩展插件

1、测试报告

安装与样例

#计算pytest覆盖率,支持输出多种格式的测试报告:

pip install pytest-cov

pytest --cov-report=html --cov=./ test_code_target_dir

Console参数介绍

Console Result

---------------------------------------------------------------- coverage: platform linux2, python 2.7.14-final-0 ----------------------------------------------------------------
Name         Stmts   Miss  Cover
--------------------------------
pytest1.py      18      0   100%

Html Result

2、测试顺序随机
pip install pytest-randomly

3、分布式测试
pip install pytest-xdist

4、出错立即返回
pip install pytest-instafail

最后下面是我整理出来的一份软件测试工程师发展方向知识架构体系图。

希望大家能在这个成长过程中收益良多。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

由于CSDN上传图片大小有限,有需要的朋友可以关注我的公众号:程序员二黑,回复1,即可获取原图。

下面是一份配套的软件测试资源包:


上面是一些配套资源,这些资源对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。关注我的微信公众号:程序员二黑,即可免费获取!

最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。

如果您觉得文章还不错,请 点赞、分享、在看、收藏 一下,因为这将是我持续输出更多优质文章的最强动力!

精彩推荐

在职阿里6年,一个29岁女软件测试工程师的心声

拒绝B站邀约,从月薪3k到年薪47W,我的经验值得每一个测试人借鉴

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档

标签:cov,--,pytest1,......,py,pytest,面没过,Pytest,test
来源: https://blog.csdn.net/weixin_54696666/article/details/120421151