文章分类 - pytest
摘要:一、背景 在现代软件开发中,自动化测试是保证代码质量的关键一环。随着项目规模的扩大,测试套件的执行时间可能变得难以接受。pytest-xdist 是一个 Pytest 插件,它通过并发和分布式测试执行,帮助我们显著提高测试效率。 pytest-xdist 是一个 Pytest 插件,用于并行执行测试
阅读全文
摘要:一、在 Pytest 中完全禁用警告 你可以使用 --disable-warnings 命令行选项从测试运行输出中完全抑制警告摘要。 $ pytest --disable-warnings 这是一个极端选项,它有其缺点,最大的缺点是你将不知道有关于你的警告,应该被关注并被解决(因为 Pytest 将
阅读全文
摘要:一、背景 pytest-cache是pytest的一个第三方插件,在测试人员运行大量测试用例时,可以缓存测试结果,从而提高测试效率。尤其是在测试用例执行时间较长或者测试用例数量较多的情况下,使用pytest-cache插件可以大幅度减少测试用例执行时间,提高测试效率。 另外,每次执行完pytest后
阅读全文
摘要:一、安装插件 #官方 pip install pytest-rerunfailures #国内源 pip install pytest-rerunfailures -i https://pypi.tuna.tsinghua.edu.cn/simple 二、命令行方式运行 要重新运行所有失败的用例,添
阅读全文
摘要:一、前言 在执行测试用例时,为了保证测试用例的稳定性,在执行用例前需要准备数据,然后用例执行完毕后,再销毁数据,这样能保证每次执行用例的结果一样,也就是所谓的幂等性。 对于pytest测试框架,它提供了夹具的多种使用方法,其中有类似于unittest的setUp()、tearDown(),也有创新型
阅读全文
摘要:一、背景 在pytest.mark.parametrize参数时,使用id或ids描述用例时,控制台会以unicode 编码,这是pytest框架编码问题导致,只需要重新编码即可。 二、问题实列 从截图可以看出编码为unicode 编码 import random import pytest def
阅读全文
摘要:一、fixture函数 在pytest中,Fixture是一种被特别对待的函数。当这个函数被标记成为Fixture后,我们就可以在测试函数中使用它了。fixture函数可以放在测试脚本中,但常用方法是将其放在conftest.py文件中。有两种方法来调用fixture函数,一种是@pytest.ma
阅读全文
摘要:一、用例排序 pytest中用例之间的顺序默认是按文件名ASCLL码排序,文件内的用例默认是按照从上往下顺序执行。要改变用例的执行顺序,可以安装第三方插件pytest-ordering实现自定义用例顺序,由此可以解决用例的依赖问题。命令如下: pip install pytest-ordering
阅读全文
摘要:一、脚本中设置超时退出 由于某些测试用例步骤长,执行时间比较久,为了防止程序长时间处于等待状态,浪费宝贵时间。为此,我们可以设置一个超时时间,当测试在指定的时间长度内没有完成(即使程序并没有“僵死”,只是处理得比较慢),测试会被强行终止。再此,需要安装一个插件pytest-timeout。如下: p
阅读全文
摘要:当某个bug,修复优先级比较低,暂时不用修复。此时,改自动化用例运行时,肯定会报错,那么我们就可以用 @pytest.mark.xfail来标记,用例执行的结果会被标记为xfailed,而不是failed。 #test_xfail.py import pytest class TestMyCode:
阅读全文
摘要:一、直接忽略 由于某些原因,系统存在bug,但该bug修复级别比较低。或者由于需求变更,导致原有的脚本无法成功执行,所以需要跳过用例。而pytest提供了@pytest.mark.skip方法,但是我们推荐@pytest.mark.skip(reason="XXX"),因为它标注了跳过的具体原因,用
阅读全文
摘要:一、使用场景 自定义标签,可以标记测试用例,对测试用例进行分组,有利用对测试用例进行筛选。打标的方法@pytest.mark.XXX。比如:给用例打标为API,代表接口自动化的用例,如下所示: @pytest.mark.API 打标后,需要在pytest.ini文件中进行注册,否则会报warning
阅读全文
摘要:PyTest有一个特别的设计,叫作测试用例自动发现(Test Discovery)机制,允许我们不指定具体的测试用例源文件,而是根据一些命名规则去自动发现测试用例源文件,以及在源文件中筛选待执行的测试函数。默认情况下,测试发现机制是按如下规则执行: 测试用例文件名以test_*.py开头(以_tes
阅读全文
摘要:在接口测试时,会使用到模板技术,当接口的参数字段特别多,而构造一条测试数据需要填很多的参数,从而导致效率低下,因此可以采用模板技术,对关键的一些参数进行替换,而不用每个参数都进行替换修改,减少了重复劳动。 一、Template strings 模板字符串提供了更简单的字符串替换,它是python自带
阅读全文
摘要:一、问题描述 allure 报告首页展示的 "环境" 显示“没有环境变量” 配置信息,如图: 二、复制配置文件至allure报告 为了让allure 报告首页展示的信息更全面,需要进行设置,一种方法是在项目根路径创建一个配置文件environment.properties,然后在配置文件中添加自己的
阅读全文
摘要:一、功能描述 allure 报告首页展示的 "环境" 显示“没有环境变量” 配置信息,为了让allure 报告首页展示的信息更全面,需要进行设置。设置方法如下: 二、设置步骤 1、旧版本设置方法 老版本的allure可以采用如下方式: import allure # allure 添加 enviro
阅读全文
摘要:一、配置文件设置选项 使用pytest --help指令可以查看pytest.ini的设置选项 pytest -h 结果: [pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found: markers (line
阅读全文
摘要:如果您有一个运行缓慢的大型测试套件,您可能希望找出哪些测试是最慢的。让我们创建一个人工测试套件: import time class TestSlow: def test_funcfast(self): time.sleep(0.1) def test_funcslow1(self): time.s
阅读全文