首页 > 其他分享 >Selenium38-报告中加入截图

Selenium38-报告中加入截图

时间:2022-12-29 22:25:52浏览次数:38  
标签:截图 name screenshot 加入 测试 Selenium38 html file

把截图加入测试结果报告文件里

目标:断言失败时,生成截图文件,并该截图文件出现在最后的测试结果报告(html格式)里
步骤:

  • 第一步:在case_action里修改截图后记录的日志
    • 日志级别必须是:error
    • 日志信息格式是:screenshot:截图文件路径
 def screenshot(self):
        ……
        file_name=os.path.join(file_path,f"{cur_class}_{cur_method}_{now_time}.png")
        self.driver.save_screenshot(file_name)
        # log.info(f"截图,文件名称是{file_name}")
        log.error(f"screenshot:{file_name}")
        return file_name

  • 第二步:替换测试套件里的HTMLTestRunner1.py为HTMLTestRunner2.py
    • HTMLTestRunner2.py在原来HTMLTestRunner基础上增加了截图内容
    • 导入HTMLTestRunner2模块里的HTMLTestRunner类
from utils.HTMLTestRunner2 import HTMLTestRunner
  • 替换为HTMLTestRunner2的类来运行测试套件
  • 故意修改代码或数据制造一个断言失败,运行查看测试结果报告


suite5=unittest.defaultTestLoader.discover("..\testcase\","testcase10*.py")

消息框截图问题

  • 消息框断言失败时,弹出框已经关闭,无法截取到弹出框里的信息。

消息框截图解决方案

  • 在判断消息框是否弹出的方法is_alert_present里,一旦消息框出现,就截图保存。
    • 第一步:用例父类里封装设计get_screenshot_file_name方法,获得截图文件名称。
    • 第二步:用例父类里改造is_alert_present方法,导入ImageGrab
from PIL import ImageGrab

  • 第三步:testcase包文件中,改造测试方法,每次检查消息框内容之前,都检查消息框出现,,并且在消息框文本断言里增加第三个参数msg,设置它的值固定包含“消息框”这个字符串。

  • 第四步:用例父类里增加一个方法,获得最新截图文件

  • 第五步:用例父类里改造screenshot方法,传入msg参数,判断如果msg里包含字符串“消息框”,就不用重新截图,使用现有截图里的最新截图即可。test_case.screenshot(msg)

  • 故意把预期提示信息写错,运行调试

  • 查看测试结果报告里的截图文件

如何保留每次测试运行后生成的测试结果报告文件

目标:不要覆盖上次的测试结果报告,文件名中连接系统时间
实现方式:Selenium测试结果_年月日_时分秒.html

  • 导入time模块里的strftime函数
from time import strftime
  • 调用strftime函数生成指定格式的系统日期时间数据
current_time=strftime("_%Y%m%d_%H%M%S")#_年月日_时分秒
  • 用当前日期时间数据作为html报告文件名称中的一部分
html_file_name=f"..\\report\\Selenium测试结果{current_time}.html"

测试套件优化代码

标签:截图,name,screenshot,加入,测试,Selenium38,html,file
From: https://www.cnblogs.com/sean-test/p/17013679.html

相关文章

  • 欢迎加入Apache Mina高性能通信框架研究邮件列表.
    一直到现在,我都没有发现国内讨论ApacheMina高性能通信框架研究的好地方。我也经常被网友问起一些有关ApacheMina高性能通信框架研究相关的问题,有些问题是很基本的网络编......
  • Selenium37-加入日志
    日志的概念日志是记录系统运行过程中各种重要信息的文件,在系统运行过程中由各进程创建并记录日志的作用记录系统的运行过程及异常信息调试定位错误数据分析运行日......
  • Selenium36-失败截图
    失败截图目标:断言失败时,截取当前被测系统界面图片,保存下来,以备后续分析问题时来使用。failureException变量:unittest框架里定义一个TestCase类里的固定名称的成员变量,代......
  • Docker粗截图笔记
            下载包docker.com                用户组,相对地址          搜索nigix镜......
  • 一文学会浏览器插件(加入光荣的进化吧)(一文晋级璀璨钻石)(本文不含知识诅咒)
    都2023年了,你还不会开发浏览器插件?注意:此教程针对chrome和chromium内核的浏览器制定的,且仅适用于前端开发者在chrome地址栏输入chrome://extensions/,就进入了谷歌浏览......
  • Mac使用辅助屏幕或者外界屏幕,截图软件推荐xnip
    1之前使用snip用来截图,如果是没有外界显示器,可以很好的截图,但是外接显示器后就不行了。 2使用xnip就很好的解决了这个问题,没有不能截图的问题了快捷键自己设置把,我设......
  • 华为还能存活吗?天才少年稚晖君为何加入华为?
    华为究竟是一间怎样的企业?从去年开始国外对于华为的制裁达到了顶峰,各种限制,各种禁止,各种负面评价,华为,究竟是一间什么样的企业?为什么这么被欧美针对?在国外的街坊,关于“华为印......
  • 跟着韩顺平老师学Linux 的一些笔记与截图
                                                        ......
  • jsp跳转前加入提示语句
    <scripttype="text/javascript"language="javascript">alert("管理员权限过低,请切换成高级管理员重新登录!...");window.document.location.href="index.jsp";</script>......
  • Ubuntu22.04 不能正常打开Flameshot 截图软件
    Ubuntu22.04安装Flameshot后通过命令 flameshotgui启动截图软件会打开下面的界面 而不是正常的Flameshot截图软件出现这个问题是Gnome的问题,详细说明在这里https:/......