既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
fixture是pytest的闪光点,在pytest中fixture的功能很多,本节主要介绍用fixture的参数化功能。
- pytest.fixture()中传入的参数为list,用例执行时,遍历list中的值,每传入一次值,则相当于执行一次用例。
- ps:@pytest.fixture()装饰的函数中,传入了一个参数为request,试试改成其他的会出现什么情况。
- 这里的测试数据是直接存在list中的,能否存入json文件或者xml文件再进行读取转换为list呢?
fixture_param.png
测试数据和用例分离
- 参数化数据和用例怎么进行分离呢?可以采用conftest.py文件存储参数化数据和函数,模块下的用例执行时,会自动读取conftest.py文件中的数据
# conftest.py 记住 他叫conftest.py
import pytest
# 准备测试数据
is_leap = [4, 40, 400, 800, 1996, 2996]
is_not_leap = [1, 100, 500, 1000, 1999, 3000]
is_valueerror = [0, -4, -100, -400, -1996, -2000]
is_typeerror = ['-4', '4', '100', 'ins', '\*\*', '中文']
# params中需要传入list
@pytest.fixture(params=is\_leap)
def is\_leap\_y(request):
return request.param@pytest.fixture(params=is\_typeerror)
def is\_type\_error(request):
return request.param
- 测试用例文件:
# test\_para.py
import sys
sys.path.append('.')
import is_leap_year
import pytest
class TestPara():
def test\_is\_leap(self, is\_leap\_y):
assert is_leap_year.is_leap_year(is_leap_y) == True
def test\_is\_typeerror(self, is\_type\_error):
with pytest.raises(TypeError):
is_leap_year.is_leap_year(is_type_error)
- 测试结果:
PS E:\python\_interface\_test\requests\_practice> pytest -q .\test\_para.py............ [100%]12 passed in 0.03 seconds
pytest.mark.parametrize()方式进行参数化
- 采用标记函数参数化,传入单个参数,pytest.mark.parametrize(“参数名”,lists)
mark.png
- 采用标记函数传入多个参数,如pytest.mark.parametrize(“para1, para2”, [(p1_data_0, p2_data_0), (p1_data_1, p2_data_1),…]
- 测试用例中传入2个参数,year和期望结果,使输入数据与预期结果对应,构造了2组会失败的数据,在执行结果中,可以看到失败原因:
image.png
import sys
sys.path.append('.')
import is_leap_year
import pytest
class TestPara():
# 参数传入year中
@pytest.mark.parametrize('year, expected',
[(1, False),
(4, True),
(100, False),
(400, True),
(500, True)])
![img](https://img-blog.csdnimg.cn/img_convert/4aaaf62f7a5ea3a3c801cb892c7c785c.png)
![img](https://img-blog.csdnimg.cn/img_convert/a3abe3903ac8dddc374306e81a7cf812.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
5ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**