如何将 log4j 与 TestNG 集成?
How to integrate log4j with TestNG?
我正在尝试 运行 我的 selenium-testng 程序使用 log4j.properites。我想知道如何将我的 testng class 与 log4j.properties.
集成
- 我已经使用 testNG
创建了一个示例 google 登录测试
- 我在 src/main/resources
下创建了 log4j.properties
- 我已经为代码编写了记录器
记录器日志 = Logger.getLogger(loginTest.class.getName());
我尝试了 运行ning 测试,但我看不到生成任何日志。
现在我不确定接下来的步骤 - 有人可以指导我吗?
public class 登录测试 {
WebDriver driver;
Logger log = Logger.getLogger(loginTest.class.getName());
@BeforeMethod
public void setUp() {
System.setProperty("webdriver.chrome.driver" , "C:/Users/User/Desktop/Selenium Drivers/chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.google.com/");
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
}
@Test
public void titleTest() {
String title = driver.getTitle();
System.out.println(title);
Assert.assertEquals(title, "Google");
}
@Test
public void gmailLogoTest() {
boolean b = driver.findElement(By.linkText("Gmail")).isDisplayed();
Assert.assertTrue(true);
}
@AfterMethod
public void tearDown() {
driver.quit();
}
}
设定等级
log4j.rootCategory=调试、控制台、文件
写入控制台的 Appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{MM-dd-yyyy HH:mm:ss} %F %-5p [%t] %c{2} %L - %m%n
写入文件的 Appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.文件=application.log
正在定义日志文件的最大大小
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c{1}:%L - %m%n
log4j.appender.file.Append=true
我相信你的构建路径中有 log4j.jar
。
您的 src
中应该有 log4j.properties
文件 folder.Please 检查配置。
# Root logger option
log4j.rootLogger=DEBUG, file, stdout
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\Testlog.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
这是你的测试:
package testpkg;
import java.io.File;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
public class loginTest {
WebDriver driver;
Logger log = Logger.getLogger(loginTest.class.getName());
@BeforeMethod
public void setUp() {
//System.setProperty("webdriver.chrome.driver" , "C:/Users/User/Desktop/Selenium Drivers/chromedriver.exe");
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + File.separator + "\Executables\Chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.google.com/");
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
log.debug("opening webiste");
}
@Test
public void titleTest() {
String title = driver.getTitle();
System.out.println(title);
Assert.assertEquals(title, "Google");
log.debug("Title match");
}
@Test
public void gmailLogoTest() {
boolean b = driver.findElement(By.linkText("Gmail")).isDisplayed();
Assert.assertTrue(true);
log.debug("Linked found");
}
@AfterMethod
public void tearDown() {
driver.quit();
}
}
输出:
您可以在控制台中看到详细信息以及 log4j.properties
文件中提到的 D:\Testlog.log
。
希望对您有所帮助。
我正在尝试 运行 我的 selenium-testng 程序使用 log4j.properites。我想知道如何将我的 testng class 与 log4j.properties.
集成- 我已经使用 testNG 创建了一个示例 google 登录测试
- 我在 src/main/resources 下创建了 log4j.properties
- 我已经为代码编写了记录器 记录器日志 = Logger.getLogger(loginTest.class.getName());
我尝试了 运行ning 测试,但我看不到生成任何日志。 现在我不确定接下来的步骤 - 有人可以指导我吗?
public class 登录测试 {
WebDriver driver; Logger log = Logger.getLogger(loginTest.class.getName()); @BeforeMethod public void setUp() { System.setProperty("webdriver.chrome.driver" , "C:/Users/User/Desktop/Selenium Drivers/chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://www.google.com/"); driver.manage().window().maximize(); driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); } @Test public void titleTest() { String title = driver.getTitle(); System.out.println(title); Assert.assertEquals(title, "Google"); } @Test public void gmailLogoTest() { boolean b = driver.findElement(By.linkText("Gmail")).isDisplayed(); Assert.assertTrue(true); } @AfterMethod public void tearDown() { driver.quit(); }
}
设定等级
log4j.rootCategory=调试、控制台、文件
写入控制台的 Appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{MM-dd-yyyy HH:mm:ss} %F %-5p [%t] %c{2} %L - %m%n写入文件的 Appender
log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.文件=application.log
正在定义日志文件的最大大小
log4j.appender.file.MaxFileSize=10mb log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c{1}:%L - %m%n log4j.appender.file.Append=true
我相信你的构建路径中有 log4j.jar
。
您的 src
中应该有 log4j.properties
文件 folder.Please 检查配置。
# Root logger option
log4j.rootLogger=DEBUG, file, stdout
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\Testlog.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
这是你的测试:
package testpkg;
import java.io.File;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
public class loginTest {
WebDriver driver;
Logger log = Logger.getLogger(loginTest.class.getName());
@BeforeMethod
public void setUp() {
//System.setProperty("webdriver.chrome.driver" , "C:/Users/User/Desktop/Selenium Drivers/chromedriver.exe");
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + File.separator + "\Executables\Chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.google.com/");
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
log.debug("opening webiste");
}
@Test
public void titleTest() {
String title = driver.getTitle();
System.out.println(title);
Assert.assertEquals(title, "Google");
log.debug("Title match");
}
@Test
public void gmailLogoTest() {
boolean b = driver.findElement(By.linkText("Gmail")).isDisplayed();
Assert.assertTrue(true);
log.debug("Linked found");
}
@AfterMethod
public void tearDown() {
driver.quit();
}
}
输出:
您可以在控制台中看到详细信息以及 log4j.properties
文件中提到的 D:\Testlog.log
。
希望对您有所帮助。