Anna 프레임워크를 사용한 API 테스트

소개



안녕하세요 여러분. 저는 IT 회사에서 QA 엔지니어로 일하고 있습니다. 저는 오토테스터 팀장입니다. UI 및 API 테스트를 자동화합니다. 우리는 매일 수천 개의 테스트 스크립트를 실행합니다. 우리의 스크립트는 파이썬으로 작성되었습니다.



Python의 표준 라이브러리는 매우 훌륭하지만 스크립트를 개발하고 유지 관리하는 데 많은 시간이 걸립니다. 우리는 고객에게 테스트 결과를 신속하게 개발, 출시 및 제공해야 합니다.

테스터의 업무에서 고객에게 테스트 결과 보고서를 제공하는 것은 매우 중요합니다. 이를 위해 Allure를 사용합니다.



테스트 스크립트를 실행하기 위해 CI/CD(Jenkins)를 사용합니다. 테스트 스크립트를 통과하면 테스트 결과가 포함된 보고서가 자동으로 생성됩니다.

다음과 같이 보입니다.


anna 라이브러리는 신속한 개발 및 보고서 생성을 위해 개발되었습니다.

설치



pip install anna-api-test-framework

사용하는 방법



먼저 라이브러리를 가져옵니다.

from anna import Actions, Report, Asserts



  • Actions에는 http 요청을 실행하기 위한 메서드가 포함되어 있습니다. 모든 요청 및 응답 데이터가 보고서에 자동으로 추가됩니다.

  • action = Action(url=url)
    response = action.request(method=method)
    




    매우 편리합니다.

  • 보고서에는 보고서에 중요한 정보를 추가하는 방법이 포함되어 있습니다. 단계, 제목, 서사시, 링크, 다른 데이터 등과 같이

  • @Report.epic('Simple tests')
    @Report.story('Tests google')
    @Report.testcase('https://www.google.com', 'Google')
    @Report.link('https://www.google.com', 'Just another link')
    class TestExample:
    
        @Report.title('Simple test google')
        @Report.severity('CRITICAL')
        def test_simple_request(self):
            url = 'https://google.com'
            method = 'GET'
            want = 200 
            Report.description(url=url, method=method, other='other information')
    



  • Assert에는 확인 방법이 포함되어 있습니다.

  • with Report.step('Checking response'):
        Assert.compare(
            variable_first=want,
            comparison_sign='==',
            variable_second=got,
            text_error='Response status code is not equal to expected'
        )
    


    테스트 실행 방법



    다음 명령을 사용합니다.

    pytest alluredir="./results"
    


    이 명령은 현재 디렉토리에서 테스트를 실행하고 테스트 결과를 results 디렉토리에 저장합니다.

    보고서 생성 방법



    이렇게 하려면 Allure 이 설치되어 있어야 합니다.
    보고서를 생성하려면 다음 명령을 사용하십시오.

    allure generate "./results" -c -o "./report"
    


    보고서는 report 디렉토리에 생성됩니다.

    보고서를 여는 방법



    다음 명령을 사용합니다.

    allure open "./report" 
    


    다음 출력을 볼 수 있습니다.

    Starting web server...
    2022-04-06 12:58:39.896:INFO::main: Logging initialized @1655ms to org.eclipse.jetty.util.log.StdErrLog
    Server started at <http://172.31.22.186:61080/>. Press <Ctrl+C> to exit
    


    링크를 따라가면 생성된 보고서가 열립니다.


    결론



    이 라이브러리는 보고서용 테스트 스크립트 및 데이터를 신속하게 개발하는 데 도움이 됩니다.

    Anna's repository on github

    관심을 가져 주셔서 감사합니다!👍👍👍
    ** 이것은 내 첫 번째 기사입니다. 엄격하게 판단하지 마십시오.

    좋은 웹페이지 즐겨찾기