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

      

  • 相关阅读:
    ffplay 一些好玩的filter
    ffmpeg加文字水印并控制水印显示时间或显示周期
    学习笔记之redux
    vue的一些常识代码规范(小小总结)
    使用computed和watch实现子组件监听父组件的变量变化
    vuex实现状态管理的具体操作
    scss使用总结
    vue的key值引发渲染错位的血案
    mp-vue实现小程序回顶操作踩坑,wx.pageScrollTo使用无效填坑
    git 的一些指令 (遇到再补充)
  • 原文地址:https://www.cnblogs.com/hherbk/p/12686277.html
Copyright © 2011-2022 走看看