top 6 best python testing frameworks
이 자습서에서는 테스트 프로그래밍에 Python을 사용하는 방법을 설명하고 상위 Python 테스트 프레임 워크의 기능과 비교를 나열합니다.
인공 지능이 널리 적용됨에 따라 Python은 인기있는 프로그래밍 언어가되었습니다.
이 튜토리얼에서는 Python 기반 테스트 프레임 워크와 함께 테스트 프로그래밍에 Python을 사용하는 방법을 다룹니다.
시작하자!!
=> 여기에서 모든 Python 자습서를 확인하십시오.
학습 내용 :
파이썬이란?
전통적인 정의에 따르면 Python은 프로그래머가 소규모 및 대규모 프로젝트에 대해 관리 가능하고 논리적 인 코드를 작성하는 데 도움이되는 해석 된 고수준의 일반 프로그래밍 언어입니다.
Python의 몇 가지 이점은 다음과 같습니다.
- 컴파일이 없으면 Edit-Test-Debug주기가 빠르게 실행됩니다.
- 쉬운 디버깅
- 광범위한 지원 라이브러리
- 배우기 쉬운 데이터 구조
- 높은 생산성
- 팀 협업
Python에서 작업
- 인터프리터는 소스 파일에서 파이썬 코드를 읽고 구문 오류를 검사합니다.
- 코드에 오류가없는 경우 인터프리터는 코드를 동일한 '바이트 코드'로 변환합니다.
- 그런 다음이 바이트 코드는 Python 가상 머신 (PVM)으로 전송되어 오류가있는 경우 바이트 코드가 다시 컴파일됩니다.
Python 테스트 란 무엇입니까?
- 자동 테스트는 테스트 세계에서 잘 알려진 컨텍스트입니다. 사람이 아닌 스크립트를 사용하여 테스트 계획이 실행되는 곳입니다.
- Python은 시스템에 대한 자동화 된 테스트를 지원하는 도구 및 라이브러리와 함께 제공됩니다.
- Python 테스트 케이스는 비교적 작성하기 쉽습니다. Python 사용이 증가함에 따라 Python 기반 테스트 자동화 프레임 워크도 인기를 얻고 있습니다.
Python 테스트 프레임 워크 목록
다음은 알아야 할 몇 가지 Python 테스트 프레임 워크입니다.
- 로봇
- PyTest
- Unittest
- DocTest
- Nose2
- 증언
Python 테스트 도구 비교
이러한 프레임 워크를 간단한 비교 표에 요약 해 보겠습니다.
내 라우터 로그인 및 비밀번호는 무엇입니까
특허 | 부분의 | 범주 | 범주 특징 | |
---|---|---|---|---|
pytest.warns () | expected_warning : Expectation (, match) | 함수로 경고 어설 션 | ||
로봇 ![]() | 자유 소프트웨어 (ASF 라이선스} | Python 일반 테스트 라이브러리. | 수락 테스트 | 키워드 기반 테스트 접근 방식. |
PyTest ![]() | 자유 소프트웨어 (MIT 라이선스) | 독립형으로 소형 테스트 스위트를 허용합니다. | 단위 테스트 | 테스트를 더 쉽게하기위한 특별하고 간단한 클래스 픽스쳐. |
unittest ![]() | 자유 소프트웨어 (MIT 라이선스) | Python 표준 라이브러리의 일부입니다. | 단위 테스트 | 빠른 테스트 수집 및 유연한 테스트 실행. |
DocTest ![]() | 자유 소프트웨어 (MIT 라이선스) | Python 표준 라이브러리의 일부입니다. | 단위 테스트 | 명령 프롬프트 및 포함 애플리케이션을위한 Python 대화 형 셸. |
Nose2 ![]() | 자유 소프트웨어 (BSD 라이선스) | 추가 기능 및 플러그인과 함께 unittest 기능을 수행합니다. | unittest 확장 | 많은 수의 플러그인. |
증언 ![]() | 자유 소프트웨어 (ASF 라이선스) | 추가 기능 및 플러그인과 함께 unittest 및 nose 기능을 수행합니다. | unittest 확장 | 테스트 발견 향상. |
(약어 : MIT = Massachusetts Institute of Technology (1980), BSD = 버클리 소프트웨어 배포 (1988), ASF = 아파치 소프트웨어 재단 (2004) )
시작하자!!
# 1) 로봇
- 가장 널리 사용되는 로봇 프레임 워크는 Python을 기반으로하는 오픈 소스 자동화 테스트 프레임 워크입니다.
- 이 프레임 워크는 전적으로 Python으로 개발되었으며 수락 테스트 과 티 is-driven 개발. 키워드 스타일은 로봇 프레임 워크에서 테스트 케이스를 작성하는 데 사용됩니다.
- Robot은 Java 및 .Net을 실행할 수 있으며 데스크톱 애플리케이션, 모바일 애플리케이션, 웹 애플리케이션 등을 위해 Windows, Mac OS 및 Linux와 같은 크로스 플랫폼에서 자동화 테스트를 지원합니다.
- 수락 테스트와 함께 Robot은 RPA (Robotic Process Automation)에도 사용됩니다.
- 씨 (Python 용 패키지 설치 프로그램)은 로봇 설치에 적극 권장됩니다.
- 테이블 형식 데이터 구문, 키워드 기반 테스트, 풍부한 라이브러리 및 도구 세트, 병렬 테스트의 사용은 테스터들 사이에서 인기를 얻게하는 Robot의 강력한 기능 중 일부입니다.
예:
*** Settings *** Library SeleniumLibrary *** Variables *** ${SERVER} localhost:7272 ${BROWSER} Firefox ${DELAY} 0 ${VALID USER} demo ${VALID PASSWORD} mode ${LOGIN URL} http://${SERVER}/ ${WELCOME URL} http://${SERVER}/welcome.html ${ERROR URL} http://${SERVER}/error.html *** Keywords *** Open Browser To Login Page Open Browser ${LOGIN URL} ${BROWSER} Maximize Browser Window Set Selenium Speed ${DELAY} Login Page Should Be Open Title Should Be Login Page Go To Login Page Go To ${LOGIN URL} Login Page Should Be Open 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 Location Should Be ${WELCOME URL} Title Should Be Welcome Page
다음은 샘플입니다. 실패한 테스트 실행.
다음은 샘플입니다. 성공적인 테스트 실행.
패키지 / 방법 :
패키지 이름 | 일 | 패키지 가져 오기 |
---|---|---|
운영() | 테스트를 실행합니다. | 로봇 가져 오기 실행에서 |
run_cli () | 명령 줄 인수로 테스트를 실행합니다. | 로봇 가져 오기 run_cli에서 |
바운스 () | 테스트 출력을 처리합니다. | 로봇 수입 리봇에서 |
API 링크 : 로봇 프레임 워크 사용자 가이드
다운로드 링크: 로봇
# 2) 파이 테스트
- PyTest는 일반적으로 다목적이지만 특히 다음을위한 오픈 소스 Python 기반 테스트 프레임 워크입니다. 기능 및 API 테스트.
- 씨 (Python 용 패키지 설치 프로그램)은 PyTest 설치에 필요합니다.
- API, 데이터베이스 및 UI를 테스트하기 위해 간단하거나 복잡한 텍스트 코드를 지원합니다.
- 간단한 구문은 쉬운 테스트 실행에 도움이됩니다.
- 풍부한 플러그인과 병렬로 테스트를 실행할 수 있습니다.
- 특정 테스트 하위 집합을 실행할 수 있습니다.
예:
import pytest //Import unittest module// def test_file1_method(): //Function inside class// x=5 y=6 assert x+1 == y,'test failed'
테스트를 실행하려면 py.test 명령.
참조 용 스크린 샷 :
(영상 출처 )
패키지 / 방법 :
함수 | 매개 변수 | 일 |
---|---|---|
pytest.approx () | 예상, rel = 없음, abs = 없음, nan_ok = 거짓 | 두 숫자 또는 두 개를 주장 숫자 세트는 대략 약간의 차이와 같습니다. |
pytest.fail () | msg (str) pytrace (bool) | 실행중인 테스트가 명시 적으로 실패하면 메시지가 표시됩니다. |
pytest.skip () | allow_module_level (bool) | 표시된 메시지와 함께 실행중인 테스트를 건너 뜁니다. |
pytest.exit () | msg (str) 반환 코드 (int) | 테스트 프로세스를 종료합니다. |
pytest.main () | args = 없음 plugins = 없음 | 프로세스 내 테스트 실행이 완료되면 종료 코드를 반환합니다. |
pytest.raises () | expected_exception : 기대 (, 일치) | 코드 블록 호출이 expected_exception을 발생 시키거나 실패 예외를 발생시키는 지 확인 |
특정 파일로 작성된 테스트에 액세스하려면 아래 명령을 사용합니다.
py.test
Pytest 정착물 : Pytest Fixture는 코드 반복을 피하기 위해 테스트 메서드를 실행하기 전에 코드를 실행하는 데 사용됩니다. 기본적으로 데이터베이스 연결을 초기화하는 데 사용됩니다.
아래와 같이 PyTest 조명기를 정의 할 수 있습니다.
@pytest.fixture
역설: Assertion은 true 또는 false를 반환하는 조건입니다. 어설 션이 실패하면 테스트 실행이 중지됩니다.
다음은 예입니다.
def test_string_equal(): assert double(55) == 62 assert 25 == 62 + where 25 = double(55)
API 링크 : Pytest API
다운로드 링크: Pytest
# 3) 단위 테스트
- Unittest는 최초의 Python 기반입니다. 자동화 된 단위 테스트 프레임 워크 Python 표준 라이브러리와 함께 작동하도록 설계되었습니다.
- 테스트 슈트 및 테스트 조직의 재사용을 지원합니다.
- JUnit에서 영감을 받아 테스트 컬렉션, 테스트 독립성, 테스트를위한 설정 코드 등을 포함한 테스트 자동화를 지원합니다.
- 그것은 또한 PyUnit.
- Unittest2 Unittest에 추가 된 추가 새 기능의 백 포트입니다.
Unittest의 표준 워크 플로 :
- 프로그램 코드에서 Unittest 모듈을 가져옵니다.
- 자신 만의 클래스를 정의 할 수 있습니다.
- 정의한 클래스 내부에 함수를 만듭니다.
- 테스트 케이스를 실행하기 위해 코드 하단에 main 메소드 인 unittest.main ()을 배치합니다.
예:
import unittest //Import unittest module// def add(x,y): return x + y class Test(unittest.TestCase): //Define your class with testcase// def addition(self): self.assertEquals(add(4,5),9) //Function inside class// if __name__ == '__main__': unittest.main() //Insert main() method//
참조 용 스크린 샷 :
(영상 출처 )
패키지 / 방법 :
방법 | 일 |
---|---|
addTest () | 테스트 스위트에 테스트 메소드를 추가하십시오. |
설정() | 테스트 설치를 준비하기 위해 테스트 메소드 실행 전에 호출됩니다. |
tearDown () | 테스트에서 예외가 발생하더라도 테스트 메서드 실행 후에 호출됩니다. |
setUpClass () | 개별 클래스의 테스트 후에 호출됩니다. |
tearDownClass () | 개별 클래스의 테스트 후에 호출됩니다. |
운영() | 결과로 테스트를 실행하십시오. |
디버그 () | 결과없이 테스트를 실행하십시오. |
발견하다() | 특정 디렉토리의 하위 디렉토리에서 모든 테스트 모듈을 찾습니다. |
assertEqual (a, b) | 두 개체의 동등성을 테스트합니다. |
asserTrue / assertFalse (조건) | 부울 조건을 테스트합니다. |
( 노트 : unittest.mock () 시스템 부품을 모의 객체로 대체 할 수있는 Python 테스트 용 라이브러리입니다. 핵심 모의 수업 테스트 스위트를 쉽게 만드는 데 도움이됩니다.)
API 링크 : Unittest API
다운로드 링크: Unittest
# 4) DocTest
- Doctest는 Python의 표준 배포에 포함 된 모듈로 화이트 박스 단위 테스트.
- 대화식 파이썬 세션을 검색하여 필요한대로 정확히 작동하는지 확인합니다.
- 독 스트링, Python 대화 형 셸 및 Python introspection (런타임에서 개체의 속성 결정)과 같은 선택적 Python 기능을 사용합니다.
- 핵심 기능 :
- 독 스트링 업데이트
- 회귀 테스트 수행
- testfile () 및 testmod () 함수는 기본 인터페이스를 제공하는 데 사용됩니다.
예:
def test(n): import math if not n >= 0: raise ValueError('n must be >= 0') //number should be 0 or greater than 0 if math.floor(n) != n: raise ValueError('n must be exact integer') //Error when number is not an integer if n+1 == n: raise OverflowError('n too large') //Error when number is too large r = 1 f = 2 while f <= n: //Calculate factorial r *= f f += 1 return r if __name__ == '__main__': import doctest //Import doctest doctest.testmod() //Calling the testmod method
참조 용 스크린 샷 :
(영상 출처 )
패키지 / 기능 :
함수 | 매개 변수 | |
---|---|---|
nose.tools.intest | (펑크) | 방법 또는 기능은 테스트라고 할 수 있습니다. |
doctest.testfile () | 파일 이름 (필수) (, 모듈 상대) (, 이름) (, 패키지) (, globs) (, verbose) (, 보고서) (, 옵션 플래그) (, extraglobs) (, raise_on_error) (, 파서) (, 인코딩) | |
doctest.testmod () | m) (, 이름) (, glob) (, verbose) (, 보고서) (, 옵션 플래그) (, extraglobs) (, 오류 발생시) (, exclude_empty) | |
doctest.DocFileSuite () | * paths, (module_relative) (, package) (, setUp) (, tearDown) (, globs) (, optionflags) (, 파서) (, 인코딩) | |
doctest.DocTestSuite () | (모듈) (, globs) (, extraglobs) (, test_finder) (, setUp) (, tearDown) (, checker) |
노트 : 텍스트 파일에서 대화 형 예제를 확인하기 위해 testfile () 함수를 사용할 수 있습니다.
doctest.testfile (“example.txt”)
명령 줄에서 직접 테스트를 실행할 수 있습니다.
python factorial.py
API 링크 : DocTest API
다운로드 링크: Doctest
# 5) 코 2
- Nose2는 Nose의 후속 제품이며 Python 기반입니다. 단위 테스트 프레임 워크 Doctest와 UnitTest를 실행할 수 있습니다.
- Nose2는 unittest 따라서 그것은 unittest 확장 또는 테스트를 간단하고 쉽게 할 수 있도록 설계된 플러그인으로 unittest.
- Nose는 unittest.testcase의 집합 테스트를 사용하고 테스트 및 예외 작성을위한 여러 기능을 지원합니다.
- Nose는 자주 쓰는 대신 한 번에 정의 할 패키지 픽스처, 클래스, 모듈 및 복잡한 초기화를 지원합니다.
예:
from mynum import * import nose def test_add_integers(): assert add(5, 3) == 8 def test_add_floats(): assert add(1.5, 2.5) == 4 def test_add_strings(): nose.tools.assert_raises(AssertionError, add, 'paul', 'carol') // To throw one of the expected exception to pass if __name__ == '__main__': nose.run()
참조 용 스크린 샷 :
패키지 / 방법 :
방법 | 매개 변수 | 일 |
---|---|---|
nose.tools.ok_ | (expr, msg = 없음) | 주장 할 바로 가기. |
nose.tools.ok_ | (a, b, msg = 없음) | 'assert a == b, '% r! = % r'% (a, b) |
nose.tools.make_decorator | (펑크) | 주어진 함수에 대한 메타 데이터를 복제합니다. |
nose.tools.raises | (*예외) | 통과 할 예상 예외 중 하나를 throw합니다. |
nose.tools.timed | (한도) | 테스트가 통과해야하는 시간 제한을 지정합니다. |
nose.tools.with_setup | (설정 = 없음, 분해 = 없음) | 테스트 기능에 설정 방법을 추가합니다. |
nose.tools.nottest | (펑크) | 방법이나 기능은 테스트라고 할 수 없습니다. |
API 링크 : Nose2 용 플러그인
다운로드 링크: Nose2
# 6) 증언
- Testify는 unittest와 nose를 대체하도록 설계되었습니다. Testify는 unittest보다 더 고급 기능이 있습니다.
- Testify는 시맨틱 테스트의 Java 구현으로 널리 사용됩니다 (소프트웨어 테스트 사양을 배우고 구현하기 쉽습니다).
- 실행할 수 있는 자동화 된 단위, 통합 및 시스템 테스트 증언하기가 더 쉽습니다.
풍모
- 고정 방법에 대한 간단한 구문.
- 즉석에서 테스트 발견.
- 클래스 수준 설정 및 분해 고정물 방법.
- 확장 가능한 플러그인 시스템.
- 테스트 유틸리티를 다루기 쉽습니다.
예:
from testify import * class AdditionTestCase(TestCase): @class_setup def init_the_variable(self): self.variable = 0 @setup def increment_the_variable(self): self.variable += 1 def test_the_variable(self): assert_equal(self.variable, 1) @suite('disabled', reason='ticket #123, not equal to 2 places') def test_broken(self): # raises 'AssertionError: 1 !~= 1.01' assert_almost_equal(1, 1.01, threshold=2) @teardown def decrement_the_variable(self): self.variable -= 1 @class_teardown def get_rid_of_the_variable(self): self.variable = None if __name__ == '__main__': run()
참조 용 스크린 샷 :
(영상 출처 )
패키지 / 방법 :
패키지 이름 | 일 | 패키지 가져 오기 |
---|---|---|
주장하다 | 시스템 테스트를위한 포괄적 인 테스트 도구를 제공합니다. | import 'github.com/stretchr/testify/assert' |
모조품 | 개체 및 호출을 테스트하는 데 유용합니다. | import 'github.com/stretchr/testify/mock' |
요구하다 | 어설 션과 동일하게 작동하지만 테스트가 실패하면 테스트 실행을 중지합니다. | import 'github.com/stretchr/testify/require' |
후 | 테스트 스위트 구조 및 메소드를 생성하기위한 로직을 제공합니다. | 가져 오기 'github.com/stretchr/testify/suite' |
API 링크 : Testify의 패키지 파일
다운로드 링크: 증언
추가 Python 테스트 프레임 워크
지금까지 가장 인기있는 Python 테스트 프레임 워크를 검토했습니다. 적다 이 목록에 더 많은 이름이 추가 될 것입니다.
# 7) 행동
- Behave는 BDD (행동 주도 개발) 또한 사용되는 테스트 프레임 워크 블랙 박스 테스트 . Behave는 테스트 작성에 자연어를 사용하며 유니 코드 문자열과 함께 작동합니다.
- Behave directory contains 기능 파일 일반 텍스트 형식은 자연어처럼 보이며 Python 단계 구현 .
API 링크 : 동작 사용자 가이드
다운로드 링크: 굴다
# 8) 상추
- 상추는 행동 기반 개발 테스트 . 테스트 프로세스를 쉽고 확장 할 수 있습니다.
- 양상추에는 다음과 같은 단계가 포함됩니다.
- 행동 설명
- Python의 단계 정의.
- 코드 실행
- 테스트를 통과하도록 코드를 수정합니다.
- 수정 된 코드 실행.
- 이러한 단계는 소프트웨어에 오류가 없도록 만들고 품질을 향상시키기 위해 3-4 회 수행됩니다.
자주 묻는 질문과 답변
이 주제에 대한 가장 일반적인 FAQ를 살펴 보겠습니다.
Q # 1) Python이 자동화에 사용되는 이유는 무엇입니까?
대답: 'Python은 시스템에 대한 자동화 된 테스트를 지원하는 도구 및 라이브러리와 함께 제공'되므로 Python을 테스트에 사용하는 다른 몇 가지 이유가 있습니다.
- Python은 객체 지향적이고 기능적이므로 프로그래머는 함수와 클래스가 요구 사항에 따라 적합한 지 여부를 결정할 수 있습니다.
- Python은 'Pip'을 설치 한 후 테스트 할 수있는 유용한 패키지의 풍부한 라이브러리를 제공합니다.
- 상태 비 저장 함수와 간단한 구문은 읽기 쉬운 테스트를 만드는 데 유용합니다.
- Python은 테스트 케이스와 테스트 코드 사이의 다리 역할을합니다.
- Python은 동적 덕 타이핑을 지원합니다.
- 잘 구성된 IDE와 BDD 프레임 워크에 대한 우수한 지원을 제공합니다.
- 풍부한 명령 줄 지원은 수동 검사를 수행하는 데 유용합니다.
- 단순하고 좋은 구조, 모듈성, 풍부한 도구 세트 및 패키지는 규모 개발에 유용 할 수 있습니다.
Q # 2) Python 테스트를 구성하는 방법은 무엇입니까?
대답: Python으로 테스트를 만들 때 아래에 설명 된 두 가지를 고려해야합니다.
- 테스트하려는 시스템의 모듈 / 부분은 무엇입니까?
- 어떤 유형의 테스트를 선택하고 있습니까 (단위 테스트 또는 통합 테스트)?
Python 테스트의 전체 구조는 입력, 실행할 테스트 코드, 출력 및 예상 결과와 출력 비교와 같은 테스트의 구성 요소를 결정하는 다른 것만 큼 간단합니다.
.jar 파일을 어떻게 실행합니까
Q # 3) Python으로 작성된 자동화 도구는 무엇입니까?
대답: 빌드 아웃 Python으로 작성되고 확장 된 자동화 도구이며 소프트웨어 어셈블리 자동화에 사용됩니다. 빌드 아웃은 개발에서 배포까지 모든 소프트웨어 단계에 적용 할 수 있습니다.
이 도구는 3 가지 핵심 원칙을 기반으로합니다.
- 반복성 : 동일한 환경에서 개발 된 프로젝트 구성은 이력에 관계없이 동일한 결과를 생성해야한다고 명시합니다.
- 구성 요소 화 : 소프트웨어 서비스에는 자체 모니터링 도구가 포함되어야하며 제품 배포 중에 모니터링 시스템을 구성해야합니다.
- 오토메이션: 소프트웨어 배포는 고도로 자동화되고 시간을 절약해야합니다.
Q # 4) Python을 Selenium과 함께 사용할 수 있습니까?
대답: 예. Python 언어는 Selenium과 함께 테스트를 수행하는 데 사용됩니다. Python API는 Selenium을 통해 브라우저와 연결하는 데 유용합니다. Python Selenium 조합은 Selenium WebDriver를 사용하여 기능 / 수락 테스트를 작성하는 데 사용할 수 있습니다.
Q # 5) Selenium with Python은 좋은가요?
대답: Selenium과 Python이 좋은 조합으로 간주되는 몇 가지 이유가 있습니다.
- Selenium에는 빠른 테스트 자동화를 지원하는 가장 강력한 도구 세트가 있습니다.
- Selenium은 실제 애플리케이션 동작을 검사하는 데 도움이되는 웹 애플리케이션 테스트를 수행하기위한 전용 테스트 기능을 제공합니다.
- 반면에 Python은 간단한 키워드 구조를 가진 고수준의 객체 기반의 사용자 친화적 인 스크립팅 언어입니다.
이제 Python과 함께 Selenium을 사용할 때 아래와 같은 몇 가지 이점이 있습니다.
- 코딩과 읽기가 쉽습니다.
- Python API는 Selenium을 통해 브라우저에 연결하는 데 매우 유용합니다.
- Selenium은 설계 변형에 관계없이 Python의 표준 명령을 다양한 브라우저로 보냅니다.
- Python은 다른 프로그래밍 언어보다 비교적 간단하고 간결합니다.
- Python은 자동화 테스트를 수행하기 위해 Python과 함께 Selenium을 완전히 처음 사용하는 사람들을 지원하는 대규모 커뮤니티와 함께 제공됩니다.
- 항상 자유롭고 개방적인 프로그래밍 언어입니다.
- Selenium WebDriver는 Python과 함께 Selenium을 사용하는 또 다른 강력한 이유입니다. Selenium WebDriver는 Python의 쉬운 사용자 인터페이스에 대한 강력한 바인딩 지원을 제공합니다.
Q # 6) 최고의 Python 테스트 프레임 워크를 선택하기위한 조치는 무엇입니까?
대답: 최고의 Python 테스트 프레임 워크를 선택하려면 다음 사항을 고려해야합니다.
- 스크립트의 품질과 구조가 귀하의 목적을 충족시키는 것입니다. 프로그래밍 스크립트는 이해 / 유지하기 쉽고 결함이 없어야합니다.
- Python의 프로그래밍 구조는 속성, 명령문, 함수, 연산자, 모듈 및 표준 라이브러리 파일로 구성된 테스트 프레임 워크를 선택하는 데 중요한 역할을합니다.
- 테스트를 얼마나 쉽게 생성 할 수 있으며 얼마나 재사용 할 수 있습니까?
- 테스트 / 테스트 모듈 실행에 채택 된 방법 (모듈 실행 기술).
Q # 7) 최고의 Python 테스트 프레임 워크를 선택하는 방법은 무엇입니까?
대답: 각 프레임 워크의 장점과 한계를 이해하는 것이 최고의 Python 테스트 프레임 워크를 선택하는 더 좋은 방법입니다. 살펴 보겠습니다 –
로봇 프레임 워크 :
장점 :
- 키워드 기반 테스트 접근 방식은 더 쉽게 읽을 수있는 테스트 사례를 만드는 데 도움이됩니다.
- 여러 API
- 쉬운 테스트 데이터 구문
- Selenium Grid를 통한 병렬 테스트를 지원합니다.
제한 사항 :
- 사용자 정의 HTML 보고서를 작성하는 것은 Robot에서 매우 까다 롭습니다.
- 병렬 테스트에 대한 지원이 적습니다.
- Python 2.7.14 이상이 필요합니다.
Pytest :
장점 :
- 컴팩트 테스트 스위트를 지원합니다.
- 디버거 나 명시적인 테스트 로그가 필요하지 않습니다.
- 여러 비품
- 확장 가능한 플러그인
- 쉽고 간단한 테스트 생성.
- 적은 버그로 테스트 케이스 생성 가능
제한 사항 :
- 다른 프레임 워크와 호환되지 않습니다.
Unittest :
장점 :
- 추가 모듈이 필요하지 않습니다.
- 초보자 수준의 테스터가 배우기 쉽습니다.
- 간단하고 쉬운 테스트 실행.
- 신속한 테스트 보고서 생성.
한계
- Python의 snake_case 이름 지정과 JUnit의 camelCase 이름 지정은 약간의 혼란을 야기합니다.
- 테스트 코드의 의도가 명확하지 않습니다.
- 엄청난 양의 상용구 코드가 필요합니다.
Doctest :
장점 :
- 소규모 테스트를 수행하는 데 좋은 옵션입니다.
- 메서드 내의 테스트 문서는 메서드 작동 방식에 대한 추가 정보도 제공합니다.
한계
- 인쇄 된 출력 만 비교합니다. 출력이 변하면 테스트 실패가 발생합니다.
코 2 :
장점 :
- Nose 2는 unittest보다 더 많은 테스트 구성을 지원합니다.
- 여기에는 상당한 활성 플러그인 세트가 포함됩니다.
- 오류에 대한 자세한 정보를 제공하는 unittest와 다른 API입니다.
제한 사항 :
- 타사 플러그인을 설치하는 동안 Nose2는 Python 3을 지원하지만 타사 플러그인은 지원하지 않으므로 설치 도구 / 배포 패키지를 설치해야합니다.
증언 :
장점 :
- 이해하고 사용하기 쉽습니다.
- 단위, 통합 및 시스템 테스트를 쉽게 만들 수 있습니다.
- 관리 및 재사용이 가능한 테스트 구성 요소.
- Testify에 새로운 기능을 추가하는 것은 쉽습니다.
제한 사항 :
- 처음에 Testify는 unittest와 Nose를 대체하기 위해 개발되었지만 pytest로 전환하는 프로세스가 켜져 있으므로 향후 몇 가지 프로젝트에 대해 Testify를 사용하지 않는 것이 좋습니다.
프레임 워크 동작 :
장점 :
- 모든 유형의 테스트 케이스를 쉽게 실행할 수 있습니다.
- 상세한 추론 및 사고
- QA / Dev 출력의 명확성.
제한 사항 :
- 블랙 박스 테스트 만 지원합니다.
Lettuce 프레임 워크 :
장점 :
- 여러 테스트 시나리오를 만드는 간단한 언어.
- 블랙 박스 테스트를위한 동작 중심 테스트 케이스에 유용합니다.
제한 사항 :
- 개발자, 테스터 및 이해 관계자의 강력한 조정이 필요합니다.
비즈니스 요구 사항에 적합한 기준을 개발하는 데 도움이되는 위의 장점과 한계를 고려하여 가장 적합한 Python 테스트 프레임 워크를 선택할 수 있습니다.
Q # 8) Python 자동화에 가장 적합한 프레임 워크는 무엇입니까?
대답: 장점과 한계를 고려하면서 테스트 유형을 최상의 테스트 프레임 워크를 선택하는 방법 중 하나로 고려할 수 있습니다.
- 기능 테스트 : 로봇, PyTest, Unittest
- 행동 기반 테스트 : 행동, 양상추
로봇 Python 테스트를 처음 접하고 탄탄한 시작을 원하는 사람들을위한 최고의 프레임 워크입니다.
결론
Subunit, Trial, Test 리소스, Sancho, Testtools는 Python 테스트 프레임 워크 목록에 추가 된 이름입니다. 그러나 Python 테스트가 테스트 세계에 도입 된 비교적 새로운 개념 인 한 대중화 된 도구는 몇 개 밖에 없습니다.
무료 YouTube to mp3 변환기 앱
회사는 이러한 도구를 더 잘 이해하고 테스트를 수행하기 쉽게 만들기 위해 노력하고 있습니다. 풍부하고 정확한 클래스 픽스쳐, 플러그인 및 패키지를 통해 이러한 도구는 Python 테스트를 수행하는 데 능숙하고 선호 될 수 있습니다.
한편, unittest에서 Testify까지 위에서 언급 한 프레임 워크는 의도 한 시스템 성능을 달성하는 데 필요한 많은 지원과 서비스를 제공하고 있습니다.
= >> 문의하기 여기에 목록을 제안합니다.추천 도서
- Python 소개 및 설치 프로세스
- 초보자를위한 Python 자습서 (무료 Python 교육 실습)
- 30 개 이상의 최고의 셀레늄 튜토리얼 : 실제 예제로 셀레늄 배우기
- 자동화 테스트 란 무엇입니까 (테스트 자동화 시작을위한 궁극적 인 가이드)
- 단위 테스트, 통합 테스트 및 기능 테스트의 차이점
- 2021 년 가장 인기있는 10 가지 로봇 프로세스 자동화 RPA 도구
- 자동화 테스트를위한 25 가지 최고의 Java 테스트 프레임 워크 및 도구 (3 부)
- 8 가지 BDD (Best Behavior Driven Development) 도구 및 테스트 프레임 워크