효율성 지향: ChatGPT 및 HttpRunner를 사용하여 민첩한 자동화 테스트 구현(2) | JD 클라우드 기술팀

1. 소개

이전 기사인 ChatGPT를 사용하여 테스트 작업 효율성 향상 - 테스트 엔지니어를 위한 새로운 도구(1)에서는 chatGPT를 통해 단일 인터페이스 테스트 사례를 생성한 다음 chatGPT가 테스트 사례를 기반으로 인터페이스 자동화 스크립트를 생성하도록 하는 방법을 언급했습니다. 이 기사에서는 비즈니스 문제가 발생할 때 우리 팀이 Httprunner 프레임워크를 사용하여 자동화된 인터페이스 테스트를 수행하는 방법을 자세히 설명합니다. 최근 chatGPT를 접했을 때 "민첩한" 자동화 테스트를 달성하기 위해 두 가지를 어떻게 결합했습니까?

우선, 비즈니스 테스팅에서 직면하는 페인포인트는 상용 데브옵스 제품 배송과정에서 국내 시스템은 물론, 고객 사이트와 회사 내 다양한 ​​환경이 존재하며, 여러 고객들에게 병렬로 배송되고 , 여러 버전을 수행해야 함 회귀 테스트. 인력이 제한된 테스터가 수동으로 회귀분석을 수행할 경우 납품이 제때 완료되지 않을 수 있습니다. 인터페이스 자동화 및 보조 회귀를 신속하게 구현하는 방법 팀 내부 선택 후 속도, 유연성 및 사용 편의성을 기준으로 HttpRunner 프레임워크가 최종 선택되었습니다. 결국, 다양한 고객 사이트 환경에서 운영 및 유지 관리 담당자가 환경 배포를 완료하면 기본 기능 회귀 테스트를 신속하게 구현할 수 있어 테스터의 반환 시간이 크게 단축된다는 사실을 깨달았습니다.

다음으로 Httprunner를 사용하여 "클릭", "수정" 및 "확인"의 세 가지 도구를 통해 자동화된 인터페이스 테스트를 수행하는 방법에 대해 자세히 설명하겠습니다. 웹 프런트 엔드에서 비즈니스 작업을 수행하여 해당 인터페이스를 기록한 다음 명령으로 자동화 스크립트를 출력하는 것이 포인트입니다. 이는 교체해야 하는 반복되는 모든 콘텐츠를 스크립트를 사용하여 일괄적으로 변경해야 함을 의미합니다.물론 변수 추출 및 어설션에는 여전히 각 인터페이스에 대한 수동 변경이 필요합니다. 확인이란 오류를 찾아 수정하기 위해 디버깅을 실행하는 것을 의미합니다. 단일 인터페이스를 수동으로 입력해야 하는 일부 인터페이스 테스트 도구나 플랫폼에 비해 Httprunner는 매우 쉽고 문제가 없습니다! 다음은 Httprunner를 통해 자동화된 스크립트를 생성하는 방법을 구체적으로 예시한 것이다.

2. 이동 1 : 살짝 클릭

이제 팀 공간 모듈에서 팀 공간 생성, 반복 생성, 카드 생성의 전체 프로세스를 자동화하려는 간단한 비즈니스 시나리오를 통해 설명하겠습니다. 먼저 웹 측에서 해당 작업을 수행해야 합니다.

동시에 Fiddler와 같은 패킷 캡처 도구나 브라우저 자체의 F12 기능을 사용하여 비즈니스 프로세스 인터페이스를 캡처할 수도 있습니다. 보조 예약 코어 인터페이스를 삭제하고 모든 인터페이스를 har 파일 createSpaceCardDemo.har로 내보냅니다. (패킷 캡처 도구와 브라우저 모두 내보낼 수 있습니다)

다음으로 Httprunner 프레임워크의 도구 명령줄( h ar2case.exe createSpaceCardDemo.har ) 을 통해 har 파일을 py 스크립트로 변환합니다 . (물론 yml 형식으로도 가능합니다. 이에 비해 py 형식이 더 간결하고 읽기 쉽습니다.)



3. 이동 2: 변경하세요.

명령을 실행하는 첫 번째 라운드에서는 다음과 같은 결과가 생성됩니다. 관찰을 통해 스크립트의 URL, 헤더, 쿠키, 요청 본문 및 기타 정보가 다양한 환경의 다양한 사용자에 따라 변경되므로 매개변수화가 필요하다는 사실을 발견했습니다.

"비밀" 스크립트를 두 번째로 교체한 후에는 다음과 같이 됩니다. URL, 헤더 및 쿠키를 추출한 후 스크립트는 이제 매우 간결하고 명확해졌습니다.



수동 3차 교체: 입력 매개변수를 매개변수화하여 매번 실행될 수 있도록 합니다. 반환 값 필드가 추출되어 다음 결과 또는 기타 종속 스크립트로 전달됩니다. 어설션은 각 인터페이스의 비즈니스 특성을 기반으로 목표한 판단을 내립니다.



4. 이동 3: 확인해보세요

수정이 완료된 후 hrun .\testcases\space\space\createSpaceCardDemo_test.py --html=reports\index.html 명령을 실행하여 스크립트의 정확성을 확인합니다.

아주 단순한 느낌이 들지 않나요? 코끼리를 냉장고에 넣는 것보다 쉽습니다.



참고: 초기 프레임워크를 잘 계획해야 하며, 변수 추출 기능 캡슐화도 잘 수행해야 합니다. 또한 다양한 환경, 다양한 배포 방법, 인터페이스 접두사 변경 등 비즈니스 특성을 고려해야 합니다. 이렇게 하면 이후 자동화 스크립트가 더 간단해집니다.

5. ChatGPT는 사용 사례를 생성합니다.

위는 Httprunner가 인터페이스 자동화를 구현하기 위한 기본 프로세스입니다. 그러나 핵심 인터페이스의 비정상적인 시나리오를 테스트하려는 경우 프런트 엔드를 클릭할 수 없으며 녹화 후 스크립트가 자동으로 생성됩니다. 수동으로 작성하게 되면 테스터의 작업량이 크게 늘어나게 됩니다. 이제 chatGPT가 현장에 있습니다. 초기 아이디어는 chatGPT 인터페이스에 대한 매개변수와 제약 조건을 입력하는 것입니다. 그런 다음 chatGPT가 인터페이스의 비정상적인 시나리오에 대한 테스트 사례를 생성하도록 합니다. chatGPT가 테스트 사례를 필요한 자동화 스크립트로 변환하도록 하세요. 너무 간단하고 쉽습니다! 뭔가 잘못된 경우 chatGPT에 수정을 요청하세요.

여러 차례 수정을 거친 후 chatGPT가 생성한 최종 사용 사례는 다음과 같습니다.



6. ChatGPT는 Httprunner 스크립트를 생성합니다.

다음으로, 생성된 테스트 사례를 chatGPT에 제공하고 자동으로 인터페이스 자동화 스크립트를 생성하도록 합니다. 사용 사례를 기반으로 기대치를 충족하는 인터페이스 자동화 스크립트를 생성하기 위한 첫 번째 학습입니다.

다음으로 생성된 모든 테스트 사례를 chatGPT에 "피드"하고 Httprunner 인터페이스 자동화 스크립트에 모든 테스트 사례를 생성하도록 합니다. hrun .\testcases\space\Exceptions\createSpaceException_P01_test.py 명령을 실행한 후 직접 성공한 것으로 확인되었습니다. 물론 현재 어설션은 상태 코드 어설션일 뿐이며 다양한 시나리오의 메시지 본문에 대해 어설션을 작성해야 합니다.



7. 요약

위는 chatGPT가 Httprunner( 공식 웹사이트 링크 )와 충돌할 때 발생하는 불꽃 입니다. Httprunner는 이미 인터페이스 사용 사례 작성에 매우 간단하며 chatGPT를 만난 후 기능이 크게 향상되었습니다. 기록할 수 있는 인터페이스의 경우 단 3단계, 몇 번의 클릭, 몇 번의 변경 및 몇 번의 검색만으로 시나리오에 대한 사용 사례를 작성할 수 있습니다. 기록할 수 없는 단일 인터페이스의 경우 chatGPT를 사용하여 사용 사례를 생성한 다음 chatGPT가 자동으로 자동화 스크립트를 생성하도록 할 수 있습니다. 물론, 현재 애플리케이션은 여전히 ​​상대적으로 단순한 인터페이스로, 초기 단계에서는 마치 어린아이가 걷는 법을 배우는 것과 같을 수도 있지만, 지속적인 탐구와 학습을 통해 chatGPT는 발전함에 따라 점점 더 능숙해질 것이라고 믿습니다. 단 하나의 불꽃이 대초원에 불을 붙일 수 있기 때문입니다.

 

저자: JD Technology의 Zhang Xinglei

출처 : JD Cloud 개발자 커뮤니티 전재시 출처를 밝혀주세요

오픈 소스 프레임워크 NanUI의 작성자가 철강 판매로 전환하여 프로젝트가 중단되었습니다. Apple App Store의 무료 목록 1위는 포르노 소프트웨어인 TypeScript입니다. 이제 막 인기를 얻었는데 왜 대기업들은 이를 포기하기 시작합니까? ? TIOBE 10월 목록: Java가 가장 큰 감소세를 보이고 C#은 Java Rust 1.73.0 출시 에 가까워지고 있습니다. 한 남자가 AI 여자친구의 부추김을 받아 영국 여왕을 암살했으며 9년 징역형을 선고받았습니다. Qt 6.6 공식 출시 Reuters: RISC-V 기술이 중미 기술 전쟁의 핵심이 된다 새로운 전장 RISC-V: 단일 기업이나 국가에 의해 통제되지 않는 Lenovo, Android PC 출시 계획
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/4090830/blog/10117347