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*)

      

  • 相关阅读:
    ubuntu12.04下设置IPv6
    ubuntu下vncserver配置
    ubuntu12.04安装gerrit代码审核服务器
    Linux + Eclipse 配置交叉编译环境
    进程间通信基础
    ubuntu下搭建git服务器
    udev
    rpcgen的简单讲解及例子程序
    rpc简介、原理、实例-缘于difx
    windows下常用开源软件
  • 原文地址:https://www.cnblogs.com/hherbk/p/12686277.html
Copyright © 2011-2022 走看看