10 2021 档案
摘要:1、pytest-cov(单元测试覆盖率) 在做单元测试时,一般都会参考代码覆盖率来衡量代码的质量。 pytest-cov 插件可用来统计单元测试覆盖率。 1.1、安装 在命令行中运行以下命令进行安装: pip install pytest-cov 或者(使用国内的豆瓣源,数据会定期同步国外官网,速
阅读全文
摘要:1、pytest-html(生成html报告) 1.1、安装 在命令行中运行以下命令进行安装: pip install pytest-html 或者(使用国内的豆瓣源,数据会定期同步国外官网,速度快。) pip install pytest-html -i http://pypi.douban.co
阅读全文
摘要:1、pytest-metadata(元数据) 元数据是关于数据的描述,存储着关于数据的信息,为人们更方便地检索信息提供了帮助。 pytest 框架里面的元数据可以使用 pytest-metadata 插件实现。 1.1、安装 在命令行中运行以下命令进行安装: pip install pytest-m
阅读全文
摘要:命令行参数执行是根据命令行选项将不同的值传递给测试函数的方式执行。 1、parser.addoption()添加参数 parser.addoption() 方法用来添加命令行参数 1.1、conftest配置参数 1、在conftest.py文件添加命令行选项,自定义命令行传入参数"--opt",
阅读全文
摘要:@pytest.mark.parametrize 允许在测试函数或类中定义多组参数和 fixtures。 参数化场景: 只有测试数据和预期结果不一样,但操作步骤是一样的测试用例是可以用上参数化的。 创建test_parametrize.py文件 示例一:未参数化 1、脚本代码: #!/usr/bin
阅读全文
摘要:1、运行上次失败用例 执行全部用例,第一次部分用例执行失败,此时当被测系统修复后,可执行上次失败的用例。 命令行输入 pytest -h 可以查询到两个命令行参数:--lf 和 --ff 参数: --lf, --last-failed 只重新运行上次运行失败的用例(或如果没有失败的话会全部跑)。 -
阅读全文
摘要:1、@pytest.mark.skip @pytest.mark.skip 可以标记无法在某些平台上运行的测试功能,或者希望失败的测试功能。 希望满足某些条件才执行某些测试用例,否则 pytest 会跳过运行该测试用例。 实际常见场景:跳过非 Windows 平台上的仅 Windows 测试,或者跳
阅读全文
摘要:用例执行完成后,每条用例都有自己的状态。 常见的状态: PASSED:测试通过 FAILED:断言失败 ERROR:用例本身写的质量不行,本身代码报错(例如:fixture 不存在,fixture 里面有报错) XFAIL:预期失败,加了 @pytest.mark.xfail() 1、PASSED
阅读全文
摘要:1、与 unittest 不同,pytest 使用的是 Python 自带的 assert 关键字来进行断言。 2、assert 关键字后面可以接一个表达式,只要表达式的最终结果为 True,那么断言通过,用例执行成功,否则用例执行失败。 示例: 1、创建test_assert.py文件 脚本代码:
阅读全文
摘要:1、pytest_report_teststatus自定义测试结果 pytest_report_teststatus(report, config) 钩子函数返回结果类别,状态报告的短字母和详细单词。 结果类别是对结果进行计数的类别,例如 "passed"、"skipped"、"error" 或空字
阅读全文
摘要:当用例执行完成后,希望获取到执行的结果,方便了解用例的执行情况,这时候就可以使用 pytest_terminal_summary 来进行测试结果的统计(可以拿到所有的执行结果)。 pytest_terminal_summary 源码: 参数: terminalreporter(内部使用的终端测试报告
阅读全文
摘要:pytest 默认执行用例是根据项目下的文件夹名称按 ascii 码去收集的,module 里面的用例是从上往下执行的。 pytest_collection_modifyitems 这个钩子函数就是改变用例的执行顺序。 pytest_collection_modifyitems 是在用例收集完毕之后
阅读全文
摘要:钩子方法 pytest_runtest_makereport 可以清晰的了解用例的执行过程,并获取到每个用例的执行结果。 钩子方法 pytest_runtest_makereport 源码: 按照执行顺序,具体过程如下: 1、先判断,当 report.when == 'setup' 时,返回执行结果
阅读全文
摘要:1、conftest.py作用范围 conftest.py 文件名称是固定的,pytest 会自动识别该文件,可以理解成一个专门存放 fixture 的配置文件。 一个工程下可以建多个 conftest.py 的文件,一般在工程根目录下设置的 conftest 文件起到全局作用。在不同子目录下也可以
阅读全文
摘要:1、fixture参数化params params 是一个列表,用来存放我们要参数化的值。 执行每个值的列表,可以通过 request.param 1、创建test_fixture_4.py文件 脚本代码: #!/usr/bin/env python # -*- coding: utf-8 -*-
阅读全文
摘要:1、fixture依赖其他fixture 添加了 @pytest.fixture,如果 fixture 还想依赖其他 fixture,需要用函数传参的方式,不能用 @pytest.mark.usefixtures() 的方式,否则会不生效。 1、创建test_fixture3.py文件 脚本代码:
阅读全文
摘要:1、error和failed区别 1、在测试用例里面断言失败,结果为failed。 创建test_fixture_failed.py文件 脚本代码: #!/usr/bin/env python # -*- coding: utf-8 -*- """ 微信公众号:AllTests软件测试 """ im
阅读全文
摘要:setup、teardown 可以实现在执行用例前或结束后加入一些操作,但这种都是针对整个脚本全局的。 假设有以下场景:用例A需要先登录,用例B不需要登录,用例C需要先登录;很显然无法用 setup 和 teardown 来实现。 fixture 的作用是可以让我们自定义测试用例的前置条件。 fix
阅读全文
摘要:unittest 提供了两个前置方法和两个后置方法。 分别是: setup() setupClass() teardown() teardownClass() pytest 也提供了类似 setup、teardown 的方法。 分别是: 模块级(开始于模块始末,全局的):setup_module()
阅读全文
摘要:1、PyCharm设置运行pytest 打开PyCharm,依次打开Preferences >Tools >Python Integrated Tools,将Testing里的Default test runner选择项选为pytest,保存即可。 右键运行,可以看到以pytest去运行。 2、py
阅读全文

浙公网安备 33010602011771号