• pytest


    pytest可以生成多种样式的结果
    1、生成JunitXML格式测试报告:命令: --junitxml=path(相对路径)
    2、生成result log 格式的测试报告: 命令:--resultlog=reportlog.txt
    3、生成html格式的测试报告:命令:--html=report est_one_func.html

    fixtures
    1、把一个函数定义为fixture在声明前加上@pytest.fixture
    使用时用pytest.mark.usefixtures

    2、用yield关键词区分前置和后置

    3、创建公共文件conftest.py实现前置和后置,被pytest自动识别(名字固定,更改无法被pytest识别)

    4、返回值在yield后面,接收返回值直接用函数名称接收
    1.思想:fixture的思想是测试用例的环境的准备和清理工作。类似于unittest里面的Setup和tearDown函数功能类似,unittest中的Setup是将执行测试用例前的准备放到此函数内,执行玩测试用例后的操作放在tearDown函数中。
    2.用途:做web自动化测试的时候都需要登录网站和退出每一个测试用例都需要则可以利用fixture可以制作一次。
    3.使用方法:
    (1)在框架中新建一个conftest.py文件,在该文件中定义fixture.这样在运行测试用例的时候不需要去导入文件,就会自动查找conftest.py文件中对应的fixture
    (2)定义fixture:
      在函数声明前加上@pytest.fixture。表示次函数为测试环境的准备和清理工作
      通过yield来标识为环境清理的工作。yield后面的代码为环境清理的工作。
      fixture装饰的函数可以有返回值:yield 返回值
    (3)可以通过scope参数设置fixture的不同作用域。
    scope='function':默认是函数级别的,每个test都运行。
    scope='class':作用域是类(class)每个class中的test函数都运行
    scope='module':作用域是模块,模块内的test都运行且运行一次
    scope='session':每个session运行一次
    断言
    assert + 表达式==ture

    conftest.py配置

    conftest.py配置脚本名称是固定的,不能改名称
    conftest.py与运行的用例要在同一个pakage下,并且有__init__.py文件
    不需要import导入 conftest.py,pytest用例会自动查找
    安装pytest生成报告插件
    pip install pytest-html

    重运行
    安装:pip install pytest-rerunfailures
    命令:pytest -reruns 重试次数 --reruns -delay 次数直接的延时设置(单位:秒)

    参数化(与unittest不兼容)
    @pytest.mark.parametrize(“参数名”,列表数据) 类似于unittest 的 ddt装饰器

    打标记

    在用例或者模块@pytest.mark.名字
    运行:控制台 pytest -m 名字

    pytest--收集用例规则
    1、默认从当前目录中搜集测试用例,即在哪个目录运行pytest命令,则从哪个目录中搜索
    2、搜索规则
    ①符合命名规则test_*py或者*_test.py的文件
    ②以test_开头的函数名
    ③以Test开头的测试类(没有_init_函数)当中,以test_开头的函数

  • 相关阅读:
    测试
    Python 学习笔记【15】文件操作
    Python 学习笔记【14】集合
    Python 学习笔记【13】练习:三级菜单
    Python 学习笔记【12】字典
    Python 学习笔记【11】字符串操作
    Python 学习笔记【10】练习:购物车程序
    Python 学习笔记【09】列表、元组
    Python 学习笔记【08】数据类型、数据运算、进制转换
    Python 学习笔记【07】PEP 8 中英对照
  • 原文地址:https://www.cnblogs.com/xifengqidama/p/10117641.html
Copyright © 2020-2023  润新知