자동화테스트/Selenium2018. 12. 15. 20:00

소개 Log4j

Log4j는 1996 년 초에 개발 된 Java로 작성된 빠르고 유연하며 신뢰할 수있는 로깅 프레임 워크 (APIS)입니다 Apache Software License 하에 배포됩니다 Log4J는 C, C ++, C #, Perl , Python , Ruby 및 Eiffel 언어 로 이식되었습니다 그것은 작은 규모의 셀레늄 자동화 프로젝트에 사용되는 도구입니다.

Log4j를 사용하는 이유는 무엇입니까?

  • 오픈 소스이다.
  • Log4j를 사용하면 Selenium Automation의 플로우 세부 사항을 파일에 저장할 수 있습니다
  • Log4j는 크고 작은 프로젝트에 사용됩니다.
  • Log4j에서는 코드에서 SOPL 문 대신 log 문을 사용하여 프로젝트가 실행되는 동안 프로젝트의 상태를 확인합니다.

Log4j에는 세 가지 주요 구성 요소가 있습니다.

Log4j with Selenium Tutorial

  1. 로거 : 정보 로깅을 담당합니다. 로거를 프로젝트에 구현하려면 다음 단계를 수행해야합니다.
  • 로거 클래스에 대한 인스턴스 만들기 : 로거 클래스는 log4j를 사용하도록 이미 구현 된 모든 일반 메서드를 갖춘 Java 기반 유틸리티입니다.
  • Log4j 레벨 정의 : 주로 다섯 종류의 로그 레벨이 있습니다.
    1. ALL -이 수준의 로깅은 모든 것을 기록합니다 (모든 로그를 켭니다)
    2. DEBUG - 디버깅 정보를 출력하고 개발 단계에서 도움이됩니다.
    3. INFO - 응용 프로그램의 진행 상황을 강조하는 정보 메시지를 인쇄합니다.
    4. WARN - 예기치 않은 시스템 작동과 관련된 정보를 인쇄합니다.
    5. ERROR - 시스템이 계속 될 수있는 오류 메시지를 인쇄하십시오.
    6. FATAL - 응용 프로그램을 충돌시키는 시스템의 중요한 정보를 인쇄합니다.
    7. OFF - 로깅하지 않음
  1. Appenders : LogEvent를 목적지에 전달하는 데 사용됩니다. 로그 정보로 어떤 일이 발생할지 결정합니다. 간단히 말하자면, 로그에 파일을 쓰는 데 사용됩니다. 다음은 Appender의 몇 가지 유형입니다.
    1. ConsoleAppender는 표준 출력에 로그를 남깁니다.
    2. 파일 appender가 로그를 일부 파일에 인쇄합니다.
    3. 파일 appender를 최대 크기의 파일로 롤링

    참고 : log4j 속성에서 어떤 이름 으로든 appender를 호출 할 수 있습니다. 다른 appender도 있지만이 몇 가지로 제한 할 것입니다.

  2. 레이아웃 : 다양한 스타일의 로깅 정보를 형식화합니다.

Logger 클래스는, 로깅 활동을 처리하는 다양한 메소드를 제공합니다. 이것은, Logger Object를 취득하기위한 2 개의 정적 메소드를 제공합니다.

  • Public static Logger getRootLogger()
  • Public static Logger getLogger(String name)

log4j가 어떻게 구성되어 있습니까?

log4j를 설정하려면 어떤 appender를 구현할지 결정해야합니다. 따라서 appender의 매개 변수가 설정됩니다.

  • 우리는 DEBUG 레벨과 RollingFileAppender를 사용할 것입니다.
  • 우리는 두 가지 구성 또는 로그를 수행합니다.
    • 첫째 : 루트 로거, 모든 시스템 생성 로그를 파일 이름 즉 Selenium.logs에 기록합니다.
    • 두 번째 : 코드에서 수동 명령으로 생성 된 정보를 파일 이름에 쓰십시오 - Manual.logs
  • 레이아웃은 PatternLayout이됩니다.

# 루트 로거

log4j.rootLogger = DEBUG, file
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File = D : \\ Guru99 \\ src \\ Selenium.logs
log4j.appender.file.maxFileSize = 900KB
log4j.appender.file.maxBackupIndex = 5
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = % d {절대 값} % 5p % c <strong> {1} </ strong> : % L - % m % n
log4j.appender.file.Append = false

#Application Logs

log4j.logger.devpinoyLogger = DEBUG, dest1
log4j.appender.dest1 = org.apache.log4j.RollingFileAppender
log4j.appender.dest1.maxFileSize = 900KB
log4j.appender.dest1.maxBackupIndex = 6
log4j.appender.dest1.layout = org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern = % d {dd / MM / yyyy HH : mm : ss} % c % m % n
log4j.appender.dest1.File = D : \\ Guru99 \\ src \\ Manual.logs
log4j.appender.dest1.Append = false

위의 코드에서 우리는 log4j를 Selenium.log와 Manual.log라는 두 개의 다른 파일에 로그인하도록 구성했습니다.

  • file과 dest1은 두 개의 식별자입니다.
  • "파일"은 로그가 저장 될 파일 이름을 제공하는 데 사용됩니다.
  • "maxFileSize"는 로그 파일의 최대 크기를 구성하는 데 사용됩니다. 파일이이 크기에 도달하면 새 파일이 같은 이름으로 만들어지며 이전 파일 이름이 색인으로 추가됩니다.
  • "maxBackupIndex"는 백업 할 최대 파일 수를 구성하는 데 사용됩니다.
  • "layout"은 로그 파일의 형식을 설정하는 데 사용됩니다.
  • "Append"는 추가 기능을 설정하는 데 사용됩니다. false로 설정하면 이전 파일이 아닌 새로운 파일이 작성 될 때마다 로깅에 사용됩니다.

log4j가 스크립트 내에서 어떻게 사용 되는가?

코드에서 Logger 클래스의 getLogger 메소드를 참조하는 참조 변수로 "log"를 사용했습니다.

Logger log = Logger.getLogger ( "devpinoyLogger");

변수를 참조하는 "log"를 사용하고 디버그 방법을 사용하여 원하는 정보를 기록하십시오.

log.debug ( "- information--");

LogExpert 도구 란 무엇입니까?

  1. LogExpert 도구는 로그를 뒷받침하기 위해 개발 된 Windows 용 도구입니다.
  2. 그것은 무료 및 오픈 소스 로그 뷰어입니다.
  3. 검색, 필터링, 북마크 및 로그 강조 표시와 같은 여러 기능을 갖춘 로그 분석 도구입니다.
  4. 이 도구 로그에서 파일을 열면 자동으로 업데이트됩니다.
  5. 이 도구에서는 여러 탭에서 여러 로그 파일을 열 수 있습니다.
  6. 북마크에 댓글을 달 수도 있고 다른 북마크 사이를 탐색 할 수있는 단축키가 있습니다. 우리는 또한 완전한 북마크 목록을보고 거기에서 탐색 할 수 있습니다.
  7. 도구의 바로 가기는 도움말 파일에 제공되어 도구로 참조 할 수 있습니다.

Log4j를 Selenium과 함께 사용하는 단계

1 단계) Eclipse에서 이름이 log4j_demo 인 새 프로젝트를 만듭니다.

Log4j with Selenium Tutorial

2 단계) src -> Build Path -> Configure Build Path를 마우스 오른쪽 버튼으로 클릭하십시오.

Log4j with Selenium Tutorial

단계 2) 라이브러리를 클릭하고 Log4J 라이브러리 추가를 클릭하십시오. https://logging.apache.org/log4j/1.2/download.html 에서 다운로드 할 수 있습니다.

 

Log4j with Selenium Tutorial

3 단계) 새 파일을 만듭니다. 이 파일에는 모든 log4j 구성이 포함됩니다.

  1. src -> New -> Other -> General -> File 에서 오른쪽 버튼으로 클릭하십시오.
  2. 파일 이름을 "log4j.properties"로 지정하십시오.
  3. Finish을 클릭하십시오.

두 개의 파일을 더 만들고 Selenium.logs 및 Manual.logs와 같은 이름을 지정하십시오. 이 파일에는 시스템 및 수동으로 기록 된 명령문으로 작성된 모든 로그가 포함됩니다

Log4j with Selenium Tutorial

4 단계) log4j.properties에서 전체 구성을 복사합니다.

Log4j with Selenium Tutorial

5 단계) 메인 클래스 생성 :

  1. default package -> New -> Class에서 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 클래스 이름을 지정하고 finish을 클릭하십시오.

Log4j with Selenium Tutorial

6 단계) 다음 코드를 메인 클래스에 복사합니다.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.apache.log4j.Logger;

public class LoggingDemo {
    /**
		* @param args
    */
    public static void main(String[] args) {
         // TODO Auto-generated method stub
         WebDriver driver = new FirefoxDriver();
         Logger log = Logger.getLogger("devpinoyLogger");
         
         driver.get("http://healthunify.com/bmicalculator/");
		 log.debug("opening webiste");
         driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
		 log.debug("entring weight");
		 driver.findElement(By.name("wg")).sendKeys("87");
         log.debug("selecting kilograms");
         driver.findElement(By.name("opt1")).sendKeys("kilograms");
         log.debug("selecting height in feet");
         driver.findElement(By.name("opt2")).sendKeys("5");
         log.debug("selecting height in inchs");
         driver.findElement(By.name("opt3")).sendKeys("10");
         log.debug("Clicking on calculate");
         driver.findElement(By.name("cc")).click();

		 log.debug("Getting SIUnit value");
         String SIUnit = driver.findElement(By.name("si")).getAttribute("value");
         log.debug("Getting USUnit value");
         String USUnit = driver.findElement(By.name("us")).getAttribute("value");
         log.debug("Getting UKUnit value");
         String UKUnit = driver.findElement(By.name("uk")).getAttribute("value");
         log.debug("Getting overall description");
         String note = driver.findElement(By.name("desc")).getAttribute("value");
      
         System.out.println("SIUnit = " + SIUnit);
         System.out.println("USUnit = " + USUnit);
         System.out.println("UKUnit = " + UKUnit);
         System.out.println("note = " + note); 
		driver.quit();
	}
}

위의 코드에서 http://healthunify.com/bmicalculator/ 를 방문 하여 BMI 계산기를 확인합니다. 입력 된 무게는 87KG이고 높이는 5 피트 10 인치입니다. 이 스크립트는 SE, US 및 UK 단위로 출력을 검사합니다.

Logger.getLogger ( "devpinoyLogger")를 사용하여 시스템 레벨 로그를 생성합니다.

log.debug 메소드를 사용하여 우리는 Manual.log에 데이터를 저장합니다.

7 단계) 스크립트를 실행합니다. 로깅 데이터를 확인하려면 Manual 및 Selenium 로그의 위치를 ​​엽니 다.

로그 분석에 LogExpert 도구를 사용하는 방법

  1. http://logexpert.codeplex.com/ 에서 도구를 다운로드 하십시오 . LogExpert 다운로드 폴더로 이동

    Log4j with Selenium Tutorial

  2. LogExpert.exe를 엽니 다.
  3. File -> Open를 클릭하고 Manual.log 및 Selenium.log 파일이 저장된 경로를 찾아서 파일 선택
  4. "Follow tail"옵션을 선택하십시오.

    Log4j with Selenium Tutorial

    Follow tail 옵션을 선택하면 로그 꼬리가 가능해 지므로 스크립트가 실행 단계에있을 때 LogExpert가 자동으로 로그 파일을 업데이트합니다. 우리가 메모장과 같은 다른 편집기를 사용한다면 우리는 파일을 닫고 다시 열어 로그를 업데이트해야합니다. 그러나 FollowTail 모드의 ExpertTool에서는 이것이 필요하지 않습니다.

    다음 이미지는 로그의 레이아웃을 보여줍니다.

    Log4j with Selenium Tutorial

    Log4j with Selenium Tutorial

LogExpert 도구를 사용하면이 툴 에서처럼 셀레늄 웹 드라이버가 생성 한 로그를 디버깅 할 수 있습니다.

  • 텍스트 및 정규식 검색,
  • 책갈피를 작성하고 주석을 달고 다른 도구에서는 불가능한 책갈피를 탐색 할 수 있습니다.
  • 로그를 필터링하고 텍스트 범위를 검색 할 수 있으며 이전 필터링 된 로그에 다른 필터를 적용 할 수도 있습니다.
  • 특정 단어를 기반으로 다른 줄을 강조 표시하십시오.

또한이 도구는 데이터를 다른 열로 나누는 데 도움이됩니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터