티스토리 뷰

<참조> https://azuredevopslabs.com/labs/vstsextend/selenium/

 

 

 

 

 

개요

Selenium은 웹 애플리케이션을 위한 휴대용 오픈 소스 소프트웨어 테스트 프레임워크이다. 거의 모든 운영 체제에서 작동 할 수 있는 기능이 있다. 모든 최신 브라우저와 .NET (C #), Java를 포함한 여러 언어를 지원한다.

이 랩에서는 Azure DevOps 릴리즈 파이프 라인의 일부로 C# 웹 애플리케이션에서 selenium 테스트 사례를 실행하는 방법을 알아본다.

 

추가 학습을 원하면 Microsoft Learn의 Azure Pipelines 모듈에서 기능 테스트 실행을 확인한다.

 

 

 

시작하기 전에

1. 아래 실습을 수행하기 전에 시작하기를 참조한다.

2. 아래 Azure에 배포 버튼을 클릭하여 SQL Express 2017 및 브라우저 (Chrome 및 FireFox)와 함께 Windows Server 2016 가상 머신을 프로비저닝 한다. 

 

 

리소스를 프로비저닝하는 데 약 20-25 분이 소요된다. 배포가 성공하면 다음과 같은 리소스가 표시된다.

 

3. Azure DevOps 데모 생성기를 사용하여 Azure DevOps 조직에서 프로젝트를 프로비전한다. 이 URL은 데모 생성기에서 Selenium 템플릿을 자동으로 선택한다. 다른 프로젝트를 시도하려면 https://azuredevopsdemogenerator.azurewebsites.net/ 대신이 URL을 사용한다.

 

간단한 실습을 따라 Azure DevOps 데모 생성기를 사용하는 방법을 알아본다.

 

 

 

실습 1: VM에서 에이전트 구성

이 VM에서 프라이빗 자체 호스팅 에이전트를 구성 해 보겠다. Selenium은 UI 테스트를 실행하기 위해 에이전트를 interactive 모드로 실행해야한다.

1. 다음 자격 증명으로 RDP를 사용하여 VM에 로그인 한다.

  • Username: vmadmin
  • Password: P2ssw0rd@123

 

 

 

2. VM 오픈 웹 브라우저에서 Azure DevOps 조직에 로그인하고 Agent pool 탭으로 이동한다.

 

  • Azure DevOps, Organization settings을 선택한다.

 

  • Agent pools을 선택한다.

 

  • Default 풀을 선택하고 Agents 탭을 선택한 다음 New agent를 선택한다.
  • Get the agent 대화 상자에서 Windows 및 에이전트 Download를 선택한다.

 

 

 

5. AzAgent라는 이름으로 C Drive에 디렉터리를 만들고 다운로드 한 에이전트 zip 파일을 이 디렉터리에 추출한다. 

 

 

4. 관리자 모드에서 Powershell을 연다. 경로를 C:\AzAgent로 변경하고 config.cmd를 입력하고 Enter 키를 누른다.

 

5. 다음 세부 사항을 제공한다.

  • 서버 URL 입력 : Azure DevOps 조직 URL
  • 인증 유형 : 인증 유형으로 PATenter key를 누르고 다음 프롬프트에 PAT를 붙여 넣는다.
  • 나머지 구성에는 기본 옵션을 사용하겠다. 명령 실행이 완료 될 때까지 모든 프롬프트에 대해 Enter를 누른다.
  • 에이전트가 등록되면 run.cmd를 입력하고 Enter 키를 눌러 에이전트를 시작한다.

 

에이전트 구성 방법에 대한 자세한 내용을 보려면 여기를 클릭한다.

 

 

 

실습 2: 릴리즈 파이프라인 구성

대상 컴퓨터에는 애플리케이션을 배포하고 selenium 테스트 케이스를 실행하도록 구성된 에이전트가 있다. 릴리스 정의는 Phases를 사용하여 대상 서버에 배포한다.

 

1. Pipelines 탭에서 Releases로 이동한다. Selenium 릴리즈 정의를 선택하고 Edit을 클릭 한다.

 

 

2. Dev 환경을 열어 세 가지 배포 단계(phase)를 확인한다.

 

 

 

  • IIS Deployment phase: 이 단계에서는 다음 태스크를 사용하여 VM에 애플리케이션을 배포한다.
    • IIS Web App Manage: 이 태스크는 에이전트를 등록한 대상 머신에서 실행된다. Port 82, http://localhost:82에서 실행되는 PartsUnlimited라는 이름으로 websiteApplication Pool을 로컬로 생성한다.
    • IIS Web App Deploy: 이 태스크는 Web Deploy를 사용하여 IIS 서버에 애플리케이션을 배포한다.
  • Database deploy phase: 이 태스크에서는 SQL Server Database Deploy을 사용하여 dacpac 파일을 DB 서버에 배포한다.
  • Selenium tests execution: 릴리즈 프로세스의 일부로 UI testing를 실행하는 것은 예기치 않은 변경 사항을 감지하는 좋은 방법이며 어렵지 않다. 자동화 된 브라우저 기반 테스트를 설정하면 수동으로 수행 할 필요없이 애플리케이션의 품질이 향상된다. 이 단계에서는 배포된 웹 애플리케이션에서 Selenium 테스트를 실행한다. 아래 작업은 Selenium을 사용하여 릴리즈 파이프라인에서 웹 사이트를 테스트하는 방법을 설명한다.
    • Visual Studio Test Platform Installer Visual Studio Test Platform Installer 테스크는 nuget.org 또는 지정된 피드에서 Microsoft 테스트 플랫폼을 가져 와서 도구 캐시에 추가한다. 'vstest' 요구 사항을 충족하며 빌드 또는 릴리즈 파이프라인의 후속 Visual Studio 테스트 태스크는 에이전트 컴퓨터에 전체 Visual Studio를 설치하지 않고도 실행할 수 있다.
    • Run Selenium UI tests: 이 태스크는 vstest.console.exe를 사용하여 에이전트 시스템에서 selenium 테스트 케이스를 실행한다. 

 

3. IIS Deployment 단계를 클릭하고 실습 1에서 에이전트를 등록한 Default 에이전트 풀을 선택한다. 에이전트를 다른 에이전트 풀에 등록한 경우에는 이를 선택해야 한다.

 

 

4. SQL Deployment 단계에 대해 위 단계를 반복한다.

 

5. Selenium tests execution 단계를 클릭하고 에이전트 풀을 Default로 설정 한 다음 변경 사항을 Save 한다.

 

주의 : SqlPackage.exe 에러 발생

Microsoft® SQL Server® Data-Tier Application Framework (18.2) 설치가 필요하다. 설치 없이 진행하면 다음 에러가 발생한다.

12-26T00:50:54.1195073Z ##[error]Unable to find the location of Dac Framework (SqlPackage.exe) from registry on machine selenium

 

주의 : cannot find chrome binary 에러 발생

Chrome UI 테스트 중 크롬을 찾지 못하는 에러가 발생한다. PartsUnlimited.SeleniumTests>Base_Class.cs파일을 열어 다음과 같이 수정 한 후 빌드를 진행한다.

if (browserName.Equals("Chrome"))

{

    ChromeOptions options = new ChromeOptions();

    options.BinaryLocation = @"C:\Program Files\Google\Chrome\Application\chrome.exe";

    PropertiesCollection.driver = new ChromeDriver(options);

}


 

 

 

실습 3: 블드 및 릴리즈 트리거

이 실습에서는 Build를 트리거하여 웹 애플리케이션과 함께 Selenium C# 스크립트를 컴파일한다. 결과 바이너리가 Azure VM에 복사되고 마지막으로 selenium 스크립트가 자동화 된 Release의 일부로 실행된다.

 

1. Pipelines 아래의 Pipelines으로 이동한다. Selenium 빌드 파이프라인을 선택하고 우측 상단의 Run pipeline을 클릭하여 빌드를 실행한다.

 

 

2. 이 빌드는 릴리즈에서 사용될 Azure DevOps에 테스트 아티팩트를 게시한다.

 

3. 빌드가 성공하면 릴리즈가 트리거된다. Releases 탭으로 이동하여 진행중인 배포를 확인한다.

 

 

4. Selenium test execution 단계가 시작되면 이전에 프로비저닝 된 VM에 다시 연결하여 UI 테스트 실행을 확인한다.

 

 

 

5. 이 실습에서는 ChromeFirefox 브라우저에서 실행되도록 구성된 네 가지 UI 테스트 시나리오를 실행하겠다.

 

Chrome에서 실행되는 테스트

 

 

Firefox에서 실행되는 테스트

 

릴리즈가 성공하면 Tests 탭을 클릭하여 테스트 결과를 분석한다. Outcome 섹션의 드롭 다운에서 필요한 필터를 선택하여 테스트 및 해당 상태를 확인한다.

 

 

 

요약

이 랩에서는 Azure Pipelines를 사용하여 Azure VM의 여러 브라우저에서 Selenium UI 테스트 사례를 자동화하고 실행하는 방법을 배웠다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함