zoukankan      html  css  js  c++  java
  • 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*)

      

  • 相关阅读:
    项目管理--项目干系人与组织
    项目管理--项目生命周期概述
    项目管理--简介
    算法学习之冒泡排序,6174问题
    算法学习之基础题
    PHP5.3.8连接Sql Server SQLSRV30
    解决:安装SQl 2008为SQL Server代理服务提供的凭据无效
    Sublime Text2不自动打开最近的项目
    unix网络编程之简介
    算法学习之函数
  • 原文地址:https://www.cnblogs.com/hherbk/p/12686277.html
Copyright © 2011-2022 走看看