python自动化测试框架的unittest与pytest前后置条件的区别
2024-09-04 06:43:02
前言:
笔者先试有用过unittest的前后置条件和pytest的前后置条件,觉得pytest的前后置条件比unittest的要简洁、方便很多。不过在使用unittest的前后置条件时,已经觉得在和每个测试用例里面重复写一样的前后置代码相比,unittest的前后置同样也简洁、方便很多。
unittest的前后置设置:分为类的前后置和每条测试用例的前后置
类的前置条件:
- setUpClass:主要用于启动浏览器驱动和设置浏览器窗口最大化,和加上打开的url,完成web自动化的前置
- tearDownClass:主要用于关闭浏览器回话
每个测试用例的前置条件:
- setUp\tearDown:可根据自身的业务逻辑去编写
1 #整个测试类的前置条件(主要用于启动浏览器驱动和设置浏览器窗口为最大化及打开url)
2 @classmethod
3 def setUpClass(cls):
4 # 启动浏览器驱动
5 cls.driver = webdriver.Chrome()
6 # 最大化显示窗口
7 cls.driver.maximize_window()
8 # 输入url打开
9 cls.driver.get(cd.login_url)
10 print("开始测试")
11
12 #每次执行用例的前置条件
13 def setUp(self):
14 self.lp = LoginPage(self.driver)
15
16 #每次执行用例的后置条件
17 def tearDown(self):
18 #每条用例执行后,刷新当前页面
19 self.driver.get(cd.login_url)
20
21 #整个测试类的后置条件(主要用于结束后,关闭浏览器回话)
22 @classmethod
23 def tearDownClass(cls):
24 cls.driver.quit()
25 print("测试结束")
pytest的前后置:fixture(主要讲fixture)
fixture的前后置写在conftest.py文件里面,conftest无需导入,放在测试类一层里面即可。在编写一个测试前后置方法,用yield来区分前后置。
@pytest.fixture(scope="function")
def start_app():
driver = init_cps()
# 真机确认访问权限
bl(driver).get_permission()
# 滑屏操作
BP(driver).cross_screen(times=3, loc=ll.now_start)
# yield 之前的是前置条件,yield后面的为后置条件
yield driver
最新文章
- Android动画效果之Property Animation进阶(属性动画)
- c语言-交换两个整数
- PHPwind高级伪静态规则及方法
- [LoadRunner]录制启动时报“The JVM could not be started……”错误解决方案
- c# windows service
- jquery动态样式操作
- 怎样在Android SDK 下查看应用程序输出日志的方法
- 解决在管理wordpress时权限不足的问题
- Android list刷新后仍然定位到原来的位置,解决。
- tty、pty、pts等(小记)
- c语言:蜗牛的爬行。
- C++小知识之sprintf用法
- 高仿快车100--实战RadioGroup和RadioButton应用
- tensorflow-RNN和LSTM
- HDU - 4625 JZPTREE(第二类斯特林数+树DP)
- debian9 开启rc.local服务
- DTO转DOMAIN动态转换类。
- 560. Subarray Sum Equals K
- 02-03:springboot 整合listener
- QT中 使用c++调用python