Pytest ini配置文件介绍
pytest.ini配置文件介绍:
pytest.ini文件他是单元测试框架pytest单元测试框架的核心配置文件,Pytest.ini配置文件可以改变pytest一些默认的运行方式,
通过设置该配置文件,可以按照用户行为习惯进行改进执行过程,如:用例收集规则,标签,命令行参数等等。
1)pytest.ini文件存放的位置:一般ini文件存放在项目的根目录
2)pytest.ini文件编码格式必须为ANSI文件格式可以通过相关工具进行修改格式
3)Pyest.ini运行规则:直接介绍了pytest的运行方式,主要分为主函数运行,以及命令行模式运行,这两种的运行模式,在执行前都会
去读取Pytest.ini这个配置文件
Pytest主要的配置参数:
具体配置如下,我们每一个配置进行演示
[pytest]
addopts = "-vs"
testpaths = "./case_api"
python_files = "api*.py"
python_classes = "Aaa"
python_functions = "cc"
markers =
smoke:冒烟测试用例
usermanage:用户管理模块测试用例
addopts:主要用来配置运行用例时,查看cesa的一些配置参数,我这里设置的是 "vs",那么
在执行时,就会默认加上-vs参数
示例: 这里我在执行时没有加上vs参数,他读取ini配置文件之后默认加上了vs参数,
C:\Users\admin\PycharmProjects\wuhan12>pytest #执行用例
结果:
collected 6 items
case_api/api_ddt_demo03.py::Test::test01 hello word(1)
PASSED
case_api/api_ddt_demo03.py::Test::test02 SKIPPED (unconditional skip)
case_api/api_ddt_demo03.py::Test::test03 hello word(3)
PASSED
case_api/api_ddt_demo03.py::Test::test04 hello word(4)
PASSED
case_api/api_ddt_demo03.py::Test::test05 hello word(5)
PASSED
case_api/api_ddt_demo03.py::Test::test06 FAILED
================================= FAILURES =================================
_______________________________ Test.test06 ________________________________
self = <case_api.api_ddt_demo03.Test testMethod=test06>
def test06(self):
""" assertFalse: 当我返回的结果为False 则断言通过"""
self.g = "123456"
> self.assertFalse(self.g.startswith("1"), msg="断言失败")
E AssertionError: True is not false : 断言失败
case_api\api_ddt_demo03.py:211: AssertionError
========================= short test summary info ==========================
FAILED case_api/api_ddt_demo03.py::Test::test06 - AssertionError: True is ...
================== 1 failed, 4 passed, 1 skipped in 0.60s ==================
testpaths:配置默认读取执行的项目路径-->这里可以看到pytest默认执行的用例的目录为./case_api目录
[pytest]
testpaths = "./case_api"
#执行结果:
C:\Users\admin\PycharmProjects\>pytest
paths: ./case_api
plugins: allure-pytest-2.9.45, forked-1.4.0, html-3.1.1, metadata-2.0.1, orde
ring-0.6, rerunfailures-10.2, xdist-2.5.0
collected 6 items
python_files :模块明的命名规则,pytest默认查找的模块是以test进行开头的这里我修改了以api开头的
模块,那么pytest就默认查找api开头的模块进行执行用例
case_api/api_ddt_demo03.py::Test::test01 hello word(1)
python_classes :修改pytest框架默认查找类的开头默认是查找class开头的类容,这里我改成了Aaa开头那么会
自动加载Aaa开头的类
python_functions :修改pytest框架默认查找类的开头默认是查找函数方法开头的用例,这里我改成了cc开头
那么会自动加载cc开头的用例
markers:是分组管理的功能,比如我们执行的用例会包含冒烟测试用例,那么我们想要运行冒烟测试用例怎么
办呢?这个时候就可以使用markes进行分组执行用例
示例: 我设置ini 文件smoke是冒烟测试用例,我的case1 case2都进行标记进行运行可以看到只执行了冒烟测试用例
执行语法pytest main([-m smoke])
#配置详情:
[pytest]
markers =
smoke:冒烟测试用例
#进行用例标记
import pytest
class Test_Case:
@pytest.mark.smoke
@pytest.mark.run(order=5)
def test01(self):
print(" case 01")
@pytest.mark.smoke
@pytest.mark.run(order=4)
def test02(self):
print(" case 02")
@pytest.mark.run(order=3)
def test03(self):
print(" case 03")
@pytest.mark.run(order=2)
def test05(self):
print(" case 04")
@pytest.mark.run(order=1)
def test06(self):
print(" case 05")
#输出结果
case_api/test_case01.py::Test_Case::test02 case 02
PASSED
case_api/test_case01.py::Test_Case::test01 case 01
PASSED
======================= 2 passed, 5 deselected in 0.57s