pytest
Pycharm 内装 pytest,
Terminal内输入
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest #原命令pip install pytest,因为网速不好此处用清华网址的镜像
Pytest文件命名规范
- .py测试文件必须以 test_ 开头(或 _test 结尾)
- 测试方法必须以 test_ 开头
- 测试类必须以 Test_ 开头,并且不能有 init 方法
以 pytest 文件命名规范写完一个测试脚本如 test_one.py 想运行时,需要
Terminal内输入:pytest test_one.py
注:此时不能用pycharm自带的绿色小三角按钮运行,因为此时默认为unitest运行方式
若想将默认更改为pytest,则如下图修改后,即可用自带绿色小三角按钮运行
测试用例执行顺序
-
默认顺序
-
安装pytest-ordering,
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest-ordering
使用自定义顺序,在需要制定执行顺序的测试用例前 @pytest.mark.run(order=2),_(:з」∠)_感觉用的场景不多,详见300元视频 3.3——09:22
pytest指定目录、文件执行用例
在Terminal内输入如下代码
#找到当前目录文件下的pytest文件和测试用例运行 pytest #找到指定目录文件下的pytest文件 pytest test_mulu\test_file.py
格式化代码
使用快捷键`Ctrl + Alt + L`来格式化代码
pytest常用运行参数
pytest -m '选择的代号' 执行特定的测试用例,m即mark,在pytest.ini定义markers后使用
pytest -k ‘test_后所包含的任意字符’ 执行测试用例包含“关键字”(即:test_后所包含的任意字符)的用例,如果文件名符合关键字、则这个文件内的所有测试用例执行,若文件名不符合、则只执行文件内符合的测试用例
pytest -q 说明:简化控制台的输出 指定文件执行的话将文件目录加在参数后:pytest -q 文件目录
pytest -v 输出用例更加详细的执行信息
pytest -s 输出用例中的调试信息,如print的,log的
#若要执行pytest -m #第一步:在pytest.ini文件内设置markers,想设几个就几个 markers= p0:高优先级 test:测试环境 #空格为TAB键,冒号后为此条标记的注释 #第二步:在需要执行的测试用例上@pytest.mark.第一步设置的代号 @pytest.mark.p0 def test_one(): expect = 1 actual = 2 assert expect == actual #第三步,在终端执行代码pytest -m '选择的代号' pytest -m ‘p0’
#但若按上面这种标记方法,如果要更改的话得去测试用例上一条一条改,太麻烦了,所以建议直接将她用在包含测试用例的测试类上 #第一步:去pytest.ini里加入新标记代号 markers= p0:高优先级 test:测试环境 pro:生产环境 #第二步:在测试类上做标记 @pytest.mark.pro class TestThree: def test_one(self): expect = 1 actual = 2 assert expect == actual def test_two(self): expect = 1 actual = 1 assert expect == actual #第三步,终端执行pytest -m '选择的代号' pytest -m 'pro'
pytest配置文件 pytest.ini
[pytest] #固定写法,相当于import pytest? testpaths=./testcases #写了上面这个后去终端直接打pytest运行,就会直接加上上面这条配置定位到test_requests文件夹,然后运行这文件夹里的测试用例 markers= p0:高优先级 test:测试环境 pro:生产环境 #上面的为执行pytest -m 之前的第一步设置,空格为TAB键,冒号后为此条标记的注释 addopts:-q #设置执行pytest运行测试用例时默认的参数,-q简略
装pyyaml
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyYAML
各种数据格式转化校验的网址: