命名规则
1)import pytest
测试文件名要以test_ 开头或 _test结尾
2)类名需要以Test开头(T),不能带有init方法
3)函数名以test_开头(t)
符合规则框架才能找到用例,一条用例代表一条函数
2.
pip install pytest
优点:在内存中回收用例内容
提高运行效率,不用再次调用方法
运行方式,pytest.main([])
pytest.main(["-s"]) 里面可以输入内容,list列表
pytest.main(["-s","-m run"]) -m remark的意思,运行run标签的用例
4.
跳过用例,
在方法上面加@pytest.mark.skip
运行 pytest.main([])
5.
@pytest.mark.run
@pytest.mark.modelName
pytest.main(["-s","-m modelName"])
6.
报告生成:pip install pytest-html,使用allure会更好些,也更简单
生成自带的,modeName的用例报告
pytest.main(["-s","-m modeName","--html=report.html"])
7.
关键函数,setup(),预置条件
重置环境,teardown()
pytest.mark.baidu
def setup_class(self) #类预置条件 ,需要将用例用类进行包裹
def teardown_class(self) #类重置环境 ,需要将用例用类进行包裹
setup和teardown操作
setup在测试函数或类之前执行,完成准备工作,例如:数据库连接、测试数据、打开文件等
teardown,在测试函数或类之后执行,完成收尾工作,例如:断开数据库、回收内存资源等
9.
传参
@pytest.mark.parametrize('username,password'),[('your','123456','用户名不正确'),('you','123456','ok')]
思路:
断言,assert
封装
数据与业务抽离,优化
数据写另外文件
python
if __name__ == '__main__':
pytest.main(['-sv','test_py.py'])