阿里技术面没过,居然是因为我没用过Pytest框架,2024年最新2024软件测试目前最稳定和高效的UI适配方案

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

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

2、测试结果

如何执行
  • pytest # run all tests below current dir
  • pytest test_mod.py # run tests in module file test_mod.py
  • pytest somepath # run all tests below somepath like ./tests/
  • pytest -k stringexpr # only run tests with names that match the

the “string expression”, e.g. “MyClass and not method”

will select TestMyClass.test_something

but not TestMyClass.test_method_simple

  • pytest test_mod.py::test_func # only run tests that match the “node ID”,

e.g “test_mod.py::test_func” will be selected

only run test_func in test_mod.py

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

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

  • 通过 -m “website” 执行有website标记的test方法

$ 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 ============================================================

  • 通过 -m “not website” 执行没有website标记的test方法

$ 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参数介绍
  • -v 用于显示每个测试函数的执行结果
  • -q 只显示整体测试结果
  • -s 用于显示测试函数中print()函数输出
  • -x, --exitfirst, exit instantly on first error or failed test
  • -h 帮助
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、扩展插件

测试报告

安装与样例

pip install pytest-cov # 计算pytest覆盖率,支持输出多种格式的测试报告
pytest --cov-report = html --cov = ./ test_code_target_dir

Console参数介绍
  • –cov=[path], measure coverage for filesystem path (multi-allowed)
    指定被测试对象,用于计算测试覆盖率
  • –cov-report=type, type of report to generate: term, term-missing, annotate, html, xml (multi-allowed)
    测试报告的类型
  • –cov-config=path, config file for coverage, default: .coveragerc, coverage
    配置文件
  • –no-cov-on-fail, do not report coverage if test run fails, default: False
    如果测试失败,不生成测试报告
  • –cov-fail-under=MIN, Fail if the total coverage is less than MIN.
    如果测试覆盖率低于MIN,则认为失败
Console Result

---------------------------------------------------------------- coverage: platform linux2, python 2.7.14-final-0 ----------------------------------------------------------------
Name Stmts Miss Cover

pytest1.py 18 0 100%

Html Result

测试顺序随机

pip install pytest-randomly

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-01KUwCjG-1713254288403)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值