单元测试:通过读取csv/xml数据并且结合使用allure展示测试报告,验证开发中的add()和reduct()操作(在@allure.story分别实现相加减)
最前提是先需要安装pytest和pytest-html(生成html测试报告)
pip install pytest 和 pip install pytest-html一、命名规则
Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头的类和方法,
比unittest更加严谨
案例
结果为没有测试用例在执行
运行于测试方法的始末,即:运行一次测试函数会运行一次setup和teardown
运行于测试方法的始末,但是不管有多少测试函数都只执行一次setup_class和 teardown_class
二、Pytest生成自带的html测试报告
前提条件:需要下载pytest-html模块(python自带的生成测试报告模块)
pip install pytest-html
2.1 方式一
格式
pytest.main("模块.py")【运行指定模块下,运行所有test开头的类和测试用例】
pytest.main(["--html=./report.html","模块.py"])
代码:
pytest.main(["--html=../report1.html", "test_01.py"])2.2 方式二
格式
运行指定模块指定类指定用例,冒号分割,并生成测试报告
pytest.main([‘--html=./report.html’,‘模块.py::类::test_a_001'])
运行指定模块指定类指定用例,冒号分割,并生成测试报告
代码
pytest.main(["--html=../report1.html", "test_01.py::TestPy01::testPy001"])
2.3 方式三(无效)
格式
直接执行pytest.main() 【自动查找当前目录下,以test_开头的文件或者以_test结尾的py文件】(课堂练习_test)
pytest.main([‘--html=./report.html’])
代码:
pytest.main(["--html=../report1.html"])
2.4 方式四
Pytest调用语句
pytst.main(['-x','--html=./report.html','t12est000.py'])
-x:出现一条测试用例失败就退出测试 -v:丰富信息模式, 输出更详细的用例执行信息 -s:显示print内容 -q:简化结果信息,不会显示每个用例的文件名
扩充:跳过
使用@pytest.mark.skip()跳过该用例(函数)
@pytest.mark.skip()
def test001(self):
assert 2==2
三、Pytest的运行方式
. 点号,表示用例通过
F 表示失败 Failure
E 表示用例中存在异常 Error
思考:实际开发中是直接assert 1==2吗?
四、文件读取
4.1 读取csv文件
先创建文件,然后读取
4.2 读取xml文件
5:allureAllure是一款轻量级并且非常灵活的开源测试报告框架。 它支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。它简单易用,易于集成。
首先配置allure的环境
验证是否配置成功
其次安装allure
pip install allure-pytest
执行案例
···························



