📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
咱今天整点硬货,聊聊Pytest,这玩意儿可是Python自动化测试的扛把子。写测试用例烦不烦?跑测试慢不慢?用Pytest,立马给你解决!它能帮你自动发现测试用例,还能用各种插件扩展功能,贼方便!
Pytest安装和基本使用
先装上Pytest,pip一下搞定:pipinstallpytest。
写测试用例也简单,新建个test_*.py文件,或者*_test.py也行,里面写上以test_开头的函数,这就是你的测试用例了。比如:
#test_example.py
deftest_addition():
assert1+1==2
deftest_subtraction():
assert5-3==2
跑测试更简单,在项目目录下直接敲pytest就完事儿。它会自动找到你的测试文件和用例,唰唰唰地运行,结果一目了然。
断言的艺术
Pytest用assert语句来判断测试是否通过。这玩意儿比unittest里的那些assertEqual、assertNotEqual直观多了。想咋断言就咋断言,想测啥就测啥,灵活得很!
deftest_complex_assertion():
a=[1,2,3]
assert1ina
assert4notina
assertlen(a)==3
参数化测试:一招搞定多个用例
测个函数,要测不同输入,咋办?写一堆类似的用例?别傻了,用参数化测试!一个用例搞定多个输入,省时省力!
importpytest
@pytest.mark.parametrize("input,expected",[(1,2),(2,3),(3,4)])
deftest_increment(input,expected):
assertinput+1==expected
这@pytest.mark.parametrize像不像魔法?一下子就给test_increment函数注入了三组测试数据!
Fixture:测试前的准备工作
测试前经常要搞些准备工作,比如连数据库,创建测试数据啥的。这些重复的代码咋办?用fixture!它就像个万能工具箱,帮你把测试前的准备工作都搞定。
@pytest.fixture
defmy_fixture():
#这里写你的准备工作,比如连接数据库
return"准备好了!"
deftest_using_fixture(my_fixture):
print(my_fixture)#输出"准备好了!"
#这里写你的测试逻辑
看见没,test_using_fixture函数里直接用my_fixture参数,就能拿到fixture返回的值了。
用插件扩展Pytest功能
Pytest好就好在插件多,啥功能都能扩展。比如pytest-html可以生成漂亮的HTML测试报告,pytest-cov可以统计测试覆盖率,贼好用!装插件也简单,pip一下就搞定,比如:pipinstallpytest-html。
异常处理测试
测代码的时候,有时得看看它会不会抛出预期的异常。Pytest让你优雅地处理异常,就像这样:
importpytest
defdivide(a,b):
ifb==0:
raiseZeroDivisionError("除数不能为0!")
returna/b
deftest_divide_by_zero():
withpytest.raises(ZeroDivisionError):
divide(10,0)
温馨提示
*文件名得用test_*.py或者*_test.py,函数名也得用test_开头,不然Pytest找不到你的测试用例。 *assert语句后面别加括号,它不是函数调用。 *写测试用例的时候,尽量一个用例只测一个功能点,别整太复杂。
Mock:模拟外部依赖
有些代码依赖外部服务,比如数据库、API啥的。测试的时候,你总不能真去连数据库吧?这时候Mock就派上用场了!它可以模拟外部依赖,让你在不影响真实数据的情况下进行测试。
fromunittest.mockimportMock
defget_data_from_api():
#模拟一个API调用
mock_api=Mock()
mock_api.get_data.return_value={"key":"value"}
returnmock_api.get_data()
deftest_get_data():
data=get_data_from_api()
assertdata["key"]=="value"
咱今天就聊到这儿。Pytest还有很多高级功能,自己去探索吧!用上Pytest,你的测试效率绝对嗖嗖地往上涨!别忘了多练习,熟能生巧嘛!
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】



1149

被折叠的 条评论
为什么被折叠?



