传送门:花9.5k买的一整套unittest自动化测试,全程干货,详细讲解_哔哩哔哩_bilibili
一、框架详解
1.什么是框架?
开发大佬封装好的半成品,它已经对基础的代码进行了封装并提供了相应的接口,其他的开发者只需要去调用封装好的接口即可。
举例:Selenium框架。
driver = webdriver.Chrome()
driver.get()
2.unittest单元测试框架
单元测试框架:指的是在编程当中,针对程序的最小单元(函数,方法)进行正确的测试框架
3.自动化测试框架
leader, 针对软件封装的系统框架,这个代码框架就是自动化测试框架
作用:
1.提高测试效率,降低维护成本
2.提高测试准确性,增加代码的重用性和可靠性
单元测试框架是自动化测试框架的组成部分,主要用于管理和运行测试用例。
二、单元测试框架对比
python(80%):unittest 占30% , pytest
java(20%):junit, testng
unittest 和 pytest 的差异:
1.用例编写差异
unittest用例规则:(耦合)
(1).测试文件必须导包:import unittest
(2).测试类必须继承unittest.Testcase
(3).测试方法必须以test_开头
pytest用例规则:(非耦合)
1. 测试文件必须以test_开头或者_test结尾
2. 测试方法必须test_开发
3. 测试类名必须以Test开头
测试用例的夹具
unittest:
setUp/tearDown 在测试用例之前和之后执行
setUpClass/tearDownClass 在测试类之前和之后执行
setUpModule/tearDownModule 在测试模块之前和之后执行
pytest:
setup/teardown 在测试用例之前和之后执行
setup_class/teardown_class 在测试类之前和之后执行
setup_module/teardown_module 在测试模块之前和之后执行
还有其他的夹具:@pytest.fixtrue()
断言:
unittest:self.assertEqual() self.assertIn()
pytest:python自带的aseert
报告:
unittest:HtmlTestrunner.py
pytest:pytest-html.allure插件
失败重跑
unittest:没有
pytest:pytest-rerunfailures
参数化:
unittest:ddt
pytest:@pytest.mark.parametrize()