• python自动化测试pytest框架


    pytest和unittest都是python中的测试框架,pytest相比unittest 更加的灵活,具体体现在 以下几点

    1.写测试方法时不用继承类

    2.前置后置放在一起

    2.1如果是全局共享的前置,就会写在一个固定的文件中,(比如一个系统中打开浏览器,访问系统网址就是全局共享的前置)这个文件命名为conftest,其他的各个模块设计到的前置放在用例文件中

    from selenium import webdriver
    import pytest
    from TestDatas import global_datas as gd
    
    @pytest.fixture
    def init_driver():
        driver = webdriver.Chrome()
        driver.maximize_window()
        driver.get(gd.login_url)
        yield driver
        driver.quit()
    

      

    2.2前置后置的定义语法,@pytest.fixture,前置后置用yield隔开,yield前的就是前置,yield后的就是后置,yield后面加的语句是返回值,如上面代码中的yield driver,driver就是返回值

    2.3用例中用到前置时,在用例前加上@pytest.mark.usefixtures

    @pytest.mark.usefixtures("前置的名称")
    

    2.4如果用例要用上返回值,就在函数参数上加上前置名称

        def test_login_success(self,init_driver):#init_driver是前置名称
            # 登录
            #LoginPage(self.driver).login_success(*lds.success)
            LoginPage(init_driver).login_success(*lds.success)
            #断言
            assert(HomePage(init_driver).get_element_exists())==True
    

    3.有给用例打标签的功能,运行时,通过标签进行分类运行

    3.1先建一个文件,定义好标签名,作者在此用的时ini文件来定义标签名,语法如下,markers=标签名

    [pytest]
    markers=
        demo_fail: just for demo show
        smoke
    

    3.2在需要打标签的测试函数以及类上,加上@pytest.mark.标签名

    @pytest.mark.标签名
    

      

    4运行用例,unittest需要加载用例,而pytest中是自动识别用例,pytest命令在哪个目录下执行,那就默认从哪个目录下开始搜索用例。

    5.pytest断言要比unittest灵活,assert 表达式即可。(erunittest当中,要assert*)

      

  • 相关阅读:
    DSP28335 烧写到RAM和FLASH方法
    脉冲提取
    基于飞秒光频梳的正弦相位调制干涉绝对距离测量方法研究 -张世华
    DSP28335 IO口寄存器
    DSP28335 使用技巧
    freertos、UCos这种实时操作系统和Linux、Windows这种系统的 本质区别
    stm32的定时器输入捕获 与输出比较
    五大常用算法--回溯
    Dijkstra算法
    字典树-Trie
  • 原文地址:https://www.cnblogs.com/hherbk/p/12686277.html
Copyright © 2020-2023  润新知