JavaScript API 자동화 테스트 - 사용할 라이브러리/프레임워크는 무엇입니까?

JavaScript로 API 자동화 테스트를 수행하려면 먼저 테스트 프레임워크를 구축하는 데 도움이 되는 라이브러리 또는 프레임워크를 사용할 수 있는지 알아야 합니다.

우리는 API 테스트를 수행하고 있으므로 프로그래밍 방식으로 HTTP 호출을 수행할 수 있는 방법이 필요합니다.
SuperTest npm 패키지를 사용합니다.

슈퍼테스트



SuperTest는 기본적으로 HTTP 요청을 할 수 있게 해주는 SuperAgent 위에 구축되었으며 SuperTest는 이러한 HTTP 요청을 테스트하기 위한 높은 수준의 추상화를 제공합니다. 예를 살펴보겠습니다.

const request = require('supertest'); 

request()
  .get('/user') // access user route
  .expect('Content-Type', /json/) // verify the content type
  .expect('Content-Length', '15')
  .expect(200) // verify the status code 
  .end(function(err, res) {
    if (err) throw err; // any additional code 
  });


이러한 expect 명령을 연결하기만 하면 어설션을 쉽게 추가할 수 있습니다. 이런 방식으로 테스트를 계속 작성할 수 있지만 테스트를 그룹화하거나 개별 테스트를 실행할 수 있는 더 나은 방법이 필요하며 이를 위해서는 일종의 테스트 프레임워크가 필요합니다.

모카제이에스



Mocha JS 은 노드 js에서 실행되는 매우 인기 있는 JavaScript 테스트 프레임워크입니다. Mocha 테스트 프레임워크로 사전 빌드된 많은 기능을 얻을 수 있습니다.
  • 테스트를 그룹화할 수 있습니다
  • .
  • 테스트 건너뛰기
  • 후크를 사용하여 테스트 설정 또는 해제
  • 또한 다른 많은 유용한 기능과 함께 보고 및 재시도 지원도 함께 제공됩니다
  • .

    기본 Mocha JS 예제를 살펴보겠습니다.

    describe('Array', function () { // describe block allows you to group your tests
      describe('#indexOf()', function () {
        it('should return -1 when the value is not present', function () { // it block is where you will run your test 
          // any verification here...
        });
      });
    });
    


    이제 SuperTest를 사용하여 Mocha 테스트가 어떻게 보이는지 살펴보겠습니다.

    describe('GET /user', function() {
      it('responds with json', function(done) {
        request(app)
          .get('/user')
          .set('Accept', 'application/json')
          .expect('Content-Type', /json/)
          .expect(200, done);
      });
    });
    


    SuperTestrequest 블록을 가져와 it 블록 안에 넣었습니다. 같은 방식으로 다양한 테스트 시나리오에 대해 여러 블록it을 생성할 수 있습니다.

    이제 모든 테스트에서 무언가가 작동하는지 여부를 확인해야 하며 이를 위해 어설션을 사용할 수 있습니다.

    차이 JS



    Chai는 모든 테스트 프레임워크(이 경우 Mocha JS)와 쌍을 이룰 수 있는 노드 및 브라우저용 어설션 라이브러리입니다. Chai는 기본적으로 어설션을 작성하는 다양한 방법인 여러 인터페이스를 제공하므로 should , expectassert 가 있습니다. 따라서 사용하기 편한 스타일을 테스트에 사용할 수 있습니다.

    몇 가지 Chai 어설션 예제를 살펴보겠습니다.

    // Using chai.should();
    foo.should.be.a('string');
    foo.should.equal('bar');
    
    // Using chai.expect
    expect(foo).to.be.a('string');
    expect(foo).to.equal('bar');
    
    // Using chai.assert
    assert.typeOf(foo, 'string');
    assert.equal(foo, 'bar');
    


    이제 어설션을 추가하면 문제 없이 테스트 작성을 시작할 수 있습니다. 그러나 실행 중인 모든 테스트의 보고서를 확인하고 각각의 통과/실패 상태를 확인하는 방법이 필요합니다.

    좋은 점은 이 간단한 터미널 결과 보기를 제공하는 spec reporter인 사전 구축된 리포터가 Mocha와 함께 제공된다는 점입니다.



    시작할 때는 충분하지만 mochawesome 리포터를 사용하여 멋진 HTML 리포터를 구현할 수도 있습니다.

    모차썸



    Mochawesome은 멋지고 현대적인 외관을 가지고 있으며 몇 가지 좋은 기능을 제공합니다.
  • 테스트 및 제품군 중첩 지원
  • 후크
  • 전후를 보여줍니다.
  • 은 디버깅 목적에 적합한 각 테스트와 함께 코드를 보여줍니다.

  • 샘플 Mochawesome 보고서는 다음과 같습니다.


    따라서 SuperTest, Mocha, Chai 및 Mochawesome을 사용하여 JavaScript에서 API 테스트 자동화 프레임워크를 만들 수 있습니다.
    참고: 이러한 라이브러리 또는 프레임워크에 사용할 수 있는 다른 많은 대안이 있지만 이를 위해 우리는 이것을 사용할 것입니다.


    위의 게시물에 대한 자세한 설명을 보려면 아래 비디오를 확인하십시오.




    따르다
    최신 업데이트를 위해 Twitter에서
    이와 같은 더 많은 콘텐츠를 보려면 내 구독

    좋은 웹페이지 즐겨찾기