news 2026/9/15 22:38:47

自动化测试-关键数据记录(日志+截图+页面源码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动化测试-关键数据记录(日志+截图+页面源码)

文章目录

  • 1. 自动化测试中的关键数据?
  • 2. 配置日志
  • 3. 截图
  • 4. pagesource源码记录
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

1. 自动化测试中的关键数据?

关键数据:
1)代码的执行日志
2)代码执行的截图
3)page source(页面源代码)

记录关键数据的作用?

  • 日志
    记录代码的执行记录,方便复现场景
    可以作为bug依据
  • 截图
    断言失败或成功截图
    异常截图达到丰富报告的作用
    可以作为bug依据
  • page source
    协助排查报错时元素当时是否存在页面上

java使用的依赖:

<!-- pom.xml 日志配置依赖 --><!-- slf4j --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.0-alpha6</version></dependency><!-- logback --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.3.0-alpha12</version></dependency>

2. 配置日志

配置位置:java项目下,test包->resources包下->logback.xml文件中配置

logback.xml文件配置

<?xml version="1.0" encoding="UTF-8"?><configuration><!-- name指定<appender>的名称 class指定<appender>的全限定名 ConsoleAppender的作用是将日志输出到控制台--><appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender"><encoder><!--输出时间格式--><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}.%M\(%line\) -- %msg%n</pattern></encoder></appender><!-- 设置测试包为DEBUG级别 --><!--修改name路径-测试包路径和level级别-显示日志级别 如下:记录com.example.first_demo包下DEBUG上的日志 --><loggername="com.example.first_demo"level="DEBUG"/><loggername="com"level="WARN"/><loggername="example"level="WARN"/><loggername="org"level="WARN"/><rootlevel="INFO"><appender-refref="STDOUT"/></root></configuration>

【注】
1)日志级别:
Log4j2:
ALL < TRACE <DEBUG < INFO < WARN < ERROR< FATAL < OFF
当配置某个级别时,只会输出该级别及更高优先级的日志。例如设置为 INFO,则 DEBUG、TRACE 不会输出,输出WARN,ERROR级别日志

各级别含义与场景 ALL:开启所有日志(含自定义级别),调试阶段可用。 TRACE:最细粒度的跟踪信息,如方法调用轨迹,通常不在生产环境启用。 DEBUG:调试信息,开发阶段用于输出变量值、流程状态。 INFO:关键运行信息,生产环境常用,如启动参数、业务结果。 WARN:潜在问题提示,不影响运行但需关注。 ERROR:错误信息,功能受影响但系统可继续运行。 FATAL(Log4j2特有):严重错误,通常导致系统退出。 OFF:关闭所有日志输出。

2)使用日志是需要初始化

publicclassScreenTest{// ✅ 正确方式:使用static final并立即初始化privatestaticfinalLoggerlogger=LoggerFactory.getLogger(ScreenTest.class);// 或者如果是实例loggerprivatefinalLoggerlogger=LoggerFactory.getLogger(ScreenTest.class);}

3)框架不能混用:使用slf4j包

// ❌ 错误:混合使用importjava.util.logging.Logger;// JULimportorg.slf4j.Logger;// SLF4J

4)一般使用习惯 - 脚本/代码在配置日志级别使用:
4.1 debug记录步骤信息
4.2 info记录关键信息,比如断言等

代码中使用日志:

publicstaticvoidLoggerlogger;publicstaticvoidloggerTest(){//LoggerFactory.getLogger(当前测试类作为参数传入);logger=LoggerFactory.getLogger(ActionTest.class);//debug记录一下关键步骤logger.debug("debug:提示");//使用info打印一些断言信息logger.info("查找某元素结果为:。。");}

3. 截图

1)截图方法:getScreenshotAs(OutputType.FILE)
2)记录关键页面
2.1 断言页面
2.2 重要的业务场景页面
2.3 容易出错的页面

第一种截图方式:截取当前页面

//当前页面截图FilescrFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(scrFile,newFile("./image.png"));
/** * 截图测试 */@TestpublicvoidscreenTest()throwsIOException{//1.打开百度页面webDriver.get("https://www.baidu.com/");//2.当前页面截图FilescrFile=((TakesScreenshot)webDriver).getScreenshotAs(OutputType.FILE);//保存文件到当前目录FileUtils.copyFile(scrFile,newFile("./img.png"));}

第二种截图方式:根据某个元素所在界面截图
如下:在搜索结果界面找到想要截图的结果,根据查找元素,该元素再调用截图方法;

// 截图的第二种方式,元素所在页面截图WebElementsearch_ele=driver.findElement(By.id("search"));Fileele_res=search_ele.getScreenshotAs(OutputType.FILE);FileUtils.copyFile(ele_res,newFile("./ele_image.png"));
/** * 根据某个元素页面截图 * 输入框输入测试,跳转页面,找到搜索结果第一个元素,截图取第一条文本 */@TestpublicvoidscreenEleTest()throwsIOException{//1.到页面webDriver.get("https://sogou.com/");//2.找到输入框,输入测试,点击按钮,跳转页面WebElementelement_input=webDriver.findElement(By.xpath("//*[@class='sec-input']"));element_input.sendKeys("测试");webDriver.findElement(By.xpath("//*[@class='enter-input']")).click();//3.查找到搜索结果时截图WebElementres_element=webDriver.findElement(By.xpath("//*[@class='reactResult']"));//当前结果元素位置获取截图,返回值是File对象Fileres_ele=res_element.getScreenshotAs(OutputType.FILE);FileUtils.copyFile(res_ele,newFile("./img2.png"));}

4. pagesource源码记录

1)获取页面源码方法:使用getPageSource()方法获取页面源码
2)在调试过程中,如果有找不到元素的错误可以保存当时的page_source调试代码
【注】获取源码可初步判断当时页面是否存在定位的元素,如果有,测试其他问题;

第一种页面源码记录

// 在报错行前面添加保存page_source的操作//打印pagesourceStringpageSource=driver.getPageSource();logger.debug(pageSource);

第二种方式:记录转化为文件 =》推荐使用
【注】
java源码格式化快捷键:ctrl+alt+L

// 在报错行前面添加保存page_source的操作StringpageSource=driver.getPageSource();//记录为文件FileWriterfileWriter=newFileWriter("./files/page_source.text");fileWriter.write(pageSource);

页面源码获取示例代码:
【注】需要提前初始化logger, 不然报空指针异常找不到
private static final Logger logger = LoggerFactory.getLogger(ScreenTest.class);

privatestaticfinalLoggerlogger=LoggerFactory.getLogger(ScreenTest.class);/** * 页面源码获取:pageSource() */@TestpublicvoidpageSourceTest()throwsIOException{//1.到页面webDriver.get("https://sogou.com/");//2.1打印StringpageSource=webDriver.getPageSource();logger.debug(pageSource);//2.2 源码转文件在查看FileWriterpageSourceFile=newFileWriter("./pageSource.html");pageSourceFile.write(pageSource);}

获取到页面源码,可以根据元素,文本直接到源码中查找,如果存在,证明不是元素错误,没出现原因;


总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 11:29:44

粒子群算法在风光储微电网优化调度中的应用:经济目标下的电源侧与负荷侧运行策略优化

基于粒子群算法的考虑需求侧响应的风光储微电网优化调度 考虑电源侧与负荷侧运行成本&#xff0c;以经济运行为目标函数&#xff0c;风电、光伏、储能出力、上级电网购电记忆可削减负荷为优化变量&#xff0c;并采用粒子群算法进行求解。1. 系统概述 本项目实现了一个基于多目标…

作者头像 李华
网站建设 2026/9/16 12:28:18

DAY11@浙大疏锦行

笔记&#xff1a;参数优化步骤&#xff1a;1.在调参前&#xff0c;先建立基线模型&#xff1a;- 使用**默认参数**训练模型- 记录性能指标作为**对比基准**- 后续调参效果以此为参照2.对参数进行定义1️⃣ 网格搜索 (GridSearchCV)- 需要定义参数的**固定列表**&#xff08;par…

作者头像 李华
网站建设 2026/9/15 9:38:53

六自由度机械臂抓取动作仿真:两套易懂代码解析

六自由度机械臂抓取动作仿真-8 两套关于抓取动作的代码&#xff0c;包括抓取动画、关节角、角速度、角加速度的变化仿真、以及抓取轨迹图 简单易懂好上手&#xff5e;在六自由度机械臂抓取动作仿真的领域中&#xff0c;为大家分享两套超实用的代码&#xff0c;助力快速上手相关…

作者头像 李华
网站建设 2026/9/16 7:46:14

货运 app 运输管理系统框架搭建

一、货运搬家系统&#xff1a;让货运搬家更高效、更便捷在当今快节奏的生活和商业环境中&#xff0c;货运搬家是人们和企业经常面临的需求。无论是个人搬家、企业搬迁&#xff0c;还是货物运输&#xff0c;都需要一个高效、便捷的解决方案。而货运搬家系统的出现&#xff0c;正…

作者头像 李华
网站建设 2026/9/16 19:23:29

光伏并网MPPT技术:从扰动观察法到电导增量法

光伏并网mppt 扰动观察法&#xff0c;电导增量法 单相光伏并网&#xff0c;三相光伏并网 可相关参考文献对初学者学习很有用在光伏并网系统中&#xff0c;最大功率点跟踪&#xff08;MPPT&#xff09;技术是提高光伏电池发电效率的关键。今天咱们就来唠唠MPPT里常用的扰动观察法…

作者头像 李华