어떻게 Jenkins와 Selenium WebDriver를 통합합니까?

본문은 우리의 내용 중심의 일부분이다.자세한 내용은 컨텐츠 센터Jenkins Tutorial를 참조하십시오.
DevOps는 응용 프로그램 개발과 배치를 가속화하는 데 광범위하게 사용되는 조직 방법으로 최신 기술 이슈이다.오늘날 모든 조직은 계획, 테스트, 배치, 모니터링에 이르기까지 최선의 실천을 제공하겠다고 약속하기 때문에 DevOps를 채택하고 있다.Jenkins와 같은 CI/CD 도구는 조직이 DevOps를 실시하는 데 있어 없어서는 안 될 역할을 발휘한다. Jenkins와 Selenium의 통합은 Selenium 테스트 자동화의 전체 과정을 더욱 쉽게 한다.
본문에서 나는 간략하게 Jenkins와 Selenium을 소개한 다음에 Jenkins와 Selenium WebDriver를 통합하는 방법을 소개할 것이다.이러한 개념에 익숙해지면 Jenkins와 Selenium의 통합을 소개하는 부분으로 바로 이동할 수 있습니다.

젠킨스가 뭐예요?


Jenkins는 지속적인 통합 및 지속적인 배송 프로세스에 널리 사용되는 오픈 소스 DevOps 도구입니다.플랫폼과 관계없이 Java 기반 애플리케이션입니다.그것은 구축 도구이다.원본 코드 저장소에서 구축을 실행하고 단원 테스트를 실행하며 구축 보고서를 해당하는 구성원이나 팀에 보내는 데 사용됩니다.

무엇이 셀렌입니까?


Selenium은 웹 응용 프로그램을 테스트하는 데 널리 사용되는 오픈 소스 자동화 도구입니다.그것은 지역 사회에서 인기가 많고 사용하기 쉽다.Selenium에는 네 가지 주요 구성 요소가 있는데 그것이 바로 Selenium IDE, Selenium RC, Selenium WebDriver와 Selenium Grid이다. 그들의 디자인과 사용 목적은 각각 다르다.Selenium은 크로스 브라우저 테스트와 병행 테스트 기능을 제공하여 테스트 인원이 서로 다른 운영체제와 브라우저에서 테스트 용례를 실행하여 웹 응용 프로그램의 브라우저 호환성을 확보할 수 있도록 한다.
자세한 내용은 "What is Selenium?"설명서를 참조하십시오.

어떻게 Jenkins와 Selenium WebDriver를 통합합니까?


이제 간단하게 Jenkins & Selenium을 소개했으니 깊이 있게 연구하고 집적할 때가 되었다.하지만, 당신은 당신의 시스템에 모두 설치되어 있습니까?Jenkins와 Selenium의 통합을 연구하기 전에 Jenkins와 Selenium의 설치와 설정을 신속하게 깊이 있게 이해하도록 하겠습니다.

젠킨스를 다운로드하려면


첫 번째 단계: Jenkins를 다운로드하려면 Jenkinsofficial website의 다운로드 링크를 클릭하면 된다.설치 프로세스here에 대해 자세히 설명합니다.
2단계: 다운로드Jenkins.war file를 원하는 경로에 배치합니다.
3단계: 명령 알림부호를 열고 Warr 파일을 포함하는 폴더로 이동합니다.
4단계: 명령java -jar Jenkins.war을 입력합니다.이것은 젠킨스 서버를 시작할 것이다.
5단계: 기본적으로 Jenkins는 일반적으로 8080 포트에서 부팅됩니다.만약 포트가 다른 서비스에서 사용되고 있다면 다음 명령을 사용하여 예비 포트를 정의할 수 있습니다
java -jar jenkins.war --httpPort=8081
사용 가능한 모든 포트는 위의 명령에 정의되어 있으며 Jenkins 서버를 시작할 수 있습니다.

Jenkins를 처음 시작할 때 콘솔 끝에 인쇄되는 비밀 암호가 생성됩니다.
흰색 섀도우 섹션에는 컴퓨터에서 Jenkins를 설정하는 비밀 비밀번호가 포함되어 있습니다.설치가 완료되면 콘솔에서 Jenkins가 완전히 시작되고 실행된다는 메시지가 표시될 수 있습니다.

6단계: 브라우저를 시작하고 로컬 호스트로 이동합니다.기본적으로 포트 번호는 8080입니다.내 예에서 포트를 8081로 정의했기 때문에 로컬 호스트로 이동할 때 이 포트를 사용합니다.
이제 Jenkins 설정 페이지가 시작됩니다. 이 페이지는 Jenkins에 대한 관리자 계정을 만드는 데 사용됩니다.
7단계: 설정 페이지 앞에 콘솔에서 생성되고 표시된 암호를 입력하고 계속을 클릭합니다.

8단계: 비밀번호를 입력하면 플러그인을 설치해야 합니다.

원하는 플러그인을 확인하지 못하면 '권장 플러그인 설치' 를 선택하면 자주 사용하는 플러그인 목록을 설치할 수 있습니다.그러나 필요에 따라 플러그인을 알면 설치할 플러그인 옵션을 선택한 다음 필요한 플러그인을 눌러도 됩니다.
이제 플러그인을 다운로드하고 설치할 수 있습니다.
9단계: 플러그 인이 성공적으로 설치되면 사용자 이름, 암호 및 이메일 주소를 입력하여 관리자 계정을 만들어야 합니다.관리자 구성 파일을 만들면 Jenkins 대시보드로 이동합니다.

이제 Jenkins가 로컬 호스트에 설치되고 설정되어 있으며 Jenkins 대시보드를 볼 수 있습니다.
Jenkins와 Selenium WebDriver를 통합하는 방법에는 여러 가지가 있습니다.프로젝트의 요구에 따라 구현하는 데 도움이 될 수 있도록 다양한 방식으로 이 점을 실현하도록 하겠습니다.

Jenkins와 셀렌의 통합 - 방법1


1단계: Jenkins 대시보드에서 New Item 을 클릭하여 새 항목을 만듭니다.항목 이름을 지정하고 자유형 항목 옵션을 클릭합니다.OK 를 클릭하십시오.


2단계: 개요 섹션의 설명 상자에 항목 설명을 입력합니다.

3단계: 소스 코드 관리 섹션에서 없음을 선택합니다.

4단계: 작업을 배정하기 위해 우리는 제시된 목록에서 필요한 옵션을 선택할 수 있다.지금 우리는 스케줄링 작업의 지속 시간을 지정할 것이다.지속 시간에 대해 말하자면, 반드시 다음과 같은 규칙을 따라야 한다.
이 기간을 포맷에 언급해야 합니다
1분 1시간
분 단위
한 시간 동안의 분수(0-59)
시간
하루 중 시간(0-23)
도모
월일(1-31)
월 단위
월(1-12)
도씨
일주일 중 하루(0-7), 그중 0과 7은 일요일
단계 5: Selenium WebDriver 및 TestNG를 사용하여 테스트를 실행하는 프로젝트를 만듭니다.
package Pages;


import static org.testng.Assert.assertEquals;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class LoginPage {

    WebDriver driver;

    @BeforeTest
    public void setUp() {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Shalini\\Downloads\\chrom86_driver\\chromedriver.exe");
        driver = new ChromeDriver();
    }

    public void login() {
        String login_url = "https://opensource-demo.orangehrmlive.com/";
        driver.get(login_url);

        driver.manage().window().maximize();
        driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
        driver.findElement(By.id("txtUsername")).sendKeys("Admin");
        driver.findElement(By.id("txtPassword")).sendKeys("admin123");
        System.out.println(driver.getTitle());
    }

    @Test
    public void dashboard() {

        driver.findElement(By.id("menu_dashboard_index")).click();
        String textPresent = driver.findElement(By.xpath("//*[@id=\"content\"]/div/div[1]/h1")).getText();

        String textToBePresent = "DashBoard";
        assertEquals(textPresent, textToBePresent);
    }


    @AfterTest
    public void tearDown() {
            driver.quit();
    }

}
6단계: TestNG를 생성합니다.xml 파일
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite">
<test name="LoginTest">
 <groups>
      <run>
        <include name="DemoTest"/>
      </run>
    </groups>
<classes>
<class name="Pages.LoginPage">
</class>
</classes>
</test>
</suite>
7단계: 프로젝트 폴더에 모든 의존항을 단독 폴더에 추가합니다.다음 내용을 포함하는bat 파일을 만듭니다.
ava –cp bin;lib/* org.testng.TestNG TestNG.xml
8단계: Jenkins dashboard 에서 처음 만든 프로젝트를 선택합니다.구성을 클릭합니다.일반 섹션에서 고급 을 클릭하고 사용자 작업공간 사용 옵션을 선택합니다.테스트 항목 경로를 지정합니다.

9단계: 구성 섹션에서 구성 단계 추가 드롭다운 상자를 클릭하고 Windows 배치 명령 실행 옵션을 선택합니다.단계 7에서 생성된bat 파일의 이름을 지정합니다.

10단계: Apply 를 클릭하고 Save 를 클릭하여 모든 변경 사항을 Jenkins 프로젝트에 적용합니다.이제 Build 를 클릭하면 Jenkins 프로젝트에서 실행되는 테스트를 볼 수 있습니다.

Jenkins와 셀렌의 통합 - 방법2


Maven과 통합하여 Jenkins에서 Selenium 테스트 자동화를 수행할 수도 있습니다.통합을 연구하기 전에 Maven, 그리고 왜 Jenkins에서 테스트를 실행하는 데 널리 사용되었는지 살펴보겠습니다.

Maven이란?


Maven은 pom에 모든 의존 항목을 추가하고 관리할 수 있는 자동화 도구입니다.xml 파일.이것은 사용자가 여러 항목에서 같은 의존 항목을 다시 사용할 수 있도록 합니다.pom에 의존항을 추가합니다.xml 파일에서 의존항은 자동으로 다운로드되어 프로젝트에 추가됩니다. 이로써 모든 의존항을 JAR 파일로 프로젝트에 수동으로 추가하는 작업을 제거합니다.
따라서 메이븐, 젠킨스, 셀레니움 웹드라이브를 통합함으로써 DevOps 모델을 적용해 프로젝트의 지속적인 통합을 실현할 수 있다.

Maven은 어떻게 설치합니까?


첫 번째 단계: 그들의 공식 사이트website에서 마븐을 다운로드한다.
2단계: MAVEN HOME 시스템 변수를 추가합니다.

3단계: 마븐 디렉터리를 가리키는 bin 디렉터리의 경로를 설정합니다.

4단계: Maven의 성공적인 설치를 확인하려면 명령 프롬프트에 mvn –version를 입력합니다.

5단계: 마ven 프로젝트를 만들고pom에 모든 마ven 의존항을 추가합니다.xml 파일.
<project
xmlns="http://maven.apache.org/POM/4.0.0" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>demoProject</groupId>

  <artifactId>demoProject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>

        <configuration>

        <source>1.8</source>

        <target>1.8</target>

        </configuration>

    </plugin>

    </plugins>

  </build>
  <dependencies>

                <dependency>

              <groupId>org.seleniumhq.selenium</groupId>

              <artifactId>selenium-java</artifactId>

          <version>3.141.59</version>

                </dependency>
<dependency>

    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.3.0</version>
    <scope>test</scope>
</dependency>
  </dependencies>
</project>
package WebDriverProject;

import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class LoginClass {

    WebDriver driver;

    @BeforeTest
             public void setup(){
    System.setProperty("WebDriver.gecko.driver","C:\\Users\\shalini\\Downloads\\geckodriver-v0.26.0-win64\\geckodriver.exe");

        driver = new FirefoxDriver();                    //initialise the WebDriver
    }

            @Test
                         public void loginTest(){   
        driver.get("https://opensource-demo.orangehrmlive.com/"); //define the url
    String pageTitle = driver.getTitle();       //get the title of the webpage
    System.out.println("The title of this page is ===> " +pageTitle);
    Assert.assertEquals("OrangeHRM", pageTitle);    //verify the title of the webpage

        driver.findElement(By.id("txtUsername")).clear();//clear the input field before entering any value
        driver.findElement(By.id("txtUsername")).sendKeys("Admin");//enter the value of username
        driver.findElement(By.id("txtPassword")).clear();
        driver.findElement(By.id("txtPassword")).sendKeys("admin123");//enter the value of password
        driver.findElement(By.id("btnLogin")).click();      //click Login button
        System.out.println(“Successfully logged in”);
}

@AfterTest
             public void teardown(){
        driver.quit();
}

}
TestNG.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite">
<test name="LoginTest">
 <groups>
      <run>
        <include name="DemoTest"/>
      </run>
    </groups>
<classes>
<class name=" WebDriverProject.LoginClass">
</class>
</classes>
</test>
</suite>

Maven과 Jenkins에서 셀렌 테스트를 어떻게 통합합니까?


위 장에서 Jenkins와 Selenium WebDriver를 통합하는 방법을 살펴봤습니다.이런 통합의 가장 좋은 용례는 셀레니움 테스트 자동화를 실현하는 것이다.Jenkins와 Selenium WebDriver의 통합으로 인해 이전보다 견고하게 cross browser testing 스크립트를 사용할 수 있습니다.이 섹션에서는 Jenkins와 Selenium 테스트 스크립트를 Maven의 도움을 받아 통합하는 방법을 설명합니다.
첫 번째 단계: 젠킨스 서버를 시작합니다.
2단계: 브라우저를 열고 로컬 호스트와 Jenkins가 실행하는 포트로 이동합니다.

3단계: 대시보드에서 "새 항목"을 클릭합니다.

4단계: 프로젝트 이름을 입력하고 프로젝트 유형을 Maven 프로젝트로 선택합니다.

5단계: OK를 클릭합니다.대시보드에서 성공적으로 작성된 작업을 볼 수 있습니다.

6단계: 항목을 클릭하고 구성을 클릭합니다.

7단계: Build 섹션에서pom의 전체 경로를 입력합니다.xml.대상과 옵션에 명령 clean test를 입력합니다.

8단계: 적용 을 클릭하고 저장합니다.
9단계: 지금 구축을 클릭합니다.

단계 10: 현재 구축이 실행되고 구축이 성공적으로 완료되면 결과가 표시됩니다.전체 로그를 보려면 콘솔 출력을 클릭합니다.

일을 끝내다


한마디로 Jenkins가 왜 이렇게 중요한지, 그리고 이를 어떻게 Selenium WebDriver와 통합시켜 우리의 테스트를 효율적으로 실행하고 지속적인 통합 목표를 실현하는지 소개했다.Jenkins를 사용하여 테스트를 실행하는 것은 효율적이며 결과는 완전한 로그를 통해 시각화할 수 있습니다.그것은 개발, 배치, 테스트, 감시, 발표로부터 시작되는 전체 소프트웨어 개발의 생명 주기를 완성하는 데 도움이 된다.그것은 프로젝트의 수요를 충족시키기 위해 각종 플러그인을 지원한다.전자 우편을 통해 사용자에게 구축하는 안정성을 알릴 수 있습니다.
나는 지금 네가 쉽게 통합할 수 있기를 바란다. Jenkins with Selenium WebDriver아래의 평론 부분에서 당신이 본문에 대한 피드백을 우리에게 알려 주십시오.
테스트 유쾌!

좋은 웹페이지 즐겨찾기