2017-11-13 1 views
1

저는 RESTful API (JSON)를 통해 여러 프런트 엔드와 통신하고 SOAP 또는 REST를 통해 다른 장치와 통신하는 (약간 복잡한) 스프링 웹 서비스를 보유하고 있습니다. 자동화 된 API 블랙 박스 테스트

  • 특정 실행할 수

    1. 일정 (POSTGRES DB)를 API에 대한
    2. 보내기 REST 또는 SOAP 메시지를 통해 전제 조건을 만들 : 나는 설정을 다음과 같은 것들을 할 수있는 자동화 된 테스트 환경을 싶습니다 작업 특정 시간/날짜에 (API에 대한 요청)
    3. 어설과 생산 결과를 검증 모든 테스트는 모든 프론트 엔드/UI에서 independet
    4. 실행 (API 호출 또는 확인 DB의 귀국일)
    5. 은 인프라에서 테스트 환경을 통합합니다 (예 : (젠킨스 배치 모든 테스트)

    바람직 I 재사용 컴포넌트를 구축하려는 실행되는 고정 표시기 컨테이너를 작성, 즉 ...) 등등 여러 가지 테스트 필요하고 사용자를 생성. 나는 많은 도구와 프레임 워크 (SoapUI, JMETER, ...)가 있다는 것을 알고있다. 그러나 그들을 모두 시험해보고 길을 잃기 전에, 나는 simular setup을 가진 사람으로부터 경험 리포트를 얻고 싶습니다.

  • 답변

    1

    우리는 API 테스트를 위해 JMeter를 사용하고 있습니다. SOAPui를 시도했지만 메모리 문제가있었습니다. 그래서 우리는 JMeter와 앞으로 나아갈 것입니다. 귀하의 질문
    : 우리는 MySQL을 사용하는

    1. 하지만이 게시물은 JMeter가의 포스트 그레스 연결을 설정하는 방법을 보여 같다 : https://hiromia.blogspot.com/2015/03/how-to-perform-load-testing-on.html하여 JMeter는 REST API를 보낼 수 있습니다
    2. 요청을
    3. 나는 아니에요 가능하다면 특정 시간에 특정 작업을 실행하기 위해 API가 필요할 때 Jenkins 작업을 실행하도록 예약 할 수 있습니다.
    4. JMeter에는 많은 주장이 있습니다. 나는 Response와 BeanShell Assertion을 많이 사용한다.
    5. JMeter는 버그를 찾아내는 데 도움이되는 프론트 엔드 UI와는 독립적입니다.
    6. 나는 도커를 실행하지 않았지만 Jenkins를 통해 실행 중입니다. 이 젠킨스 플러그인은 도움이되었습니다 https://wiki.jenkins.io/display/JENKINS/Log+Parser+Plugin

    몇 가지 더 팁 :

    • 는 HTTP 요청의 기본 요소를 사용합니다. 모든 HTTP 요청을 업데이트하지 않아도됩니다.
    • 사용자 정의 변수를 사용하여 필요한 변수를 정의하십시오.
    • $ {namePrefix} $ {myTime}과 같은 사용자 정의 변수를 결합 할 수 있지만 두 번째 사용자 정의 변수 요소에 있어야합니다 (동일한 요소에 결합 할 수 없습니다)
    • 여러 개의 테스트가있는 경우 환경에서 다음과 같은 값으로 사용자 정의 변수를 설정하십시오. $ {__ P (testenv, staging)} 이렇게하면 CLI에서이 변수를 변경할 수 있습니다. -Jtestenv = HOTFIX
    • 예쁜 html로 ExtentReports를 사용하고 있습니다. 사용자 정의 JSR223 리스너 (이 사이트에서 내 이전 게시물 찾기)를 사용하여 결과 보고서를 작성하십시오.
    • 사이트에서 쿠키를 사용하는 경우 HTTP 쿠키 관리자를 사용하십시오.
    • 테스트 계획 요소에서 순서대로 수행해야 할 일이있는 경우 다음 옵션을 선택하십시오. 위협 그룹을 연속적으로 실행합니다. 그렇게하지 않으면 JMeter가 임의의 순서로 실행합니다.

    희망이 있으면 도움이됩니다. 행복한 테스트!

    관련 문제