![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytest
文章平均质量分 54
Anthony_路人甲
这个作者很懒,什么都没留下…
展开
-
selenium实战 - docker环境部署
selenium实战 - docker环境部署原创 2024-07-06 13:06:15 · 507 阅读 · 0 评论 -
实战:使用多线程处理并发操作
工具实战:使用多线程处理并发操作原创 2024-07-06 12:54:29 · 402 阅读 · 0 评论 -
Selenium实战 - 无头模式
自动化实战,selenium之无头模式。原创 2024-07-05 21:57:43 · 544 阅读 · 0 评论 -
接口自动化实战-日志模块接入
接口自动化框架接入日志的能力原创 2024-07-05 21:55:25 · 139 阅读 · 0 评论 -
pytest-Hook(钩子)函数
hook 函数相当于是 Pytest 的一些本地插件,Pytest 给我们提供了许多的 hook 函数,用于处理不同阶段的自定义行为。原创 2024-06-30 15:48:55 · 423 阅读 · 0 评论 -
pytest-命令行参数
命令行参数使用 Pytest 执行用例时,我们经常都是通过命令行来执行的,有同学要说了,我一般是通过编辑器里面直接就执行了;在实际项目中编写用例调试用例,使用编辑器执行用例没问题,但在 CI 集成环境下,一般是需要用命令行的。Pytest 要想玩得溜,命令行参数必须要熟悉,Pytest 支持的参数很多,有自带的参数,插件提供的参数,还有我们自己定义的一些参数,下面就介绍在项目中常用的参数:1、-s有时候你发现在用例里面使用 print 语句,但是执行的时候却没有打印,那多半是因为你没有加这个原创 2024-06-30 15:47:52 · 354 阅读 · 0 评论 -
pytest-两种不同写法
这里还要讲一下 setup_method 和 setup_function 的区别,setup_function 是在基于函数的用例写法时使用的,setup_method 是基于类的用例写法使用的,我面试别人的时候喜欢问这两个的区别,如果知道这个的,基本对本部分内容是了解的。熟悉 unittest 框架的人都知道,unittest 里面 fixture 的写法是 setUp 和 tearDown,setUp_class 和 tearDown_class,只有这一种写法,而且是固定的写法哈。原创 2024-06-30 15:46:36 · 231 阅读 · 0 评论 -
pytest-内置固件
似乎测试正常执行完全没有问题,但如果我们的家目录下恰好有这个配置文件并且维护了许多配置,运行测试将会覆盖原有配置,这太可怕了!pytestconfig 其实是 request.config 的快捷方式,所以也可以自定义固件实现命令行参数读取。使用 tmpdir.mkdir() 创建目临时录,tmpdir.join() 创建临时文件(或者使用创建的目录)。但程序已经写死了文件路径,怎么办?使用 pytestconfig,可以很方便的读取命令行参数和配置文件。用于临时文件和目录管理,默认会在测试结束时删除。原创 2024-06-30 15:45:27 · 578 阅读 · 0 评论 -
pytest-固件参数化
更进一步,可以继续将这些固件合并为一个,而通过参数控制连接到不同的数据库。固件参数化需要使用 pytest 内置的固件 request,并通过 request.param 获取参数。假设现在有一批 API 需要测试对不同数据库的支持情况(对所有数据库进行相同操作),最简单的方法就是针对每个数据库编写一个测试用例,但这包含大量重复代码,如数据库的连接、关闭,查询等。与函数参数化使用 @pytest.mark.parametrize 不同,固件在定义时使用 params 参数进行参数化。原创 2024-06-30 15:43:59 · 358 阅读 · 0 评论 -
pytest-自动执行固件
目前为止,所有固件的使用都是手动指定,或者作为参数,或者使用 usefixtures。如果我们想让固件自动执行,可以在定义时指定 autouse 参数。欢迎关注公众号,与Joker一起探索测试之道。原创 2024-06-30 15:42:56 · 386 阅读 · 0 评论 -
pytest-作用域
固件的作用是为了抽离出重复的工作和方便复用,为了更精细化控制固件(比如只想对数据库访问测试脚本使用自动连接关闭的固件),pytest 使用作用域来进行指定固件的使用范围。欢迎关注公众号,与Joker一起探索测试之道。默认的作用域为 function。原创 2024-06-30 15:42:01 · 333 阅读 · 0 评论 -
pytest-预处理和后处理
Pytest 使用 yield 关键词将固件分为两部分,yield 之前的代码属于预处理,会在测试前执行;yield 之后的代码属于后处理,将在测试完成后执行。很多时候需要在测试前进行预处理(如新建数据库连接),并在测试完成进行清理(关闭数据库连接)。当有大量重复的这类操作,最佳实践是使用固件来自动化所有预处理和后处理。可以看到在测试成功的 . 标识前后有数据库的连接和关闭操作。欢迎关注公众号,与Joker一起探索测试之道。原创 2024-06-30 15:41:03 · 82 阅读 · 0 评论 -
pytest-固件(fixture)
固件可以直接定义在各测试脚本中,就像上面的例子。更多时候,我们希望一个固件可以在更大程度上复用,这就需要对固件进行集中管理。不要自己显式调用 conftest.py,pytest 会自动调用,可以把 conftest 当做插件来理解。在复杂的项目中,可以在不同的目录层级定义 conftest.py,其作用域为其所在的目录和子目录。固件(Fixture)是一些函数,pytest 会在执行测试函数之前(或之后)加载运行它们。我们可以利用固件做任何事情,其中最常见的可能就是数据库的初始连接和最后关闭操作。原创 2024-06-30 15:39:13 · 324 阅读 · 0 评论 -
pytest-参数化
在 pytest 中,我们有更好的解决方法,就是参数化测试,即每组参数都独立执行一次测试。不过虽然参数众多,但仍然是一个测试,当某组参数导致断言失败,测试也就终止了。当对一个测试函数进行测试时,通常会给函数传递多组参数。比如测试账号登陆,我们需要模拟各种千奇百怪的账号密码。如果觉得每组测试的默认参数显示不清晰,我们可以使用 pytest.param 的 id 参数进行自定义。通过异常捕获,我们可以保证程所有参数完整执行,但要分析测试结果就需要做不少额外的工作。欢迎关注公众号,与Joker一起探索测试之道。原创 2024-06-30 15:38:17 · 345 阅读 · 0 评论 -
pytest-跳过函数
按正向的思路,我们只要通过标记指定要测试的就可以解决这个问题;但有时候的处境是我们能进行反向的操作才是最好的解决途径,即通过标记指定要跳过的测试。上一节提到 pytest 使用标记过滤测试函数,所以对于那些尚未开发完成的测试,最好的处理方式就是略过而不执行测试。Pytest 还支持使用 pytest.mark.skipif 为测试函数指定被忽略的条件。Pytest 使用特定的标记 pytest.mark.skip 完美的解决了这个问题。pytest 使用 s 表示测试被跳过(SKIPPED)。原创 2024-06-30 15:37:21 · 217 阅读 · 0 评论 -
pytest的标记函数
默认情况下,pytest 会递归查找当前目录下所有以 test 开始或结尾的 Python 脚本,并执行文件内的所有以 test 开始或结束的函数和方法。以上两种方法,第一种一次只能指定一个测试函数,当要进行批量测试时无能为力;第二种方法可以批量操作,但需要所有测试的函数名包含相同的模式,也不方便。由于某种原因(如 test_func2 的功能尚未开发完成),我们只想执行指定的测试函数。使用 mark,我们可以给每个函数打上不同的标记,测试时指定就可以允许所有被标记的函数。多个函数也可以打相同的标记。原创 2024-06-30 15:36:11 · 340 阅读 · 0 评论 -
pytest快速入门
使用 pytest -h 查看 pytest 的所有选项。pytest 使用 . 标识测试成功(PASSED)。pytest 使用 F 标识测试失败(FAILED)。pytest 对失败的测试给出了非常人性化的提示。欢迎关注公众号,与Joker一起探索测试之道。可以使用 -v 选项,显示测试的详细信息。原创 2024-06-30 15:34:56 · 213 阅读 · 0 评论 -
pytest - 后置固件yield和终结函数addfinalizer
pytest - 后置固件yield和终结函数addfinalizer原创 2022-05-31 13:55:21 · 304 阅读 · 0 评论 -
pytest插件 - 分布式运行
pytest插件 - 分布式运行原创 2022-05-31 11:47:10 · 255 阅读 · 0 评论 -
pytest,多条断言,存在失败时仍运行用例
pytest,多条断言,存在失败时仍运行用例原创 2022-05-31 11:45:32 · 428 阅读 · 0 评论 -
pytest执行用例,失败后重新运行
pytest执行用例,失败后重新运行原创 2022-05-31 11:44:43 · 486 阅读 · 0 评论 -
pytest快速入门-官方建议
pytest快速入门-官方建议原创 2022-05-31 11:35:39 · 83 阅读 · 0 评论