自动化关键数据记录

行为日志

  • pom.xml依赖
<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>2.0.7</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.4.8</version>
        </dependency>
  • logback.xml文件配置
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <!--name指定<appender>的名称 class指定<appender>的全限定名 ConsoleAppender的作用是将日志输出到控制台 -->
<appender name="STDOUT"  class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <!-- 输出时间格式-->
        <pattern>%date %-5level: %msg%n</pattern>
    </encoder>
</appender>

<!-- 通过 "bySecond" 将时间格式化成 "yyyyMMdd'T'HHmmss" 的形式插入到 logger 的上下文中这个值对后续的-->
<!-- <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/> -->
<timestamp key="bySecond" datePattern="yyyyMMdd"/>
<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">

          <file>${bySecond}.log</file>
          <!-- 配置日志所生成的目录以及生成文件名的规则-->
          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
          <!--日志文件输出的文件名-->
          <FileNamePattern>${log.zip.path}/%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
          <!-- 日志总保存量为1GB -->
          <totalSizeCap>1024MB</totalSizeCap>
          <!-- 如果按天来回滚,则最大保存时间为365天,365天之前的都将被清理掉 -->
          <maxHistory>30</maxHistory>
          <timeBasedFileNamingAndTriggeringPolicy
                  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                  <!--文件达到 最大128MB时会被压缩和切割 -->
                  <maxFileSize>128MB</maxFileSize>
          </timeBasedFileNamingAndTriggeringPolicy>
          </rollingPolicy>

          <!-- 默认为 ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
          <encoder>
          <pattern>%date %-5level : %msg%n</pattern>
          </encoder>
  </appender>

    <logger name="com.ceshiren" level="DEBUG"/>
    <logger name="com" level="WARN"/>
    <logger name="ch.qos" level="OFF"/>
    <logger name="io.qameta.allure" level="OFF"/>
    <logger name="ceshiren" level="WARN"/>
    <logger name="org" level="WARN"/>

  <root level="INFO">
          <appender-ref ref="STDOUT" />
          <appender-ref ref="FILE" />
  </root>
  </configuration>
  • Logger 引用及实例化
import org.slf4j.Logger;
import static org.slf4j.LoggerFactory.getLogger;
import static java.lang.invoke.MethodHandles.lookup;

static final Logger logger = getLogger(lookup().lookupClass());

截图


long nowTime = System.currentTimeMillis();
//进行截图操作
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
//在硬盘中创建一个文件,将截图复制过去
//当前项目下的jpg文件夹内 时间戳.jpg
Path jpgPath = Paths.get("jpg", nowTime + ".jpg");
File file = jpgPath.toFile();
try {
    //apache common io
    FileUtils.copyFile(screenshot, file);
} catch (IOException e) {
    throw new RuntimeException(e);
}

page_source获取

logger.info(driver.getPageSource());