testproject python sdk tutorial
TestProject Python SDK 튜토리얼 : 기존 Selenium 및 Appium 기반 테스트 강화이 자습서는 TestProject Python SDK를 시작하는 데 도움이됩니다. SDK의 가장 강력한 기능을 설치, 구성 및 사용하는 방법을 알아보십시오.
Selenium과 Appium은 수년간 데스크톱 브라우저 및 모바일 기반 테스트를위한 가장 인기있는 오픈 소스 테스트 프레임 워크 중 하나였습니다.
그만큼 TestProject Python SDK 는 이러한 도구를 기반으로하며 TestProject 플랫폼의 강력한 기능을 제공하여보고 플랫폼에 대한 멋진 HTML 및 PDF 보고서, 자동 브라우저 감지, 드라이버 구성 등을 제공합니다.
그리고 가장 좋은 점은 TestProject 플랫폼과 SDK를 사용하는 것이 영원히 무료라는 것입니다. SDK도 오픈 소스이므로 프로젝트에 기여하고 싶다면 할 수 있습니다!
학습 내용 :
TestProject Python SDK 란 무엇입니까?
이 가이드에서는 TestProject Python SDK를 시작하는 방법, 기존 Selenium 및 Appium 기반 테스트에서 TestProject 플랫폼을 활용하는 방법, SDK의 가장 강력한 기능 중 일부를 사용하는 방법을 알아 봅니다.
노트 : 테스트가 Python 이외의 언어로 작성 되었습니까? 걱정할 필요가 없습니다. TestProject는 Java 및 C # 용 SDK도 제공하며 가까운 장래에 더 많은 언어가 제공 될 예정입니다.
설치 및 구성
=> 무료 TestProject 가입을 위해이 페이지를 방문하십시오Python SDK는 PyPI , Python 패키지 색인. 여기서는 작동하는 Python 설치가 있다고 가정하고 SDK를 설치하기 만하면됩니다. 다음 명령을 실행하십시오.
pip install testproject-python-sdk
그러면 Selenium 및 Python Appium 클라이언트를 포함하여 SDK 및 필수 종속성이 설치됩니다.
SDK 사용을 시작하기 전에 두 가지 작업을 더해야합니다.
# 1) 컴퓨터에 TestProject 에이전트를 설치하고 구성합니다.
TestProject 에이전트는 브라우저 드라이버 설치 및 구성을 담당하고 SDK에서 생성 한 보고서를 TestProject 플랫폼으로 전송합니다.
에 계정을 만든 후 TestProject 플랫폼 (다시 말하지만, 이것은 무료입니다), 에이전트를 다운로드 할 수 있습니다.
다운로드 후 설치하고 시작해야합니다. 기본적으로 에이전트는 http : // localhost : 8585. 에이전트를 다른 포트 또는 완전히 다른 시스템에서 실행하려는 경우 문제가되지 않습니다. 이 경우 환경 변수에 올바른 에이전트 주소를 지정하기 만하면됩니다. TP_AGENT_URL SDK에 실행 위치를 알립니다.
# 2) 개발자 토큰 가져 오기 및 구성 :
에이전트와 통신하려면 개발자 토큰도 필요합니다. 에이전트를 설치 한 후 아래 이미지와 같이 TestProject 플랫폼 사이트에서 개발 토큰을 얻을 수 있습니다.
환경 변수에 개발자 토큰 지정 TP_DEV_TOKEN SDK가 인식하도록합니다. 또는 새 드라이버 세션을 생성 할 때이를 인수로 지정할 수 있습니다.
SDK를 다운로드하고, 에이전트를 설치, 구성 및 시작하고, 개발자 토큰을 얻고 구성한 후에는 사용할 수 있습니다.
첫 번째 TestProject 기반 셀레늄 테스트 만들기
TestProject 데모 웹 앱으로 이동하는 Selenium 기반 테스트가 있다고 가정 해 보겠습니다. 로그인 자격 증명을 제공하고 로그인 작업이 성공적으로 완료되었음을 나타 내기 위해 인사를 받았는지 확인합니다. 또한 Pytest 단위 테스트 프레임 워크를 사용하여이 테스트를 실행하고 어설 션을 실행한다고 가정 해 보겠습니다.
이러한 테스트는 다음과 같습니다.
from selenium import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.quit()
위의 예에서는 Chrome을 브라우저로 사용합니다. Chrome 외에도 SDK는 다음 데스크톱 브라우저도 지원합니다.
- Firefox
- 가장자리
- 인터넷 익스플로러
- 원정 여행
이 예에서는 페이지 개체와 같은 Selenium 기반 테스트에서 일반적인 추상화 패턴을 사용하지 않았지만 이러한 패턴을 사용하면 전혀 문제가되지 않습니다. 실제로 테스트 흐름 (작업, 테스트 데이터)과 웹 페이지의 구현 세부 정보 (요소 로케이터)를 명확하게 구분하므로이를 권장합니다.
위에 표시된 모든 설치 및 구성 단계를 완료 한 후이 테스트를 TestProject 기반 테스트로 전환하기 위해해야 할 일은 아래 설명 된대로 import 문을 바꾸는 것입니다.
from selenium import webdriver
이것으로 Relace :
from src.testproject.sdk.drivers import webdriver
그게 다야! 지금 테스트를 실행하면 SDK는 TestProject 에이전트에서 드라이버 인스턴스를 요청하고이를 사용하여 테스트를 실행합니다. 또한보고 지침을 TestProject 플랫폼으로 보낸 다음 HTML 보고서를 만드는 데 사용됩니다. 이것들을 한번 보시죠!
TestProject 플랫폼에서 보고서 검사
TestProject로 이동하여 메뉴에서 'Reports'옵션을 선택하면 방금 실행 한 테스트에 대해 새 보고서가 생성되었음을 알 수 있습니다. 아래 이미지를 참조하십시오.
L2 레벨 pdf에 대한 데스크탑 지원 인터뷰 질문 및 답변
보시다시피 SDK는 자동으로 프로젝트 이름 ( software_testing_help ), 작업 이름 ( 예 ) 및 테스트 이름 ( test_login_to_testproject_example_app ) 보고서를 만들 때 사용했습니다. 이는 Pytest 및 Unittest뿐만 아니라 전용 단위 테스트 프레임 워크를 사용하여 실행되지 않는 테스트에서도 지원됩니다.
다음 섹션에서는 맞춤 프로젝트, 작업 및 테스트 이름을 지정하는 방법과 기타 여러 유용한보고 옵션을 살펴 보겠습니다.
테스트 중에 실행 된 모든 드라이버 명령은 결과와 함께 보고서에 자동으로 추가됩니다. TestProject는 또한 개요 및 대시 보드를 즉시 생성합니다.
TestProject로 사용자 지정 옵션보고
TestProject는 즉시 사용 가능한 풍부하고 유용한 보고서를 생성하지만 정보 요구 사항에 더 잘 맞도록 사용자 정의 할 수있는 여러 가지 방법이 있습니다.
이전 예제에서 보았 듯이 TestProject는 가장 인기있는 Python 단위 테스트 프레임 워크의 프로젝트, 작업 및 테스트 이름을 자동으로 추론 할 수 있습니다. 하지만 보고서에서 사용자 지정 이름을 사용하려면 두 가지 방법으로 수행 할 수 있습니다.
# 1) 데코레이터 사용
TestProject SDK는 또한 @보고서 테스트 방법을 꾸미는 데 사용할 수 있고 아래와 같이 사용자 지정 프로젝트, 작업 및 테스트 이름을 지정합니다.
from src.testproject.sdk.drivers import webdriver from src.testproject.decorator import report @report(project='Software Testing Help', job='SDK Examples', test='Login Test') def test_login_to_testproject_example_app(): driver = webdriver.Chrome() # the rest of the test method remains unchanged
이 데코 레이팅 된 테스트 방법을 실행하고 보고서를 검사하면 자동으로 추론 된 이름 대신 생성 된 보고서에서 지정된 이름이 사용되었음을 알 수 있습니다.
# 2) 드라이버 생성자에서 프로젝트 및 작업 이름을 지정하고 수동으로 테스트보고 :
프로젝트 및 작업 이름은 드라이버 개체의 생성자에 지정하여 재정의 할 수도 있습니다. 다음과 같이 수행 할 수 있습니다.
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') # the rest of the test method remains unchanged
자동으로 유추 된 테스트 이름을 재정의하려는 경우 다음과 같이 테스트가 끝날 때 수동으로 테스트를보고 할 수 있습니다.
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.report().test(name='Login Test', passed=True) driver.quit()
수동보고 옵션을 사용하도록 선택한 경우 테스트가 두 번보고되어 보고서와 대시 보드가 손상되지 않도록 테스트 자동보고 (기본적으로 활성화 됨)를 비활성화해야합니다.
다음 명령을 사용하여 자동보고를 비활성화 할 수 있습니다.
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_auto_test_reports(disabled=True) # the rest of the test method remains as above
이렇게하면 보고서가 위의 마지막 스크린 샷과 똑같이 보입니다.
# 3) 드라이버 명령보고 비활성화
보고서에 테스트 중에 실행 된 모든 개별 드라이버 명령이 포함되지 않도록하려면 다음과 같이 자동보고를 비활성화 할 수 있습니다.
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) # the rest of the test method remains unchanged
또한 동일한 메서드를 다시 호출하지만 disabled = False 인수를 사용하여 나중에 테스트에서 드라이버 명령보고를 다시 활성화 할 수 있습니다.
테스트 중에 일부 중간 단계를보고하려면 다음과 같이 할 수도 있습니다.
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) driver.report().step(description='An intermediate step', message='A custom message', passed=True, screenshot=True) # here goes the rest of the test method
보시다시피 사용자 지정 보고서 단계에 스크린 샷을 추가 할 수도 있습니다. 이들은 TestProject 플랫폼의 HTML 보고서에 자동으로 통합됩니다.
TestProject SDK는보고를 추가로 사용자 정의 할 수있는 더 많은 옵션을 제공합니다. 전체 개요는 TestProject 웹 사이트, GitHub 또는 PyPI의 공식 문서를 참조하십시오.
TestProject를 사용하여 Appium 기반 테스트 실행
Selenium 기반 테스트 옆에 TestProject SDK는 Appium을 사용하여 모바일 장치에서 테스트를 실행할 수도 있습니다. 에뮬레이터의 기본 Android 앱에 대해 실행되는 다음 예제를 고려하십시오.
from appium import webdriver def test_native_android_app(): desired_capabilities = { 'appActivity': 'io.testproject.demo.MainActivity', 'appPackage': 'io.testproject.demo', 'udid': '', 'browserName': '', 'platformName': 'Android', } driver = webdriver.Remote(desired_capabilities=desired_capabilities) driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() driver.quit()
여기서도 TestProject 플랫폼의 힘을 사용하려면 우리는 변하기 만하면됩니다
from appium import webdriver
에:
from src.testproject.sdk.drivers import webdriver
그리고 우리는 갈 수 있습니다. TestProject Agent는 Appium 서버의 역할도하므로 테스트를 실행하는 컴퓨터에서 더 이상 직접 실행할 필요가 없습니다.
위에서 설명한 모든보고 기능은 Appium 기반 테스트에서도 사용할 수 있습니다.
SDK는 모바일 테스트 실행을 지원합니다.
- Android 및 iOS 용.
- 에뮬레이터와 실제 장치에서.
- 기본 앱 및 모바일 브라우저
이러한 모든 예는 GitHub의 SDK 코드 저장소에서 찾을 수 있습니다.
결론
이 튜토리얼에서 보았 듯이 TestProject Python SDK는 브라우저 드라이버와 Appium 서버를 구성하는 집안일을 없애 기존 Selenium 및 Appium 기반 테스트를 강화하는 데 도움이 될 수 있으며 훌륭한 HTML 보고서와 대시 보드를 생성합니다. TestProject 플랫폼.
무엇보다도 TestProject Python SDK는 완전히 무료입니다.
=> 계속해서 직접 사용해 볼 수있는 TestProject !
저자 정보 : Bas Dijkstra
저자는 테스트 자동화를 통해 테스트 노력을 개선하는 방법을 전 세계 기업에 가르칩니다. 그는 네덜란드에 거주하는 독립 트레이너, 컨설턴트 및 개발자입니다. 여가 시간에는 자전거를 타고 달리거나, 좋은 책을 읽는 것을 좋아합니다.
추천 도서
- TestProject 테스트 자동화 도구 실습 검토 자습서
- Python 소개 및 설치 프로세스
- Android 앱용 Appium 테스트 생성
- 초보자를위한 Python 자습서 (무료 Python 교육 실습)
- Eclipse 용 Appium Studio를 사용하여 Appium 테스트를 병렬로 실행
- Eclipse 용 Epoch Studio를 사용하여 Epochs 테스트 만들기
- Appium 테스트의 대규모 실행을 병렬로 실행하는 방법
- IDE에 통합하여 Appium 테스트 실행