pytest中conftest的用法以及钩子基本使用

这篇具有很好参考价值的文章主要介绍了pytest中conftest的用法以及钩子基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、conftest是什么?

conftest是pytest进阶中的高级应用,最近正好用到这一块儿,研究之后,向大家分享该高级应用。

二、使用步骤

1.conftest代码块


以全局性使用driver为主,只启动一次浏览器:


@pytest.fixture(scope='session')  # 以此实现多个用例,只启动一次浏览器
def browser():
    global driver
    driver = None  # 需要给一个初始化的值
    '''定义全局driver参数'''
    browser_name = 'chrome'
    if driver is None:
        if browser_name == 'chrome':
            # driver = webdriver.Chrome(executable_path="../driver/chromedriver.exe")
            driver = webdriver.Chrome()
            driver.maximize_window()
        elif browser_name == 'firefox':
            driver = webdriver.Firefox()
        elif browser_name == 'ie':
            driver = webdriver.Ie()
        else:
            log.error('传入的浏览器名称有误')
    driver.implicitly_wait(10)
    log.debug(f"正在启动浏览器:{browser_name}")
    yield driver
    log.debug("正在关闭浏览器")
    time.sleep(5)
    driver.close()
    return driver

2.使用方法


在test_hao123中进行使用:

@allure.step(title="测试一个元素多种定位方式")
@allure.severity(allure.severity_level.BLOCKER)#CRITICAL,NORMAL,MINOR,TRIVIAL
@allure.issue("https://www.baidu.com")
def test_2(self, browser):
    allure.attach("描述","测试步骤002的描述...")
    self.driver = browser

    self.open_url("https://www.hao123.com/")
    self.driver.find_element(By.XPATH,'//*[@id="search"]/form/div[2]/input').send_keys("conftest")
    sleep(5)
    # self.hao123.run_test();

注意:

test_hao123方法中的传参browser要跟conftest中的方法保持一致,无需做其他配置,前提conftest所在的目录要有__init__文件
 文章来源地址https://www.toymoban.com/news/detail-603711.html

pytest在conftest文件中钩子的使用方法

@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_runtest_makereport(item, call):
    # 获取钩子方法的调用结果
    out = yield
    # print('用例执行结果', out)

    # 3. 从钩子方法的调用结果中获取测试报告
    report = out.get_result()
    if report.when == "call":
        print('测试报告:%s' % report)
        print('步骤:%s' % report.when)
        print('nodeid:%s' % report.nodeid)
        print('description:%s' % str(item.function.__doc__))
        print(('运行结果: %s' % report.outcome))
        log.info('nodeid:%s' % report.nodeid)
        log.info('运行结果: %s' % report.outcome)

到了这里,关于pytest中conftest的用法以及钩子基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试中如何判断测试是否通过?详解 Pytest 测试框架的断言用法

    目录 前言: 01 — Python 原生的 assert 02 — Pytest 的 assert 优点 03 — Pytest 断言的用法 4.1 断言字符串 4.2 断言函数或者接口返回值 4.3 断言集合类型 04 — Pytest 断言 Excepiton 05 — 为断言添加自定义功能 06 — 禁止 Pytest 的 assert 特性 07 — 总结 在自动化测试中,判断测试是否通过是

    2024年02月16日
    浏览(57)
  • EMQX(MQTT)----基本用法以及使用Python程序进行模拟流程

            EMQX是大规模分布式物联网MQTT消息服务器,除了发送接送的流量不能太大(不能用于生产!),在学习MQTT方面上有很大的优势的!         在使用该协议时,主要需要弄懂的一个知识点就是“发布者”和“订阅者”的关系,在最简单的模型中,一般会含有以上两

    2023年04月24日
    浏览(79)
  • 超详细的 pytest 钩子函数 之初始钩子和引导钩子来啦

    前几篇文章介绍了 pytest 点的基本使用,学完前面几篇的内容基本上就可以满足工作中编写用例和进行自动化测试的需求。从这篇文章开始会陆续给大家介绍 pytest 中的钩子函数,插件开发等等。 仔细去看过 pytest 文档的小伙伴,应该都有发现 pytest 这个框架提供了非常多的钩

    2024年01月20日
    浏览(72)
  • 测试框架pytest教程(6)钩子函数hook开发pytest插件

    pytest hook 函数也叫钩子函数,pytest 提供了大量的钩子函数,可以在用例的不同生命周期自动调用。 比如,在测试用例收集阶段,可利用 hook 函数修改测试用例名称的编码。 pytest的hook是基于Python的插件系统实现的,使用特定的命名规范和装饰器来定义钩子函数。你可以在py

    2024年02月12日
    浏览(36)
  • React钩子函数之useDeferredValue的基本使用

    在React中,使用钩子函数可以方便地管理组件的状态和副作用。useDeferredValue是React 18中新引入的钩子函数之一,它可以帮助我们优化渲染性能,让组件更加流畅。 useDeferredValue的作用是将一个值延迟更新。这个值可以是状态、属性或其他变量。当这个值发生改变时,React并不会

    2024年02月10日
    浏览(36)
  • React钩子函数之useRef的基本使用

    React钩子函数中的useRef是一个非常有用的工具,它可以用来获取DOM元素或者保存一些变量。在这篇文章中,我们将会讨论useRef的基本使用。 首先,我们需要知道useRef是如何工作的。它返回一个可变的ref对象,这个对象可以在组件的整个生命周期中被访问。当我们需要获取DOM元

    2024年02月10日
    浏览(33)
  • python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)

    经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路。 我们在百度搜索 天气查询 ,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接口测试用例脚本。 针对某个功能做接口测试,首先我们需

    2024年02月04日
    浏览(52)
  • 【Python】WebUI自动化—Selenium的下载和安装、基本用法、项目实战(16)

    Selenium 是一个用于测试 Web 应用程序 的自动化测试工具,它直接运行在 浏览器 中,实现了对浏览器的自动化操作,它支持所有主流的浏览器,包括 IE,Firefox,Safari,Chrome 等。 -支持所有主流平台(如, Windows、Linux、IOS、Android、Edge、Opera 等) 实现了诸多 自动化功能 ,比如

    2024年02月08日
    浏览(45)
  • 42了解自动化运维工具 Saltstack 的基本用法,包括配置管理、批量执行

    Saltstack 是一款流行的自动化运维工具,可以用于配置管理、批量执行等任务。下面是 Saltstack 的基本用法教程。 安装 Saltstack 首先需要在控制节点上安装 Saltstack。具体安装方法可以参考 Saltstack 的官方文档。在安装过程中需要选择一个角色,通常有 master 和 minion 两个选项,

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包