测试框架
文章平均质量分 85
wangmcn
这个作者很懒,什么都没留下…
展开
-
Selenium(思维导图)
原创 2021-12-21 17:16:55 · 6356 阅读 · 1 评论 -
Python测试框架pytest(28)测试报告Allure - 动态生成标题、动态生成功能、报告添加用例失败截图
目录1、动态生成标题1.1、示例一:参数化无标题1.2、示例二:参数化有标题1.3、示例三:参数化使用ids1.4、示例四:参数化动态生成标题1.5、示例五:参数化动态生成标题优化2、动态生成功能2.1、示例一:allure.dynamic.title()2.2、示例二:allure.dynamic.description()2.3、示例三:结合@pytest.mark.parametrize()2.4、示例四:全部方法示例3、报告添加用例失...原创 2021-11-03 17:59:02 · 7488 阅读 · 0 评论 -
Python测试框架pytest(27)测试报告Allure - 清空报告历史记录、allure命令
目录1、清空报告历史记录2、allure命令2.1、命令参数2.2、打开报告方式1、清空报告历史记录现象:1、当第一次运行测试用例生成 allure 报告,之后将测试用例名称修改再次运行,此时报告历史会显示历史运行记录(包含第一次执行结果)。2、分开运行2个测试用例,先运行第1个测试用例生成 allure 报告,之后运行第二个测试用例,此时生成的 allure 报告会同时显示2个测试用例运行记录(包含第1个测试用例执行结果)。示例,目录结构:示例一(...原创 2021-11-03 15:45:15 · 3218 阅读 · 0 评论 -
Python测试框架pytest(26)测试报告Allure - 特性
目录1、Environment1.1、添加Environment1.2、解决配置文件被删的问题2、Categories3、allure.step()3.1、@allure.step()方式3.2、with allure.step()方式4、allure.attach5、@allure.description()6、@allure.title()7、@allure.link()8、@allure.issue()9、@allure.testc...原创 2021-11-03 14:06:29 · 6480 阅读 · 0 评论 -
Python测试框架pytest(25)测试报告Allure - 简介、安装、示例、报告结构
目录1、简介2、安装3、示例4、报告结构1、简介1、Allure 框架是一个灵活的轻量级多语言测试报告工具,它不仅以简洁的 web 报告形式展示了测试内容,而且允许参与开发过程的每个人从日常测试执行中提取最大限度的有用信息。2、从 dev/qa 的角度来看,Allure 报告缩短了常见缺陷的生命周期:测试失败可以分为 bug 和中断的测试,还可以配置日志、步骤、固定装置、附件、计时、历史记录以及与 TMS 和 bug 跟踪系统的集成,因此负责任的开发人员和测试人员将掌握所有信息.原创 2021-11-02 15:58:25 · 3176 阅读 · 0 评论 -
Python测试框架pytest(24)配置文件pytest.ini
目录1、配置项1.1、markers1.2、xfail_strict1.3、addopts1.4、log_cli1.5、minversion1.6、testpaths1.7、norecursedirs1.8、更改测试用例收集规则2、parser.addini()添加配置信息pytest 配置文件可以改变 pytest 的运行方式,它是一个固定的文件 pytest.ini 文件,读取配置信息,按指定的方式去运行。pytest.ini 放在项目的根...原创 2021-11-02 14:16:12 · 2485 阅读 · 0 评论 -
Python测试框架pytest(23)插件 - pytest-picked、pytest-lazy-fixture
目录1、pytest-picked(运行未提交的git用例)1.1、安装1.2、参数1.3、用法1.4、示例2、pytest-lazy-fixture(在pytest.mark.parametrize中使用fixture)2.1、安装2.2、示例1、pytest-picked(运行未提交的git用例)自动化测试用例一般编写完后且又执行通过,都会提交到 git 仓库里。但是每次新增用例后,希望只执行未提交到 git 仓库里的用例。pytest-picked 插件..原创 2021-11-01 16:52:52 · 1084 阅读 · 0 评论 -
Python测试框架pytest(22)插件 - pytest-xdist(分布式执行)
目录1、安装2、示例3、原理和流程4、解决:多进程运行次数当测试用例非常多的时候,一条条按顺序执行测试用例,是很浪费测试时间的。这时候就可以用到 pytest-xdist,让自动化测试用例可以分布式执行,从而大大节省测试时间。pytest-xdist 是属于进程级别的并发。分布式测试用例的设计原则:(1)独立运行:用例之间是独立的,并且没有依赖关系,还可以完全独立运行。(2)随机执行:用例执行不强制按顺序执行,支持顺序执行或随机执行。(3)不影响其他用例:每个用例原创 2021-11-01 15:41:48 · 10181 阅读 · 5 评论 -
Python测试框架pytest(21)插件 - 单元测试覆盖率、随机执行用例
目录1、pytest-cov(单元测试覆盖率)1.1、安装1.2、示例2、pytest-random-order(随机执行用例)2.1、安装2.2、参数2.3、示例2.4、禁用随机2.5、禁用插件1、pytest-cov(单元测试覆盖率)在做单元测试时,一般都会参考代码覆盖率来衡量代码的质量。pytest-cov 插件可用来统计单元测试覆盖率。1.1、安装在命令行中运行以下命令进行安装:pip install pytest-cov或者...原创 2021-10-29 17:22:41 · 3034 阅读 · 0 评论 -
Python测试框架pytest(20)插件 - 生成html报告、重复执行用例、用例执行顺序、多重断言
目录1、pytest-html(生成html报告)1.1、安装1.2、操作参数1.3、报告优化(报错截图)1.4、报告优化(用例描述+报错截图)2、pytest-repeat(重复执行用例)2.1、安装2.2、操作参数2.3、兼容性3、pytest-ordering(用例执行顺序)3.1、安装3.2、pytest默认执行3.3、pytest-ordering自定义用例顺序4、pytest-assume(多重断言)4.1、安装4....原创 2021-10-29 13:55:26 · 3826 阅读 · 0 评论 -
Python测试框架pytest(19)插件 - 元数据、可选择URL地址、实时输出错误信息、失败重试
目录1、pytest-metadata(元数据)1.1、安装1.2、查看元数据1.3、添加元数据1.4、访问元数据2、pytest-base-url(可选择URL地址)2.1、安装2.2、示例2.2.1、使用命令行2.2.2、使用配置文件3、pytest-instafail(实时输出错误信息)3.1、安装3.2、示例4、pytest-rerunfailures(失败重试)4.1、安装4.2、操作参数4.2.1、重新运行所有失败的用例...原创 2021-10-27 11:29:35 · 1484 阅读 · 1 评论 -
Python测试框架pytest(18)命令行参数
目录1、parser.addoption()添加参数1.1、conftest配置参数1.2、带参数启动2、--tb2.1、--tb=auto2.2、--tb=long2.3、--tb=short2.4、--tb=line2.5、--tb=native2.6、--tb=no3、--durations4、--setup-show命令行参数执行是根据命令行选项将不同的值传递给测试函数的方式执行。1、parser.addoption()添加参数...原创 2021-10-26 15:01:56 · 1766 阅读 · 0 评论 -
Python测试框架pytest(17)参数化parametrize
目录1、参数2、装饰测试类3、多个参数化装饰器4、参数化(传入字典数据)5、标记参数化6、解决unicode编码问题@pytest.mark.parametrize 允许在测试函数或类中定义多组参数和 fixtures。参数化场景:只有测试数据和预期结果不一样,但操作步骤是一样的测试用例是可以用上参数化的。创建test_parametrize.py文件示例一:未参数化1、脚本代码:#!/usr/bin/env python# -*- cod...原创 2021-10-25 18:15:57 · 6898 阅读 · 0 评论 -
Python测试框架pytest(16)运行上次失败用例、查看与清除缓存cache、自定义标记mark
目录1、运行上次失败用例2、查看与清除缓存cache2.1、--cache-show2.2、--cache-clear3、自定义标记mark1、运行上次失败用例执行全部用例,第一次部分用例执行失败,此时当被测系统修复后,可执行上次失败的用例。命令行输入 pytest -h可以查询到两个命令行参数:--lf 和 --ff参数: --lf, --last-failed 只重新运行上次运行失败的用例(或如果没有失败的话会全部跑)。 --ff, --...原创 2021-10-25 14:14:06 · 2476 阅读 · 0 评论 -
Python测试框架pytest(15)skip、skipif、xfail跳过用例
目录1、@pytest.mark.skip2、pytest.skip()3、pytest.xfail()4、@pytest.mark.skipif()5、跳过标记6、pytest.importorskip()1、@pytest.mark.skip@pytest.mark.skip 可以标记无法在某些平台上运行的测试功能,或者希望失败的测试功能。希望满足某些条件才执行某些测试用例,否则 pytest 会跳过运行该测试用例。实际常见场景:跳过非 Windows 平台...原创 2021-10-25 11:05:06 · 1476 阅读 · 0 评论 -
Python测试框架pytest(14)用例执行后的几种状态
目录1、PASSED2、FAILED3、ERROR4、XFAIL用例执行完成后,每条用例都有自己的状态。常见的状态: PASSED:测试通过 FAILED:断言失败 ERROR:用例本身写的质量不行,本身代码报错(例如:fixture 不存在,fixture 里面有报错) XFAIL:预期失败,加了 @pytest.mark.xfail() 1、PASSED1、创建test_passed.py文件脚本代码:#!/usr/...原创 2021-10-22 17:38:17 · 1419 阅读 · 0 评论 -
Python测试框架pytest(13)assert断言
目录1、常用断言2、异常断言1、与 unittest 不同,pytest 使用的是 Python 自带的 assert 关键字来进行断言。2、assert 关键字后面可以接一个表达式,只要表达式的最终结果为 True,那么断言通过,用例执行成功,否则用例执行失败。示例:1、创建test_assert.py文件脚本代码:#!/usr/bin/env python# -*- coding: utf-8 -*-"""微信公众号:AllTests软件测试"""# 异原创 2021-10-22 15:46:39 · 878 阅读 · 0 评论 -
Python测试框架pytest(12)Hooks函数 - 其他Hooks函数
目录1、pytest_report_teststatus自定义测试结果2、pytest_generate_tests参数化生成测试用例3、更多Hooks函数1、pytest_report_teststatus自定义测试结果pytest_report_teststatus(report, config) 钩子函数返回结果类别,状态报告的短字母和详细单词。结果类别是对结果进行计数的类别,例如 "passed"、"skipped"、"error" 或空字符串。在测试过程中会显示短字母.原创 2021-10-22 13:42:09 · 778 阅读 · 0 评论 -
Python测试框架pytest(11)Hooks函数 - pytest_terminal_summary统计测试结果
当用例执行完成后,希望获取到执行的结果,方便了解用例的执行情况,这时候就可以使用 pytest_terminal_summary 来进行测试结果的统计(可以拿到所有的执行结果)。pytest_terminal_summary 源码:参数: terminalreporter(内部使用的终端测试报告对象) exitstatus(返回给操作系统的返回码) config(pytest 的 config 对象) 示例一:正常情况创建conftest.py文件,py原创 2021-10-21 18:08:55 · 3237 阅读 · 0 评论 -
Python测试框架pytest(10)Hooks函数 - pytest_collection_modifyitems改变顺序
pytest 默认执行用例是根据项目下的文件夹名称按 ascii 码去收集的,module 里面的用例是从上往下执行的。pytest_collection_modifyitems 这个钩子函数就是改变用例的执行顺序。pytest_collection_modifyitems 是在用例收集完毕之后被调用,可以用来调整测试用例执行顺序,它有三个参数,分别是: session:会话对象。 config:配置对象。 items:用例对象列表。 这三个参数分别有不同的作用,都原创 2021-10-21 13:44:18 · 689 阅读 · 0 评论 -
Python测试框架pytest(09)Hooks函数 - pytest_runtest_makereport获取用例执行结果
钩子方法 pytest_runtest_makereport 可以清晰的了解用例的执行过程,并获取到每个用例的执行结果。钩子方法 pytest_runtest_makereport 源码:按照执行顺序,具体过程如下:1、先判断,当 report.when == 'setup' 时,返回执行结果。2、然后判断,当 report.when == 'call' 时,返回执行结果。3、最后判断,当 report.when == 'teardown' 时,返回执行结果。示例一:co原创 2021-10-21 13:30:56 · 2049 阅读 · 0 评论 -
Python测试框架pytest(08)fixture - conftest.py、yield、addfinalizer
目录1、conftest.py作用范围2、yield实现teardown3、yield+with的结合4、addfinalizer终结函数1、conftest.py作用范围conftest.py 文件名称是固定的,pytest 会自动识别该文件,可以理解成一个专门存放 fixture 的配置文件。一个工程下可以建多个 conftest.py 的文件,一般在工程根目录下设置的 conftest 文件起到全局作用。在不同子目录下也可以放 conftest.py 的文件,作用范围只能在原创 2021-10-21 10:52:23 · 1464 阅读 · 0 评论 -
Python测试框架pytest(07)fixture - 参数化params、和parametrize结合、ids
目录1、fixture参数化params2、fixture和parametrize结合的参数化3、fixture中的ids1、fixture参数化paramsparams 是一个列表,用来存放我们要参数化的值。执行每个值的列表,可以通过 request.param1、创建test_fixture_4.py文件脚本代码:#!/usr/bin/env python# -*- coding: utf-8 -*-"""微信公众号:AllTests软件测试"""im原创 2021-10-21 10:21:23 · 3553 阅读 · 0 评论 -
Python测试框架pytest(06)fixture - 依赖、重命名、request、pytestconfig
目录1、fixture依赖其他fixture2、fixture重命名3、fixture之request3.1、request.config.rootdir3.2、request.getfixturevalue4、fixture之pytestconfig1、fixture依赖其他fixture添加了 @pytest.fixture,如果 fixture 还想依赖其他 fixture,需要用函数传参的方式,不能用 @pytest.mark.usefixtures() 的方式,否则原创 2021-10-20 10:54:08 · 1733 阅读 · 0 评论 -
Python测试框架pytest(05)fixture - error和failed、fixture实例化、多个fixture
目录1、error和failed区别2、fixture的实例化顺序3、使用多个fixture1、error和failed区别1、在测试用例里面断言失败,结果为failed。创建test_fixture_failed.py文件脚本代码:#!/usr/bin/env python# -*- coding: utf-8 -*-"""微信公众号:AllTests软件测试"""import pytest@pytest.fixture()def user():原创 2021-10-20 10:15:19 · 642 阅读 · 0 评论 -
Python测试框架pytest(04)fixture - 测试用例调用fixture、fixture传递测试数据
目录1、测试用例调用fixture2、fixture传递测试数据setup、teardown 可以实现在执行用例前或结束后加入一些操作,但这种都是针对整个脚本全局的。假设有以下场景:用例A需要先登录,用例B不需要登录,用例C需要先登录;很显然无法用 setup 和 teardown 来实现。fixture 的作用是可以让我们自定义测试用例的前置条件。fixture的优势: 命名方式灵活,不局限于 setup 和 teardown 这几个命名 conftest.py原创 2021-10-19 10:16:34 · 1722 阅读 · 0 评论 -
Python测试框架pytest(03)setup和teardown
unittest 提供了两个前置方法和两个后置方法。分别是: setup() setupClass() teardown() teardownClass() pytest 也提供了类似 setup、teardown 的方法。分别是: 模块级(开始于模块始末,全局的):setup_module()、teardown_module() 函数级(只对函数用例生效,不在类中):setup_function()、teardown_function()原创 2021-10-19 10:01:05 · 1985 阅读 · 1 评论 -
Python测试框架pytest(02)PyCharm设置运行pytest、pytest.main()
目录1、PyCharm设置运行pytest2、pytest.main()2.1、带参数运行2.2、运行指定用例2.3、加载指定插件1、PyCharm设置运行pytest打开PyCharm,依次打开Preferences--->Tools--->Python Integrated Tools,将Testing里的Default test runner选择项选为pytest,保存即可。右键运行,可以看到以pytest去运行。2、pytest.main()原创 2021-10-18 17:55:16 · 3450 阅读 · 1 评论 -
Python测试框架pytest(01)简介、安装、快速入门
目录1、简介2、安装3、快速入门3.1、pytest设计用例规则3.2、pytest执行用例规则3.2.1、目录下执行所有的用例3.2.2、执行单独一个pytest模块3.2.3、运行某个模块里面的某个类3.2.4、运行某个模块里面某个类里面的方法3.2.5、-v打印运行日志信息(详细)3.2.6、-q打印运行日志信息(简略)3.2.7、-s控制台输出结果3.2.8、-m标记表达式3.2.9、-x用例运行失败则立即停止执行3.2.10、-k运行包含原创 2021-10-18 17:00:42 · 570 阅读 · 0 评论