51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1553|回复: 4
打印 上一主题 下一主题

pytest执行用例时,conftest.py没有执行,无法截取图片?

[复制链接]
  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2022-4-1 13:17:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    pytest执行用例时,在conftest.py中写了失败截图的方法,因为之前框架用的pom模型,所以继承了basepage类。
    执行过程中,发现conftest这个文件没有执行,用例执行失败时,没有截图并添加到allure,不知道时什么原因。下附目录结构和代码

    1. conftest.py
    2. from util.logger import logger
    3. import pytest
    4. import allure
    5. import os
    6. from util.basepage import Basepage

    7. class Screenshot(Basepage):
    复制代码
    1. # 用例失败后自动截图
    2. @pytest.hookimpl(tryfirst=True, hookwrapper=True)
    3. def pytest_runtest_makereport(self, item, call):
    4.     """
    5.     获取用例执行结果的钩子函数
    6.     :param item:
    7.     :param call:
    8.     :return:
    9.     """
    10.     outcome = yield
    11.     report = outcome.get_result()
    12.     if report.when == "call" and report.failed:
    13.         mode = "a" if os.path.exists("failures") else "w"
    14.         with open("failures", mode)as f:
    15.             if "tmpir" in item.fixturenames:
    16.                 extra = " (%s)" % item.funcargs["tmpdir"]
    17.                 logger.info("------------success-----------")
    18.             else:
    19.                 extra = ""
    20.                 f.write(report.nodeid + extra + "\n")
    21.             with allure.step('添加失败截图...'):
    22.                 logger.info("-------------fail and screenshot----------")
    23.                 allure.attach(self.driver.get_screenshot_as_png(), "失败截图", allure.attachment_type.PNG)
    复制代码

    basepage.py

    class Basepage():

    1. def __init__(self, driver):
    2.     self.driver = driver

    3. def open_web(self, url):
    4.     self.driver.get(url)

    5. def page_refresh(self):
    6.     self.driver.refresh()

    7. def find_element(self, By, locator):
    8.     elf = self.driver.find_element(By, locator)
    9.     return elf

    10. def is_element_present(self, how, what):
    11.     """判断当前页面中是否含有某元素"""
    12.     try:
    13.         self.driver.find_element(by=how, value=what)
    14.     except NoSuchElementException as msg:
    15.         print(msg)
    16.         return False
    17.     return True

    18. def find_elements(self, By, locator):
    19.     els = self.driver.find_elements(By, locator)
    20.     return els

    21. def attach_screenshot_allure(self):
    22.     """[Allure报告中添加截图附件]
    23.     """
    24.     pic = self.driver.get_screenshot_as_png()
    25.     # allure.attach(pic, "screenshot", allure.attachment_type.PNG)
    26.     return pic
    复制代码

    test_demo.py
    import sys
    sys.path.extend(['C:\demo'])
    from util.logger import logger
    from util.allurehelper import AllureHelper
    import allure
    from selenium import webdriver
    from page_case.offline_order import offine_order_Page
    from util.basepage import Basepage
    import pytest
    driver = webdriver.Chrome()
    page = offine_order_Page(driver)
    option = webdriver.ChromeOptions()
    option.add_argument('disable-infobars')
    option.add_argument(r"user-data-dir=C:\python27\profile")
    [url=]@allure.feature("线下订单")[/url]
    class Testsuit:

    1. def setup_class(self):
    2.     # self.driver = webdriver.Chrome()
    3.     # self.driver.implicitly_wait(5)
    4.     # driver.implicitly_wait(5)
    5.     # page = offine_order_Page(driver)
    6.     page.pre_class()
    7.     page.enter_statistic()

    8. def setup_method(self):
    9.     page.pre_method()

    10. @allure.title("进入现金充值页面")
    11. @allure.severity("U")
    12. # @AllureHelper.attach_all_if_fail  # 用例执行失败后操作
    13. def test_enter_cash_recharge_page(self):
    14.     logger.info("-----进入现金充值页面------")
    15.     page.enter_statistic()
    16.     page.enter_cash_recharge_page()
    17.     assert page.judge_enter_cash_recharge_page() == "现金充值1"
    复制代码

    无报错,但是conftest文件没有执行,生成的allure报告中没有截图

    求分析原因和解决方法


    附件: 您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 10:15
  • 签到天数: 756 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2022-4-2 09:38:02 | 只看该作者
    等大神
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 1521 天

    连续签到: 5 天

    [LV.Master]测试大本营

    3#
    发表于 2022-4-2 11:53:59 | 只看该作者
    用自带的截图吧
    回复

    使用道具 举报

    该用户从未签到

    4#
    发表于 2022-4-6 17:42:32 | 只看该作者
    你的congfigtest少东西 少个driver 百度看下别人的完整代码
    回复

    使用道具 举报

    该用户从未签到

    5#
    发表于 2022-4-6 17:43:22 | 只看该作者
    conftest少driver
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 07:37 , Processed in 0.066777 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表