pytest框架快速⼊门:pytest运⾏时参数说明,pytest详
苹果应用商店解,pytest.ini详解
⼀、Pytest简介
1.pytest是⼀个⾮常成熟的全功能的Python测试框架,主要有⼀下⼏个特点:
instr是什么函数
简单灵活,容易上⼿,⽀持参数化
2.能够⽀持简单的单元测试和复杂的功能测试,还可以⽤来做selenium、appium等⾃动化测试,requests+pytest接⼝⾃动化测试
3.pytest具有很多第三⽅插件,并且可以⾃定义扩展,⽐较好⽤的如:
pytest-selenium(集成selenium)
pytest-html(完美html测试报告⽣成)
pytest-rerunfailures(失败⽤例重复执⾏)
pytest-xdist(多CPU分发)
4.测试⽤例的skip和xfail处理
5.可以很好的和jenkins集成
6.pytest也⽀持allure测试报告
7.能兼容unittest,是unittest的扩展
⼆、Pytest以及常⽤插件安装
把如下内容写到⼀个txt⽂件中,如
pytest
pytest-html
pytest-xdist
pytest-rerunfailures
然后在Dos窗⼝中使⽤此命令安装所有的模块:pip install -
通过命令:pytest --version验证安装结果。如果报如下错误则需要调整python或pytest的版本,这是python和pytest的版本不兼容:
下⾯说两个错误例⼦,⼀个是win7、python3.7.4以及pytest5.0+,将python降到3.7.3就ok了,另⼀个是Windows 10, python 3.8.1, pytest 5.3.3,将pytest降到4.6.9以下版本也ok,因此建议你要么降python版本,要么降pytest版本试试。
笔者使⽤的是:win7+python3.7.3+pytest5.4.1,亲测没问题。
三、 pytest框架基础应⽤
pytest运⾏函数时和运⾏类⾥⾯的⽅法情况如下:
import pytest
def test01():
print('测试⽤例⼀')
def abcd():
print('测试⽤例⼆')
class TestCase:
def test_03(self):
print('测试⽤例三')
def defg(self):
print('测试⽤例四')
if __name__ == '__main__':
pytest.main(['-s','pytest-demo.py'])
运⾏结果如下:
注意事项:
(1) 测试函数、类中的测试⽅法都必须以test_ 开头,当然以什么开头在pytest可⾃定义。
(2) 测试类必须以Test开头,并且不能带有init⽅法
(3) 断⾔必须使⽤assert断⾔
执⾏⽅式:
(1) 主函数⽅式运⾏:
指定运⾏⽂件:pytest.main([’-s’,'pytest-demo.py模块名’])
电脑维修源码注意:如果py⽂件是以test_开头或者以_test结尾则可以使⽤pytest.main()运⾏。因为pytest.main()会运⾏当前⽬录下所有以test_开头或者以_test结尾的⽂件。
(2) 命令⾏⽅式运⾏
点开Pycharm左下⾓的:Terminal打开当⾯⽬录下的命令⾏窗⼝。
输⼊命令执⾏:pytest pytest-demo.py模块名
注意:如果py⽂件是以test_开头或者以_test结尾则可以使⽤pytest命令运⾏,因为pytest会运⾏当前⽬录下所有以test_开头或者以_test 结尾的⽂件。
四、 运⾏时参数说明
-s:显⽰打印内容
如:pytest pytest-demo.py -s
等价于:pytest.main([’-s’,'pytest-demo.py’])
:::指定测试⽤例运⾏
运⾏函数:如:pytest pytest-demo.py::test_01
等价于:pytest.main([’-s’,'pytest-demo.py::test01’])
运⾏类中⽅法:如:pytest pytest-demp.py::TestCase::test_03
等价于:pytest.main([’-s’, 'pytest-demo.py::TestCase::test_03’])
python安装教程win7–html=路径/report.html:⽣成xml/html格式测试报告(需要先安装pytest-html)
如:pytest pytest-demp.py --html-./report.html
等价于:pytest.main([’-s’,'pytest-demo.py’,’–html=./report.html’])
–maxfail=1:出现1个失败就终⽌测试
如:pytest pytest-demo.py --maxfail=1
等价于:pytest.main([’-s’,'pytest-demo.py’,’–maxfail=1’])
-n:pytest-xdist多线程运⾏(需要先安装pytest-xdist)sqlserver是mysql吗
如:pytest pytest-demo.py -n 2
等价于:pytest.main([’-s’,'pytest-demo.py’,’-n=2’])
在⽤例中使⽤time.sleep(2)加等待时间测试,发现多线程时间减少了。
–reruns NUM:重试运⾏测试⽤例(需要先安装pytest-rerunfailures)
如:pytest pytest-demo.py --reruns 2
则⼀旦有⽤例失败,则会重复执⾏两次,貌似这种不能⽤main运⾏。
由此能看出:pytest.main([’-s’,'pytest-demo.py模块名’]),main⽅法中是传⼊的⼀个list格式,list中可以传⼊多个参数。
五、pytest的ini配置⽂件
pytest.ini⽂件是pytest的主配置⽂件,可以改变pytest的默认⾏为。
1.pytest.ini的放置位置:⼀般放在项⽬⼯程的根⽬录(即当前项⽬的顶级⽂件夹下)
2.pytest.ini的作⽤:指定pytest的运⾏⽅式(在cmd输⼊pytest后,会读取pytest.ini中的配置信息,按指定的⽅式去运⾏)
常⽤设置选项如下:
[pytest]
addopts = -s …#可添加多个命令⾏参数,⽤空格分隔
testpaths = …/pytestproject#测试⽤例⽂件夹,可⾃⼰配置,…/pytestproject为上⼀层的pytestproject
⽂件夹。
python_files = test*.py#配置测试搜索的模块⽂件名称
python_classes = Test*#配置测试搜索的测试类名
python_funtions = test#配置测试搜索的测试函数名
⽰例如下:
[pytest]
addopts = -s --html=./report.html
testpaths = …/pytestproject
python_files = test*.py
python_classes = Test*
python_funtions = test*
matlab按坐标裁剪图片注意:
1.运⾏的时候⾃动读取配置⽂件,运⾏pytestproject下的所有test开头的模块⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。