로봇 프레임워크를 사용하여 다중 플랫폼 자동화 테스트 실현

Robot Framework, Jenkins, Appium, Selenium, Requests, AutoIt 등의 오픈 소스 프레임워크 및 기술을 기반으로 일반 자동화 테스트 연속 통합 관리 플랫폼(이하 "플랫폼")을 성공적으로 구축했습니다. 테스트 품질과 테스트 사례 실행 효율성이 크게 향상되었습니다.

01. 디자인 목표

플랫폼은 보편적이며 다양한 유형의 자동화된 테스트를 지원합니다.

플랫폼 프레임워크는 가볍고 개방적이며 유연하며 강력하고 풍부한 테스트 라이브러리를 갖추고 있어 PC 데스크탑 애플리케이션(예: 핵심 카운터 및 온라인 거래 시스템), 웹 애플리케이션(예: 쇼핑몰 온라인 홀), APP 애플리케이션(예: 모바일 보안과 같은), 인터페이스(예: 카운터 주변 인터페이스), 데이터베이스(예: Oracle) 및 기타 자동화된 테스트를 통해 이후의 지속적인 테스트 개발과 중앙 집중식 및 통합 관리를 용이하게 합니다.

플랫폼은 자동화된 테스트의 전체 프로세스를 지원합니다.

플랫폼 디스플레이 인터페이스는 테스트 케이스 설계, 테스트 스크립트 개발, 테스트 실행 및 테스트 보고서 생성 프로세스를 포괄하여 통합되고 명확하며 간결합니다. 테스트 프로세스의 통합 관리를 통해 테스터가 플랫폼을 사용하는 임계값이 낮아집니다.

플랫폼은 확장성이 좋고 유지 관리가 쉽습니다.

플랫폼은 협업 및 분산 테스트 실행을 지원하며 버전 관리 도구, 소프트웨어 결함 관리 시스템 및 기업 이메일 시스템과 통합될 수 있습니다.동시에 자동화된 테스트 스크립트는 반복 프로세스 중에 유연하게 조정되고 코드를 재사용할 수 있습니다. 프로젝트.

02. 건축설계

플랫폼은 구성요소화 및 계층형 아키텍처 아이디어를 채택하고 있으며 이는 4개 계층으로 나눌 수 있습니다. 각 계층은 특정 기능을 구현하고 다른 계층이 호출할 수 있는 인터페이스를 제공합니다.
여기에 이미지 설명을 삽입하세요

맨 아래 계층은 테스트 대상 시스템으로, 주로 테스트 대상 개체의 형태를 정의합니다. 이 플랫폼은 APP, 웹 및 PC 애플리케이션 테스트는 물론 인터페이스 및 데이터베이스 테스트도 지원합니다.

위는 테스트 라이브러리입니다. 플랫폼은 프로세스, 문자열, 컬렉션 및 스크린샷 처리와 같은 기본 테스트 라이브러리를 제공하는 것 외에도 웹, 앱 및 인터페이스와 같은 특수 테스트를 위한 확장된 테스트 라이브러리를 제공하여 테스트 중인 다양한 시스템을 지원하여 해당 테스트 라이브러리를 선택합니다.

중간에는 유스 케이스 관리, 테스트 데이터 관리, 테스트 운영, 테스트 보고서 등의 기능을 포함하는 테스트 프레임워크가 있습니다.

최상위 계층은 연속 구축 계층으로 작업, 기계, 대기열 등의 제어 및 일정 관리를 담당하며 전체 테스트 운영 프로세스를 자동으로 완료합니다.

03. 플랫폼 구현

자동화 프레임워크 선택 시 자동화 테스트 플랫폼의 핵심 기본 프레임워크로 Robot Framework(이하 "RF")를 선택하고 지속적인 통합 및 작업 스케줄링 플랫폼으로 Jenkins를 선택하며 AppiumLibrary, Selenium2Library, RequestsLibrary, AutoItLibrary, 등 다양한 테스트 요구 사항을 충족하기 위해 확장된 테스트 라이브러리로 사용됩니다.

여기에 이미지 설명을 삽입하세요
(1) RF 프레임워크

RF는 기능이 풍부하고 확장 가능한 오픈 소스 자동화 테스트 프레임워크로 주로 여러 라운드의 회귀 테스트에 사용됩니다. 프레임워크는 키워드 조합을 통해 테스트 로직을 형성하고, 최종적으로 다양한 기본 테스트 라이브러리를 통해 테스트 중인 시스템과 상호 작용하여 테스트 작업을 완료합니다.

RF 프레임워크는 APP, 웹, 인터페이스, 데이터베이스 테스트 등에 대한 표준 기본 키워드 API를 제공합니다. 테스터는 자신의 테스트 요구 사항을 충족하기 위해 이러한 키워드를 기반으로 사용자 정의 스크립트를 개발하기만 하면 됩니다.

여기에 이미지 설명을 삽입하세요

(2) 애피움라이브러리

Appium은 오픈 소스, 다중 플랫폼 및 다중 언어 테스트 프레임워크입니다. 다른 프레임워크와 비교하여 iOS 및 Android 플랫폼에서 기본, 웹 및 하이브리드 애플리케이션 자동화 테스트를 지원합니다. 플랫폼 간 코드 재사용, 테스트 스크립트 작성 및 테스트 실행이 가능합니다. 소스 코드를 다시 컴파일할 필요가 없고, 스크립트 작성 및 구현 시 프로그래밍 언어에 대한 요구 사항이 많지 않으며, 테스트가 더 가볍고 유연해졌습니다.

AppiumLibrary는 RF 프레임워크의 Appium을 기반으로 하는 타사 확장 애플리케이션 테스트 라이브러리로, 중개업체를 위한 모바일 증권 APP의 자동화된 테스트 및 개발을 지원할 수 있습니다.

여기에 이미지 설명을 삽입하세요

(3) 셀레늄2라이브러리

Selenium은 확장성, 크로스 플랫폼 및 다중 브라우저 지원과 같은 기능을 갖춘 다중 플랫폼 웹 애플리케이션 테스트를 구현하도록 특별히 설계된 자동화된 테스트 도구 모음입니다. Selenium 2는 WebDriver를 통합합니다. WebDriver는 기본 브라우저 지원 또는 브라우저 확장을 통해 브라우저를 직접 제어합니다. 테스터는 다양한 WebDriver를 선택하여 다양한 플랫폼과 브라우저에 따라 테스트를 수행할 수 있습니다.

Selenium2Library는 RF 프레임워크용 Selenium2 기반의 웹 테스트 라이브러리로 중개몰, 인터넷 홀 등 웹 애플리케이션의 자동화된 테스트 개발을 지원할 수 있습니다.

여기에 이미지 설명을 삽입하세요

(4) 요청 라이브러리

인터페이스 테스트는 일반적으로 여러 시스템 간의 대화형 개발 또는 여러 하위 시스템을 사용한 응용 프로그램 시스템 개발 테스트에 사용됩니다. 요청은 urllib를 기반으로 Python 언어로 작성되며 HTTP 인터페이스 테스트 요구 사항을 충족할 수 있는 Apache2 라이센스 오픈 소스 프로토콜의 HTTP 라이브러리를 채택합니다. RequestsLibrary는 중개 IFS 또는 기타 사용자 정의 개발 인터페이스의 자동화된 테스트 개발을 지원할 수 있는 RF 프레임워크의 API 테스트 라이브러리입니다.

(5) AutoIt 데스크탑 애플리케이션 테스트

AutoIt은 키보드 키, 마우스 움직임, 창 또는 제어 작업을 시뮬레이션하여 자동화된 작업을 수행할 수 있는 Windows GUI 자동화용 소프트웨어입니다. AutoItLibrary는 RF 프레임워크용 AutoIt을 기반으로 하는 Win32 데스크톱 애플리케이션 테스트 라이브러리로, 중개 코어 카운터 및 온라인 트랜잭션과 같은 데스크톱 애플리케이션 시스템의 자동화된 테스트 개발을 지원할 수 있습니다.

여기에 이미지 설명을 삽입하세요

(6) 젠킨스 지속적 통합

Jenkins는 svn 및 Git과 같은 여러 SCM 구성 관리 도구를 지원하는 오픈 소스 지속적 통합 도구로, 예약된 빌드(예: 시간별, 간격마다 또는 매일 밤 몇 시)를 설정하거나 프로젝트 요구 사항에 따라 빌드를 트리거할 수 있습니다. (소스 코드 제출 트리거 등)은 Shell 스크립트, Windows 일괄 처리, Ant 구성 및 기타 구성 방법을 지원하여 다양한 운영 체제에서 실행하기 위한 요구 사항을 충족합니다.

Jenkins는 다중 호스트 다중 작업 병렬 실행을 실현할 수 있는 분산 구성(Selenium Grid와 유사)을 지원합니다. Jenkins는 풍부한 플러그인 지원도 제공하며, Robot Framework 플러그인 플러그인을 설치한 후 RF 자동화 테스트 케이스를 실행할 수 있습니다.

여기에 이미지 설명을 삽입하세요

04. 플랫폼 혁신 포인트

1. 플랫폼 구조는 유연하고 광범위한 시나리오에 적응할 수 있으며 다양한 유형의 자동화 테스트를 충족합니다.

이 플랫폼은 경량 RF 오픈 소스 프레임워크를 기반으로 하며 확장성이 우수합니다. 다양한 오픈 소스 확장 테스트 라이브러리를 통합하여 다양한 유형, 다양한 플랫폼 및 애플리케이션의 테스트를 충족할 수 있습니다.

RF+AppiumLibrary는 APP 자동화 테스트를 실현할 수 있으며 iOS와 Android 간에 코드를 재사용할 수 있습니다. 다양한 플랫폼에서 실행하기 위해 통합 테스트 스크립트만 작성하면 됩니다. 이 방법은 자동화된 테스트 스크립트의 사용 효율성을 크게 향상시켜 작성 시간을 절약하고 테스트 스크립트 디버깅;

RF+Selenium2Library는 Chrome, IE 및 Firefox와 같은 여러 브라우저에서 웹 애플리케이션의 자동화된 테스트를 실현할 수 있습니다.

RF+AutoItLibrary는 일반 Win32 데스크탑 애플리케이션의 자동 테스트를 실현할 수 있습니다.

RF+RequestsLibrary는 인터페이스 자동화 테스트 등을 실현할 수 있습니다.

따라서 플랫폼은 강력한 유연성, 호환성 및 사용 편의성을 갖추고 있으며 특히 핵심 카운터, 온라인 거래, 모바일 증권 및 기타 인터페이스의 자동 테스트에 적합하며 변경이 거의 없고 소프트웨어 수명 주기가 길며 새 버전이 자주 출시됩니다.

2. 플랫폼은 엔드 투 엔드 자동화 테스트 관리 및 원스톱 그래픽 디스플레이 정보를 실현합니다.

플랫폼은 사용 사례 관리, 스크립트 개발 및 디버깅, 작업 분산 스케줄링 및 실행, 테스트 보고서 프레젠테이션의 전체 프로세스를 지원합니다.

여기에 이미지 설명을 삽입하세요
여기에 이미지 설명을 삽입하세요

3. 데이터와 키워드 중심의 자동화 테스트를 기반으로 테스트 대상 시스템의 변화에 ​​유연하게 대응

이 플랫폼은 기존 자동화 프레임워크의 기록 및 재생 모드에서 스크립트의 높은 결합이라는 단점을 극복하고 높은 견고성, 높은 재사용성 및 우수한 유지 관리성을 제공합니다.

데이터 기반 모드를 지원하고, 테스트 데이터와 스크립트를 분리하고, 스크립트 수정 없이 테스트 데이터를 변경하므로 자동화된 테스트 스크립트의 재사용성이 향상됩니다.

인터페이스 요소의 통합 관리가 실현되고, 인터페이스 요소와 테스트 스크립트가 분리되며, 애플리케이션 인터페이스 변경 시 많은 스크립트 수정 없이 유효하지 않은 인터페이스 요소만 수정하면 되므로 스크립트의 유지 관리성이 향상됩니다.

비즈니스 프로세스 테스트는 유연하게 결합할 수 있는 키워드 스크립트를 기반으로 제어되며, 키워드 추가를 통해 테스트 프레임워크의 기능 확장을 구현할 수 있습니다.

스크립트 구조는 계층화된 디자인 아이디어를 채택하고 자동화된 테스트 스크립트는 유스 케이스 레이어, 프로세스 레이어, 페이지 요소 레이어 및 변수 수집 레이어로 나누어져 높은 응집력과 낮은 결합 테스트 스크립트 디자인의 실현을 용이하게 합니다.

여기에 이미지 설명을 삽입하세요

05. 플랫폼 구현 효과

1. 테스트 케이스 디자인의 품질과 비즈니스 시나리오의 적용 범위를 개선합니다.

동관증권 자동화 테스트 프로젝트를 실시한 이후 사용 사례의 세분화 및 적용 범위가 크게 향상되었으며 모바일 APP 거래, 인터페이스, 웹(넷 홀/몰/유카이라이), 코어 카운터 및 온라인 거래의 테스트 사례에 도달했습니다. 1645, 153, 76, 569, 1168은 사용 사례 규모가 평균 8배 가까이 증가하여 기본적으로 모든 거래 비즈니스를 포괄합니다. 평균 자동화율은 65% 이상으로 제품 개발팀의 품질 신뢰도가 크게 향상되었습니다.

2. 테스트 케이스 실행 효율성 향상 및 제품 출시 속도 향상

자동화된 테스트는 테스트 케이스 실행의 효율성과 정확성을 향상시키고 프로덕션 애플리케이션 시스템의 실패율을 줄입니다. 또한 지속적인 통합이 가능한 한 빨리 개입되어 버전 출시가 지연될 가능성이 줄어듭니다. 동관증권의 모바일 앱 거래 자동화 테스트를 예로 들면, 이전 버전의 반복 주기는 2~3개월이었는데, 자동화 테스트 이후 1개월로 단축되었습니다. 수동 테스트는 자동 실행 하늘 이후 2명 이하로 변경되었습니다. 평균 월간 반복을 기준으로 계산하면 일년 내내 약 150일의 테스트 리소스를 절약할 수 있습니다. 독립적인 테스트 카운터(7*24 실행 지원)에 연결하고 여러 장치를 추가하여 병렬로 실행하면 자동화된 테스트의 효율성이 크게 향상될 수 있습니다. 이 프로젝트는 거의 20회에 가까운 반복 테스트와 17개의 결함을 투자했습니다. 발견되었습니다.

06. 요약

동관증권은 오픈소스 RF 프레임워크를 기반으로 0부터 1까지의 일반 자동화 테스트 시스템을 구축하고 이를 모바일 APP, 핵심 카운터, 온라인 거래, 인터페이스, 쇼핑몰, 온라인 홀 및 기타 프로젝트에 구현하고 Jenkins와 결합하여 자동화된 테스트의 지속적인 통합 및 배포 실현 모델 구성은 민첩하고 빠른 반복 프로세스를 효과적으로 지원합니다.

지면의 제약으로 인해 이 글에서는 APP, 웹, 데스크톱 애플리케이션, 인터페이스 등 자동화된 테스트 개발 방법을 자세히 다루지는 않지만, 일반적인 자동화된 테스트 지속적 통합 관리 플랫폼을 구축하는 아이디어를 제공합니다. 다른 증권회사의 중요성에 영감을 주고 배웁니다.

마지막으로 제 글을 주의 깊게 읽어주신 모든 분들께 감사의 말씀을 전하고 싶습니다. 호혜는 언제나 필요합니다. 그다지 귀중한 것은 아니지만 필요하다면 가져갈 수 있습니다.

여기에 이미지 설명을 삽입하세요

소프트웨어 테스팅 인터뷰 애플릿

수백만 명의 사람들이 참여하는 소프트웨어 테스트 문제 은행! ! ! 누가 아는가! ! ! 전체 네트워크에서 가장 포괄적인 퀴즈 미니 프로그램으로, 지하철이나 버스에서 휴대폰을 사용하여 퀴즈를 풀 수 있습니다!

다음 인터뷰 질문 섹션을 다룹니다.

1. 소프트웨어 테스팅의 기본이론, 2. 웹, 앱, 인터페이스 기능 테스팅, 3. 네트워크, 4. 데이터베이스, 5. 리눅스

6. 웹, 앱, 인터페이스 자동화, 7. 성능 테스트, 8. 프로그래밍 기초, 9. 시간 인터뷰 질문, 10. 공개 테스트 질문, 11. 보안 테스트, 12. 컴퓨터 기초

이 자료는 [소프트웨어 테스트] 친구들을 위한 가장 포괄적이고 완전한 준비 창고가 되어야 합니다. 이 창고는 또한 가장 어려운 여정을 통해 수만 명의 테스트 엔지니어와 동행했습니다. 당신에게도 도움이 되기를 바랍니다!     

추천

출처blog.csdn.net/2301_78843735/article/details/132475519