1.用例编写规则
unittest:提供了testcase测试用例、testsuite测试套件、testfixture测试固件或夹具、testloader测试加载器、testrunner测试运行器。必须遵守以下规则:
(1)测试文件必须先导入import unittest
(2)测试类必须继承unittest.TestCase
(3)测试方法必须以test开头
pytest:它是python的第三方测试框架,基于unittest的扩展框架,必须遵守以下规则:
(1)测试文件名必须以test_开头或_test结尾
(2)测试类命令必须以Test开头
(3)测试方法必须以test开头
2.用例的前置和后置
unittest:
setUp/tearDown 在每个用例之前或之后运行一次
打开浏览器,加载网页/关闭网页
setUpClass和tearDownClass 在每个类运行之前或之后运行一次
创建数据库连接,创建日志对象/关闭数据库连接,销毁日志对象
setUpModule和tearDownModule 在每个门模块之前和之后运行一次
pytest:
方法级:
setup_mmothod/teardown_mothod 在方法之前和之后
setup/teardown
函数级:
setup_function/teardown_function 在函数之前和之后
类级:
setup_class/teardown_class 在类之前和之后
模块级:
setup_module/teardown_module 在模块之前和之后
还有:还可以在函数之前加@pytest.fixture()装饰器
3.断言
unittest:assertTure、assertEqual、assertln
pyutest:assert
4.报告
unittest:htmltestrunner
pytest:插件:pytest-HTML,allure
5.失败重跑
unittest:没有
pytest:pytest-rerunfailures插件
6.数据驱动
unittest:ddt
pytest:@pytest.mark.parametrize装饰器
7.用例分类执行
unittest:默认执行所有,也可以通过testsuite来执行部分用例,或者-k参数
pytest:@pytest.mark