zoukankan      html  css  js  c++  java
  • pytest基本用法速查手册

    1.参数化传参

    @pytest.mark.parametrize(key_list_string,value_list)。value_list为列表,列表中有多少组数据,这个函数就会遍历数据执行多少次。例如:@pytest.mark.parametrize('task1,task2',[[1,2]]),支持id标识。例如:

    2.fixture

    fuxture:即测试用例执行的环境准备和清理。

    定义fixture:在函数申明前加上@pytest.fixture,表示此函数为测试环境数据的准备和清理。

    fixture作用域:fixture的参数中,有scope作用域:

    function:每个test都运行,默认就是function的scope,对应unittest中的setup和teardown;

    class:每个class的所有test只运行一次,相当于unittest中的setUpClass和tearDownClass;

    module:每个module的所有test只运行一次

    session:每个session只运行一次

    用yield关键字来区分准备工作和清理工作的分界线。

    fixture中设置返回值:yield 返回值

    实例如下:

     调用fixture:测试用例/类中调用fixture的三种方式:

    1.在测试用例中直接调用它,将fixture的函数名字作为测试用例的参数,如果fixture有返回值,那么测试用例中的fixture的函数名字就接收返回值。

     2.用fixture装饰器调用fixture:在测试用例/类前面加上@pytest.mark.usefixture("函数名"),如下所示:

     3.用autos调用fixture,不推荐使用。

    3.conftest.py

    多个测试类或用例都会使用到的fixture,我们一般会提取出来放在conftest.py(和testcase在同级目录下)中,pytest框架在执行用例时会主动找到这个文件(不需要导入),并根据里面函数设置的fixture的作用域(scope)来执行。

    1.conftest.py文件名字是固定的,不可以做任何修改

    2.文件和用例文件在同一个目录下,那么conftest.py作用于整个目录

    3.conftest.py文件所在目录必须存在__init__.py文件

    4.conftest.py文件不能被其他文件导入

    5.所有同目录测试文件运行前都会执行conftest.py文件

    6.contest.py文件中的函数前需要加上@pytest.fixture

    fixture函数的搜索顺序是,先搜索当前模块,然后搜索conftest.py。conftest.py可以被pytest视作一个fixture仓库。

    4.运行命令

    pytest提供了多种选择来执行测试用例,可以指定某个用例,某个模块下用例来运行等等

    pytest中同样提供了main() 函数来执行测试用例。

    5.生成allure测试报告

     1.在执行文件中指定生成allure测试报告路径:

     2.执行用例完成

    3.在命令行执行命令: allure serve 生成的allure测试报告路径,如下,执行命令完毕会自动通过浏览器打开allure报告

  • 相关阅读:
    vc++ 错误 CreateWindow
    设置某个页面的编码方式
    部署Struts2框架
    oracle之约束
    java web开发(三)、Ajax技术
    vs2008 安装出错 Microsoft Visual Studio Web 组件安装失败
    java web开发(二)、Servlet技术
    WLS Zip Distribution for Oracle WebLogic Server 12.1.1.0安装
    MyEclipse配置Weblogic服务器
    js 未结束的字符串常量错误解决方法
  • 原文地址:https://www.cnblogs.com/123blog/p/12653346.html
Copyright © 2011-2022 走看看