print(1)
assert 1==2
def test_two(self):
print(2)
assert 1==2
def test_a(self):
print(3)
assert 1==1
if name == ‘main’:
pytest.main([‘-x’,‘-s’])
============================= test session starts =============================
platform win32 – Python 3.8.10, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
rootdir: D:\Users\72036454\Desktop\pythonProject\Base
plugins: allure-pytest-2.9.45
collected 3 items
test_page.py 1
F
================================== FAILURES ===================================
-m 只运行带有装饰器配置的测试用例
用例中,第二和第三条用例加上了装饰器,装饰器最后一个单词分别为“slow” 和 “faster” ,-m 拿着两个单词去识别带这个装饰器的用例,识别到就执行,没有识别到的就不执行。
-m后面接的是表达式:[‘-s’,‘-m slow or faster’] 、[‘-s’,‘-m slow and faster’]、[‘-s’,‘-m not slow’] 这些表达式都支持。
import pytest
class TestClass():
def test_zne(self):
print(1)
assert 1==2
@pytest.mark.slow
def test_two(self):
print(2)
assert 1==2
@pytest.mark.faster
def test_a(self):
print(3)
assert 1==1
if name == ‘main’:
pytest.main([‘-s’,‘-m slow or faster’])
============================= test session starts =============================
platform win32 – Python 3.8.10, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
rootdir: D:\Users\72036454\Desktop\pythonProject\Base
plugins: allure-pytest-2.9.45
collected 3 items / 1 deselected / 2 selected
test_page.py 2
F3
.
================================== FAILURES ===================================
-k 通过表达式运行指定的测试用例
通过表达式匹配用例的函数名去执行用例,not test_zne 意思是不执行“test_zne”这条用例,所以就会执行第二第三条。同理 [‘-s’,‘-k test_zne’] 表示只执行第一条。
import pytest
class TestClass():
def test_zne(self):
print(1)
assert 1==2
@pytest.mark.slow
def test_two(self):
print(2)
assert 1==2
@pytest.mark.faster
def test_a(self):
print(3)
assert 1==1
if name == ‘main’:
pytest.main([‘-s’,‘-k not test_zne’])
============================= test session starts =============================
platform win32 – Python 3.8.10, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
rootdir: D:\Users\72036454\Desktop\pythonProject\Base
plugins: allure-pytest-2.9.45
collected 3 items / 1 deselected / 2 selected
test_page.py 2
F3
.
================================== FAILURES ===================================
-h 帮助
这才是重点,学会使用这个,剩余的都学会了
import pytest
class TestClass():
def test_zne(self):
print(1)
assert 1==2
@pytest.mark.slow
def test_two(self):
print(2)
assert 1==2
@pytest.mark.faster
def test_a(self):
print(3)
assert 1==1
if name == ‘main’:
pytest.main([‘-h’])
pytest的执行顺序:
- 默认情况下,pytest的执行顺序是自上往下的。
- 可以通过第三方插件
pytest-ordering
实现自定义用例执行顺序 - 官方文档: https://pytest-ordering.readthedocs.io/en/develop/
安装插件:
pip install pytest-ordering
pytest-ordering使用:
方式一
- 第一个执行:
@pytest.mark.first
- 第二个执行:
@pytest.mark.second
- 倒数第二个执行:
@pytest.mark.second_to_last
- 最后一个执行:
@pytest.mark.last
方式二
- 第一个执行:
@pytest.mark.run('first')
- 第二个执行:
@pytest.mark.run('second')
- 倒数第二个执行:
@pytest.mark.run('second_to_last')
- 最后一个执行:
@pytest.mark.run('last')
方式三
- 第一个执行:
@pytest.mark.run(order=1)
- 第二个执行:
@pytest.mark.run(order=2)
- 倒数第二个执行:
@pytest.mark.run(order=-2)
- 最后一个执行:
@pytest.mark.run(order=-1)
对于以上三张方法,经常使用的不多,第一个执行和最后一个执行比较常用。
最后: 可以在我的VX公众号:【自动化测试老司机】免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
解视频,并且后续会持续更新**
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-kiLgGnvI-1712694151641)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!