zoukankan      html  css  js  c++  java
  • python自动化测试框架的unittest与pytest前后置条件的区别

    前言:

    笔者先试有用过unittest的前后置条件和pytest的前后置条件,觉得pytest的前后置条件比unittest的要简洁、方便很多。不过在使用unittest的前后置条件时,已经觉得在和每个测试用例里面重复写一样的前后置代码相比,unittest的前后置同样也简洁、方便很多。

    unittest的前后置设置:分为类的前后置和每条测试用例的前后置

    类的前置条件:

    • setUpClass:主要用于启动浏览器驱动和设置浏览器窗口最大化,和加上打开的url,完成web自动化的前置
    • tearDownClass:主要用于关闭浏览器回话

    每个测试用例的前置条件:

    • setUp earDown:可根据自身的业务逻辑去编写
     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
  • 相关阅读:
    shell中十种实现自加的方法
    expect 安装使用
    wireshark常用过滤规则
    linux错误收集
    18.socket概述
    17.异常处理/模块与包
    15.常用模块【time/os/sys】
    14.继承与授权
    13.面向对象(多态/(性)/封装)
    11.高阶函数(匿名/*递归/函数式)对象编程基础
  • 原文地址:https://www.cnblogs.com/cuitang/p/11639961.html
Copyright © 2011-2022 走看看