Pytest
夜阑卧听风吹雨,铁马冰河入梦来
用最孤独的时光塑造出最好的自己,才能笑着说起那些云淡风轻的过去~
展开
-
pytest 使用总结
1.1.测试用例的识别规则1)pytest框架的默认识别规则测试文件:必须为test_*.py或*_test.py 测试类:必须为Test* 测试方法或函数:必须为test_*2)修改pytest的默认执行规则在测试框架的根目录下新建pytest.ini文件,加入新的用例识别规则。假如我们要定义新的pytest用例识别的规则如下:测试文件:必须为test_*.py或weeds_*.py 测试类:必须为Test*或Weeds* 测试方法或函数:必须为test_*或weeds_*转载 2020-09-11 15:32:26 · 783 阅读 · 0 评论 -
Pytest框架学习1--基本规则
学习内容来自 对https://www.cnblogs.com/yoyoketang 自动化大师悠悠的总结1.pytest运行规则:**查找当前目录及其子目录下以test_*.py或*_test.py文件,找到文件后,在文件中找到以test开头函数并执行。**2.命令行下执行pytest或py.test或python -m pytest3.通过pytest -q test_a.py 可...原创 2019-07-23 13:46:57 · 397 阅读 · 0 评论 -
Pytest框架学习2--setup与teardown
用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(setup_function/teardown_function)只对函数用例生效(不在类中) 类级(setup_class/teardown_class)只在类中前后运行一次(在类中) 方法级(setup_method/teardown_method...原创 2019-07-23 17:18:52 · 308 阅读 · 0 评论 -
Pytest框架学习3--fixture实现setup
fixture是一个装饰器函数,可以实现例如一个py文件中有用例1需要执行预置条件,而用例二不需要执行预置条件的情况用法#!usr/bin/python# -*- coding: utf-8 -*-import pytest@pytest.fixture() 预置条件函数前加装饰器def login(): print "\n登录代码"def test_l...原创 2019-07-23 17:55:32 · 1116 阅读 · 0 评论 -
Pytest框架学习4-fixture的scope参数
fixture作用范围1.参数为scope=“function”或默认不填写#!usr/bin/python# -*- coding: utf-8 -*-conftest.pyimport pytest@pytest.fixture(scope="function")def login(): print "\n登录代码"login2.py...原创 2019-07-23 19:16:38 · 1270 阅读 · 2 评论 -
Pytest框架学习5-fixture使用yield实现teardown
1. fixture里面的teardown用yield来唤醒teardown的执行 2.如果某个用例执行失败,module级别的fixture中,yield后的teardown操作仍然继续执行 3.如果在setup就异常了,那么是不会去执行yield后面的teardown内容了#!usr/bin/python# -*- coding: utf-8 -*-...原创 2019-07-24 15:35:57 · 847 阅读 · 0 评论 -
Pytest框架学习6--html报告生成与失败重试
生成报告借助pytest-html 库,安装pip install pytest-html 执行测试时,使用 pytest --html=xxx.html,在当前目录下生成xxx.html pytest --html=./report/report.html生成的报告将存放在当前目录report路径下失败重试失败重跑需要依赖pytest-rerunfailures插件 用例失败再重跑添...原创 2019-09-11 13:46:14 · 807 阅读 · 0 评论 -
Pytest框架学习7--实现测试用例参数化
实现测试用例参数化使用@pytest.mark.parametrize装饰器#!usr/bin/python# -*- coding: utf-8 -*-import pytest@pytest.mark.parametrize("x,y",[(1,2),(3,3),(4,4)])#第一个字符串参数是测试函数的参数,用,隔开,后边是一个列表,列表中每一个元组代表一个参数组合...原创 2019-09-11 14:37:40 · 660 阅读 · 0 评论 -
Pytest框架学习8--命令行传参
如果有测试用例需要命令行进行传参运行,如下用例:import pytestdef test_answer(cmopt): if cmopt == "type1": print("first") elif cmopt == "type2": print("second") assert 0 # to see what was print...原创 2019-09-17 14:00:08 · 684 阅读 · 0 评论 -
Pytest框架学习9--skip跳过用例
使用skip跳过用例 import pytest@pytest.mark.skip(reason="不为啥就是想跳过")def test_skip(): print "skip跳过这个用例"执行结果:E:\PycharmProject\TestLibrary1\Pytttest>pytest -q test_skip.pys ...原创 2019-09-17 15:06:12 · 890 阅读 · 0 评论 -
Pytest框架学习10--setup预置条件函数传参
@pytest.fixture装饰器用来做测试用例的预置条件,相当于unittest中的setup函数,如果要在预置条件中传参数,该如何进行呢?1.传参就用默认的request参数2.接收参数用request.param#!usr/bin/python# -*- coding: utf-8 -*-import pytest@pytest.fixture(scope="modul...原创 2019-09-25 10:49:00 · 5124 阅读 · 0 评论 -
Pytest框架学习11--mark标记功能
如果只想运行某些测试用例,可以在使用mark功能进行标记 test_11.py# !usr/bin/python# -*- coding: utf-8 -*-import pytestdef test1(): print(1111111111)@pytest.mark.webtestdef test2(): print(2222222222)if __...原创 2019-09-29 10:13:12 · 1197 阅读 · 0 评论 -
Pytest框架学习12--xfail使用
xfail应用于类似这样的场景:用例b的运行依赖于用例a的成功,如一个用例是修改头像,一个是登录,需要等登录成功后执行第二个用例才能成功,如果登录失败,就直接跳过可以使用xfail,根据登录用例的返回值判断是否登录成功,失败调用’pytest.xfail("登录不成功, 标记为xfail")#!usr/bin/python# -*- coding: utf-8 -*-import p...原创 2019-09-29 10:39:19 · 539 阅读 · 0 评论 -
Pytest框架学习13--前置的fixture参数autotest
如果一个测试用例集中多个用例都需要调用前置fixture方法,除了将每个测试用例方法中传递前置fixture引用外有没有不用每个都传的方法呢?那就是autotest参数,设置为True,表示自动运行,每个测试方法都会先运行fixture调用fixture三种方法 1.函数或类里面方法直接传fixture的函数参数名称 2.使用装饰器@pytest.mark.usefixtu...原创 2019-09-29 10:54:59 · 544 阅读 · 0 评论 -
Pytest框架学习14--pytest.ini
pytest.ini文件是pytest的主配置文件,可以改变pytest的默认行为。使用pytest --help指令可以查看pytest.ini的设置选项[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found: markers (linelist): markers for test ...原创 2019-09-29 15:44:53 · 2190 阅读 · 0 评论 -
Pytest框架学习15--doctest
doctest(文档测试)是python里面自带的一个模块,是单元测试的一种doctest测试用例可以放在两个地方函数或者方法下的注释里面 模块的开头 使用过程中发现很多坑 '''fuction: 两个数相加>>> add(4, 8)12>>> add(9, 5)13'''def add(a, b): ''' f...原创 2019-09-30 10:49:16 · 565 阅读 · 0 评论 -
Pytest框架学习16-fixture详解
fixture使用时将函数名称传入,可以有返回值,没有return时返回None,一个函数可以有多个fixture修饰#!usr/bin/python# -*- coding: utf-8 -*-import pytest@pytest.fixture(scope="function")def login(): print("登录。。。。。。。。。。。") retur...原创 2019-10-08 11:04:11 · 778 阅读 · 0 评论 -
Pytest框架学习17--运行上次失败用例--if 和--ff
--lf, --last-failed 只重新运行上次运行失败的用例(或如果没有失败的话会全部跑) --ff, --failed-first 运行所有测试,但首先运行上次运行失败的测试(这可能会重新测试,从而导致重复的fixture setup/teardown)#!usr/bin/python# -*- coding: utf-8 -*-import pytes...原创 2019-10-08 11:15:33 · 711 阅读 · 0 评论 -
Pytest框架学习18--pytest-xdist分布式执行
pip install pytest-xdist 多cpu执行pytest -n 3,加-n参数,后边写计算机核数 xdistk可以配合pytest-html执行,生成报告 pytest -n 3 --html=report.html原创 2019-10-08 13:54:45 · 1290 阅读 · 0 评论