141.md 5.3 KB
Newer Older
W
wizardforcel 已提交
1
# 10K 高级 WebDriver – 使用 Log4j 第 1 部分
W
init  
wizardforcel 已提交
2 3 4

> 原文: [https://javabeginnerstutorial.com/selenium/10k-advanced-webdriver-using-log4j-part-1/](https://javabeginnerstutorial.com/selenium/10k-advanced-webdriver-using-log4j-part-1/)

W
wizardforcel 已提交
5
现在让我来解释一下使用 Apache Log4j 记录 Selenium 的过程! 因此,事不宜迟,让我们开始吧!
W
init  
wizardforcel 已提交
6 7 8 9 10 11

## 为什么我们需要首先登录?

作为自动化测试人员,我们负责故障排除,调试等。 记录使整个过程变得非常容易! 它带给我们这些神奇的“眼睛”,让我们看到许多事物,例如,

1.  测试用例实际上在做什么
W
wizardforcel 已提交
12
2.  应用如何响应我们的代码
W
init  
wizardforcel 已提交
13 14 15 16
3.  使用自定义错误消息正确记录时,可以将异常,问题,失败,错误等追溯到其根源
4.  可以作为以后成功执行的证明,因为它们可以轻松地保存到数据库或带有时间戳的外部文件中
5.  所有这些日志都可以在无需人工干预的情况下生成

W
wizardforcel 已提交
17
现在我们了解了将日志语句插入测试用例的重要性,让我们解读一下 Log4j 的全部含义。
W
init  
wizardforcel 已提交
18

W
wizardforcel 已提交
19
## 什么是 Log4j
W
init  
wizardforcel 已提交
20

W
wizardforcel 已提交
21 22
1.  1996 年开发的基于 Java 的流行日志记录程序包
2.  根据 Apache Software License 分发,因此它是开源的
W
wizardforcel 已提交
23
3.  具有各种级别的日志记录 – 允许我们控制日志输出的数量
W
wizardforcel 已提交
24
4.  一切都可以通过编辑简单的配置文件来控制-无需理会应用二进制文件
W
init  
wizardforcel 已提交
25

W
wizardforcel 已提交
26
## Log4j 日志级别
W
init  
wizardforcel 已提交
27

W
wizardforcel 已提交
28
以下是 Log4j 附带的内置日志级别。
W
init  
wizardforcel 已提交
29

W
wizardforcel 已提交
30 31 32 33 34 35 36
1.  **`OFF`** – 关闭登录
2.  **`FATAL`** – 严重错误导致应用终止
3.  **`ERROR`** – 意外情况和运行时错误
4.  **`WARN`** – 警告消息
5.  **`INFO`** – 提供有关一些有趣的运行时事件的信息
6.  **`DEBUG`** – 最常用的日志级别,提供有关系统流程的详细信息
7.  **`TRACE`** - 信息的详细程度最高
W
init  
wizardforcel 已提交
37

W
wizardforcel 已提交
38
## Log4j 组件
W
init  
wizardforcel 已提交
39 40 41

主要包括三个部分:

W
wizardforcel 已提交
42
1.  ### 记录器
W
init  
wizardforcel 已提交
43

W
wizardforcel 已提交
44
应用中用唯一名称标识的记录器可以有多个。 可以将每个记录器配置为特定级别-调试,信息,错误等。
W
init  
wizardforcel 已提交
45

W
wizardforcel 已提交
46
要求我们创建记录器类的实例并指定日志级别。
W
init  
wizardforcel 已提交
47

W
wizardforcel 已提交
48
2.  ### 附加器
W
init  
wizardforcel 已提交
49

W
wizardforcel 已提交
50
创建记录器实例后,我们必须知道在哪里查看生成的日志。 这就是附加器出现的地方。 它们指定消息要记录到的目的地或输出,例如文件,标准输出或另一台计算机等。一些可用的附加器是`FileAppender``RollingFileAppender``ConsoleAppender``SocketAppender`等。 可以将同一信息记录到多个输出中,即一个记录器可以有多个附加器。
W
init  
wizardforcel 已提交
51

W
wizardforcel 已提交
52
3.  ### 布局
W
init  
wizardforcel 已提交
53

W
wizardforcel 已提交
54
既然我们知道如何生成日志并将其保存到特定的目的地,那么我们可能需要将它们呈现为不同的格式。 每个附加器必须映射到特定布局。 一些常用的布局是
W
init  
wizardforcel 已提交
55

W
wizardforcel 已提交
56 57 58
*   **PatternLayout** – 使用模式字符串的一次一行日志文件
*   **HTMLLayout** – 以 HTML 格式呈现日志
*   **XMLLayout** – 生成 XML 格式
W
init  
wizardforcel 已提交
59

W
wizardforcel 已提交
60
## Log4j 配置
W
init  
wizardforcel 已提交
61

W
wizardforcel 已提交
62
可以在 XML,JSON,YAML 或属性文件格式的配置文件中配置这三个组件。 在本文中,我们将看到如何使用属性文件格式定义所有组件和记录消息。
W
init  
wizardforcel 已提交
63 64 65

## 环境设定

W
wizardforcel 已提交
66
在 Eclipse IDE 中创建一个 Java 项目,在本例中为“Selenium”。
W
init  
wizardforcel 已提交
67

W
wizardforcel 已提交
68
### 步骤 1:下载 Log4j
W
init  
wizardforcel 已提交
69

W
wizardforcel 已提交
70
第一步(也是第一步)是从[此处](https://logging.apache.org/log4j/1.2/download.html)下载 Apache Log4j JAR。 单击镜像的 zip 文件格式将导航到一个新页面,其中包含实际的镜像站点详细信息,可从该位置将 JAR 下载到本地计算机。
W
init  
wizardforcel 已提交
71

W
wizardforcel 已提交
72
![download Apache Log4j](img/4d0bd0a2cc1db2cb7f03718ef5c12931.png)
W
init  
wizardforcel 已提交
73

W
wizardforcel 已提交
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
将下载文件夹的内容提取到特定位置。

### 步骤 2:配置 Java 构建路径

将 Log4j JAR 作为外部库添加到项目的构建路径。

让我们导航到本地计算机中提取下载的 JAR 的路径,并将其添加为外部 JAR。

![JAR selection window](img/c027190f02b422719b9633917ff29b9d.png)

之前,我们已经多次看到此过程,因此,我不再重复(请参阅[文章](https://javabeginnerstutorial.com/selenium/9b-webdriver-eclipse-setup/)的步骤 3)。

### 步骤 3:建立必要的档案

我们将创建 3 个文件。

**`Log4j.properties`**

*   右键单击“`src`文件夹->新建->其他->常规->文件->下一页”
*   提供“文件名”作为“`Log4j.properties`”,然后点击“完成”

结果看起来像这样,

![Log4j.properties file creation](img/e27b7184646bb1e673729341bb77e0f8.png)

我现在已经忽略了三个额外的程序包,因为我出于编码目的创建了它们。

**日志文件**

*   右键单击“`src`文件夹->新建->其他->常规->文件夹->下一页”
*   提供“文件夹名称”作为“`resource`
*   右键点击“`resource`”文件夹并创建两个文件
*   将这些文件命名为“`system.log`”和“`test.log`

1.  **`system.log`** – 将具有系统生成的所有日志
2.  **`test.log`** – 将包含由于用户提供的手动命令而生成的所有日志

![Log files created](img/7dbb8f2542d3154b6359132207b4d7b9.png)

现在,所有环境都已准备就绪,我们可以使用 Log4j 进行一些实验并生成日志。 与往常一样,将 JAR 放置在 GitHub [仓库](https://github.com/JBTAdmin/Selenium/tree/master/AdvancedWebDriver)中。 让我们在即将发布的帖子中详细了解这一点。