IT 전용글/Python

Python을 사용한 로봇 프레임 워크에 대해 알아야 할 모든 것

회상형인간 2021. 12. 9. 13:47
 
Python의 로봇 프레임 워크 — Edureka

Python 프로그래밍 언어에는 웹 테스트를 위해 셀레늄과 같은 외부 라이브러리를 사용할 수있는 로봇 프레임 워크가 있습니다. 이 기사에서는 셀레늄 라이브러리를 사용한 웹 테스트의 사용 사례를 통해 Python의 로봇 프레임 워크와 관련된 테스트 사례 및 기타 다양한 용어에 대해 알아 봅니다. 이 블로그에서는 다음 주제에 대해 설명합니다.

  • Python에서 로봇 프레임 워크는 무엇입니까?
  • 로봇 프레임 워크 아키텍처
  • 설치
  • 표준 라이브러리
  • 내장 도구
  • 테스트 케이스
  • 워크 플로 테스트
  • 고수준 테스트
  • 데이터 기반 테스트
  • 키워드
  • 도서관 키워드
  • 사용자 키워드
  • 변수
  • 변수 정의
  • 변수 사용
  • 테스트 케이스 구성
  • 로봇 프레임 워크-셀레늄 라이브러리
  • 설치
  • 브라우저 드라이버
  • 사용 사례 — 로봇 프레임 워크 및 SeleniumLibrary를 사용한 웹 테스트

로봇 프레임 워크는 승인 테스트, 승인 테스트 기반 개발 및 로봇 프로세스 자동화를위한 일반적인 오픈 소스 자동화 프레임 워크입니다. 키워드 기반 테스트 기법을 사용합니다. Java 또는 Python으로 구현할 수있는 테스트 라이브러리로 기능을 확장 할 수 있습니다.

수락 테스트

시스템의 기능을 테스트하는 테스트 기술입니다. 승인 테스트의 목적은 비즈니스 요구 사항에 따라 시스템의 기능을 평가하는 것입니다.

수용 테스트 주도 개발

ATDD 또는 수락 테스트 기반 개발은 비즈니스 고객, 개발자 및 테스터 간의 의사 소통을 기반으로하는 개발 방법론입니다. 그들은 협력하여 기능을 구현하기 전에 승인 테스트를합니다.

로봇 프로세스 자동화

RPA 또는 로봇 프로세스 자동화는 기계 학습 및 AI 기능을 사용하는 소프트웨어로 공명하는 인간의 노력을 편리하게 줄이는 프로세스입니다. RPA는 높은 수준의 반복 가능한 작업을 처리합니다.

로봇 프레임 워크 아키텍처

로봇 프레임 워크는 플랫폼에 독립적이지만 핵심 프레임 워크는 python을 사용하여 구현되지만 JPython (JVM) 및 IronPython (.NET)에서도 실행할 수 있습니다.

테스트 데이터는 프로세스가 프레임 워크를 시작하여 테스트 데이터를 처리하고 로그 및 보고서를 생성 할 때 편집하기 쉬운 형식입니다. 상호 작용은 추가 테스트 도구를 드라이버로 사용하여 대상을 테스트 할 수있는 라이브러리에서 처리됩니다.

설치

Python에 로봇 프레임 워크를 설치하는 데 권장되는 접근 방식은 pip를 사용하는 것입니다. 다음 명령을 사용하여 프레임 워크를 설치할 수 있습니다.

pip install robotframework

성공적으로 설치 한 후 -version 옵션을 사용하여 인터프리터 및 로봇 프레임 워크 버전을 모두 볼 수 있어야합니다.

robot --version 
rebot --version

다음 테스트 라이브러리는 로봇 프레임 워크와 함께 배포됩니다.

  • BuiiltIn
  • 컬렉션
  • 날짜 시간
  • 대화
  • 운영 체제
  • 방법
  • 스크린 샷
  • Telnet
  • XML

핵심 테스트 실행 엔진 외에도 로봇 프레임 워크에 내장 된 몇 가지 지원 도구가 있습니다. 다음 기본 제공 도구는 Python의 로봇 프레임 워크에 있습니다.

  • 리봇
  • Libdoc
  • Testdoc
  • 깔끔한

테스트 케이스

테스트 케이스는 다음 테스트로 분류 할 수 있습니다.

  • 워크 플로 테스트
  • 높은 수준의 테스트
  • 데이터 기반 테스트

로봇 프레임 워크 테스트 케이스는 일반적으로 표 형식으로 작성됩니다. 이를 이해하기 위해 예제를 살펴 보겠습니다.

  • 사용자는 계정을 생성하고 로그인 할 수 있습니다.
  • 사용자는 잘못된 암호로 로그인 할 수 없습니다.

고수준 테스트

로봇 프레임 워크의 테스트 케이스는 위치 인수없이 높은 수준의 키워드로만 구성 할 수 있습니다. 높은 수준의 테스트를 이해하기 위해 아래 예제를 살펴 보겠습니다.

*** Test Cases ***
User can change password
    Given a user has a valid account
    When she changes her password
    Then she can log in with the new password
    And she cannot use the old password anymore

데이터 기반 테스트는 워크 플로를 복제하지 않고도 다양한 테스트 데이터를 허용합니다. 로봇 프레임 워크의 [템플릿] 설정은 테스트 케이스를 데이터 기반 테스트로 설정합니다.

*** Test Cases ***
Invalid password
    [Template]    Creating user with invalid password should fail
    abCD5            ${PWD INVALID LENGTH}
    abCD56789    ${PWD INVALID LENGTH}
    123DEFG       ${PWD INVALID CONTENT}
    abcd56789      ${PWD INVALID CONTENT}
    abCdEfGh      ${PWD INVALID CONTENT}
    abCD56+        ${PWD INVALID CONTENT}

로봇 프레임 워크의 테스트 케이스는 두 소스에서 가져온 키워드로 생성됩니다.

  • 도서관 키워드
  • 사용자 키워드

모든 최하위 레벨 키워드는 Python, Java 등과 같은 프로그래밍 언어를 사용하여 구현할 수있는 표준 라이브러리에 정의되어 있습니다.

로봇 프레임 워크는 표준, 외부 및 사용자 지정 라이브러리로 나눌 수있는 테스트 라이브러리와 함께 제공됩니다. 표준 라이브러리는 내장, 스크린 샷, 운영 체제 등과 같은 핵심 프레임 워크에 있습니다. 외부 라이브러리는 웹 테스트를위한 seleniumlibrary와 같이 별도로 설치됩니다.

라이브러리에서 키워드를 사용하려면 라이브러리 설정을 가져와야합니다. 이를 이해하기 위해 예제를 살펴 보겠습니다.

*** Settings ***
Library           OperatingSystem
Library           lib/LoginLibrary.py

로봇 프레임 워크의 강력한 기능 중 하나는 다른 키워드를 사용하여 맞춤형 고급 키워드를 만들 수 있다는 것입니다. 작동 원리를 이해하기 위해 예제를 살펴 보겠습니다.

*** Keywords ***
Clear login database
    Remove file    ${DATABASE FILE}
 
Create valid user
    [Arguments]    ${username}    ${password}
    Create user    ${username}    ${password}
    Status should be    SUCCESS
 
Creating user with invalid password should fail
    [Arguments]    ${password}    ${error}
    Create user    example    ${password}
    Status should be    Creating user failed: ${error}
 
Login
    [Arguments]    ${username}    ${password}
    Attempt to login with credentials    ${username}    ${password}
    Status should be    Logged In
 
# Keywords below used by higher level tests. Notice how given/when/then/and
# prefixes can be dropped. And this is a comment.
 
A user has a valid account
    Create valid user    ${USERNAME}    ${PASSWORD}
 
She changes her password
    Change password    ${USERNAME}    ${PASSWORD}    ${NEW PASSWORD}
    Status should be    SUCCESS
 
She can log in with the new password
    Login    ${USERNAME}    ${NEW PASSWORD}
 
She cannot use the old password anymore
    Attempt to login with credentials    ${USERNAME}    ${PASSWORD}
    Status should be    Access Denied

변수

변수는 로봇 프레임 워크의 모든 테스트 사례에서 매우 중요한 부분입니다. 모든 데이터는 가변성이거나 변경 될 수있는 테스트 케이스이며 변수를 사용하여 가장 잘 정의됩니다.

테스트 케이스에서 변수를 정의하는 방법을 살펴 보겠습니다.

변수 정의

*** Variables ***
${USERNAME}               janedoe
${PASSWORD}               J4n3D0e
${NEW PASSWORD}           e0D3n4J
${DATABASE FILE}          ${TEMPDIR}${/}robotframework-quickstart-db.txt
${PWD INVALID LENGTH}     Password must be 7-12 characters long
${PWD INVALID CONTENT}    Password must be a combination of lowercase and uppercase letters and numbers

변수 사용

테스트 케이스의 어느 곳에서나 변수를 사용할 수 있으며 키워드에서 가장 일반적으로 인수로 사용됩니다. 이를 이해하기 위해 예제를 살펴 보겠습니다.

*** Test Cases ***
User status is stored in database
    [Tags]    variables    database
    Create Valid User    ${USERNAME}    ${PASSWORD}
    Database Should Contain    ${USERNAME}    ${PASSWORD}    Inactive
    Login    ${USERNAME}    ${PASSWORD}
    Database Should Contain    ${USERNAME}    ${PASSWORD}    Active
 
*** Keywords ***
Database Should Contain
    [Arguments]    ${username}    ${password}    ${status}
    ${database} =     Get File    ${DATABASE FILE}
    Should Contain    ${database}    ${username}t${password}t${status}n

테스트 케이스 구성

로봇 테스트 케이스는 테스트 케이스 파일에 생성되지만 테스트 스위트 계층을 생성하는 디렉토리로 구성 할 수 있습니다.

테스트 케이스 모음을 테스트 스위트라고합니다. 테스트 케이스를 포함하는 모든 파일도 테스트 스위트를 형성합니다. 디렉토리를 사용하여 계층 구조로 테스트 케이스를 구성 할 수 있습니다. 이러한 모든 디렉토리는 디렉토리 이름에서 이름을 가져 오는 고급 테스트 스위트를 만듭니다.

설정 및 해체

테스트의 특정 키워드가 이전 또는 이후에 실행되도록하려면 설정 테이블에서 "Test Setup"및 "Test Teardown"설정을 사용할 수 있습니다. 또한 "Suite Setup"및 "Suite Teardown"을 사용하여 테스트 스위트의 전후에 키워드를 실행할 수도 있습니다.

[템플릿]과 마찬가지로 테스트 케이스에서 사용자 정의 [설정] 및 [테어 다운]을 만들 수도 있습니다. 이를 이해하기 위해 예제를 살펴 보겠습니다.

*** Settings ***
Suite Setup       Clear Login Database
Test Teardown     Clear Login Database

로봇 프레임 워크를 사용하면 태그가 테스트 케이스에 무료 메타 데이터를 제공 할 수 있습니다. 태그는 "Force Tags"및 "Default Tags"를 사용하여 파일에 설정할 수 있습니다.

[템플릿]과 마찬가지로 [태그]를 사용하여 단일 테스트 케이스에 대한 태그를 부여 할 수 있습니다. 태그를 사용하는 방법을 이해하기위한 예를 들어 보겠습니다.

*** Settings ***
Force Tags        quickstart
Default Tags      example    smoke

로봇 프레임 워크-셀레늄 라이브러리

로봇 프레임 워크의 셀레늄 라이브러리는 내부적으로 셀레늄 도구를 사용하는 웹 테스트 라이브러리입니다. Selenium 라이브러리는 python 2.7, 3.4 및 최신 버전에서 잘 작동합니다. 표준 파이썬 인터프리터 외에도 IronPython을 제외하고 Pypy 및 JPython에서 작동합니다.

설치

셀레늄 라이브러리를 설치하려면 파이썬에서 pip를 사용하는 일반적인 접근 방식을 따를 수 있습니다. 다음 명령을 사용하여 python에 seleniumlibrary를 설치합니다.

pip install robotframework-seleniumlibrary

설치가 완료된 후에도 테스트에 사용하려는 운영 체제 및 브라우저에 대한 관련 드라이버를 설치해야합니다. 일반적인 접근 방식은 Chrome 용 Chromedriver와 같은 브라우저 드라이버를 설치하는 것이지만 또는 Webdrivermanager라는 도구를 사용할 수 있습니다.

필요한 경우 최신 버전을 찾고 올바른 위치에 모든 링크 / 파일을 다운로드합니다. 모든 주요 운영 체제를 지원하고 크롬, 오페라 등과 같은 브라우저 다운로드를 지원합니다.

다음 명령을 사용하여 WebdriverManager를 설치할 수 있습니다.

pip install webdrivermanager
webdrivermanager firefox chrome --linkpath /usr/local/bin

셀레늄 라이브러리를 사용하려면 다른 라이브러리와 마찬가지로 "라이브러리"설정을 사용하여 가져와야합니다. 내부적으로 셀레늄 하위 수준 키워드를 사용하는 테스트 케이스를 작성하려면 로봇 프레임 워크 상위 수준 키워드를 사용하는 것이 좋습니다.

다음은 테스트 케이스에서 셀레늄 라이브러리를 사용하는 방법을 보여주는 간단한 예입니다.

*** Settings ***
Documentation     Simple example using SeleniumLibrary.
Library           SeleniumLibrary
 
*** Variables ***
${LOGIN URL}      http://localhost:7272
${BROWSER}        Chrome
 
*** Test Cases ***
Valid Login
    Open Browser To Login Page
    Input Username    demo
    Input Password    mode
    Submit Credentials
    Welcome Page Should Be Open
    [Teardown]    Close Browser
 
*** Keywords ***
Open Browser To Login Page
    Open Browser    ${LOGIN URL}    ${BROWSER}
    Title Should Be    Login Page
 
Input Username
    [Arguments]    ${username}
    Input Text    username_field    ${username}
 
Input Password
    [Arguments]    ${password}
    Input Text    password_field    ${password}
 
Submit Credentials
    Click Button    login_button
 
Welcome Page Should Be Open
    Title Should Be    Welcome Page

이 예에서는 다음 디렉터리를 만들 것입니다.

  1. 응용 프로그램 — 로그인 페이지, 시작 페이지 및 오류 페이지가있는 간단한 로그인 응용 프로그램입니다.
  2. 테스트 — 모든 테스트 케이스가 포함됩니다.
  3. 작업 — 작업이 있습니다.

HTML

  • index.html
  • valid_login.robot
robot tests

report.html

log.html

이것으로 로그인 페이지에서 웹 테스트를 수행하기 위해 seleniumlibrary와 함께 파이썬에서 로봇 프레임 워크를 사용하는 방법을 배웠던이 기사의 끝으로 이동합니다. 이 튜토리얼에서 여러분과 공유 한 모든 내용이 명확하기를 바랍니다.

인공 지능, DevOps, Ethical Hacking과 같은 시장에서 가장 유행하는 기술에 대한 더 많은 기사를 확인하려면 Edureka의 공식 사이트를 참조하십시오 .

Python 및 데이터 과학의 다양한 다른 측면을 설명하는이 시리즈의 다른 기사를 찾아보세요.

1. Python의 기계 학습 분류기

2. Python Scikit-Learn 치트 시트

3. 기계 학습 도구

4. 데이터 과학 및 기계 학습을위한 Python 라이브러리

5. Python의 챗봇

6. 파이썬 컬렉션

7. 파이썬 모듈

8. Python 개발자 기술

9. OOP 인터뷰 질문 및 답변

10. Python 개발자를위한 이력서

11. 파이썬에서 탐색 적 데이터 분석

12. Python의 Turtle 모듈을 사용한 스네이크 게임

13. Python 개발자 연봉

14. 주성분 분석

15. Python 대 C ++

16. Scrapy 튜토리얼

17. 파이썬 SciPy

18. 최소 제곱 회귀 방법

19. Jupyter 노트북 치트 시트

20. 파이썬 기초

21. 파이썬 패턴 프로그램

22. 파이썬 생성기

23. 파이썬 데코레이터

24. 파이썬 스파이더 IDE

25. Python에서 Kivy를 사용하는 모바일 애플리케이션

26. 파이썬을 배우고 연습하기위한 10 가지 최고의 책

27. 파이썬에서 소켓 프로그래밍이란?

28. PyGame을 사용하는 Python의 스네이크 게임

29. 장고 인터뷰 질문 및 답변

30. 상위 10 개의 Python 애플리케이션

31. 파이썬의 해시 테이블과 해시 맵

32. 파이썬 3.8

33. 서포트 벡터 머신

34. 파이썬 튜토리얼

원래 2019 년 10 월 17 일 https://www.edureka.co  게시되었습니다 .