Pandaria - GraphQL API 테스트

판다 리 아 는 0.3.0 부터 GrapQL API 의 자동화 테스트 를 지원 한다.현재 Query 와 Mutation 만 지원 합 니 다.
URL 설정
Pandaria 를 사용 하여 RESTFul API 를 테스트 할 때 저 희 는 .feature 파일 의 맨 위 에 현재 feature 작업 디 렉 터 리 와 기본 API 의 Endpoint 를 설정 합 니 다.예:
Background:
  * dir: features/rest-api-test
  * base uri: http://localhost:10081/your-rest-api

이렇게 하면 테스트 에서 상대 경 로 를 사용 하여 요청 을 보 낼 수 있 습 니 다.
* uri: /users/me
* send: GET
* status: 200
* verify: '$.username'='jakim'
* verify: '$.age'=18

REST 와 달리 GraphQL 은 Query 와 Mutation 에 대해 하나의 유일한 Endpoint 만 있 습 니 다. base uri 키 워드 를 사용 하면 이 Endpoint 를 설정 할 수 있 습 니 다.예:
Background:
  * dir: features/graphql-test
  * base uri: http://localhost:10081/graphql

GraphQL Query
기본 디 렉 터 리 를 설정 하면 GrapQL 테스트 를 작성 할 수 있 습 니 다. graphql 키 워드 를 사용 하여 검색 어 를 입력 하 십시오.
Scenario: basic query without specify operation name
    * graphql:
    """
    query bookById($id: String){
      book(id: $id) {
        title
        isbn
        author {
          name
        }
      }
    }
    """

    * variables:
    """
    {
      "id": "1"
    }
    """
    * send
    * verify: '$.data.book.title'='CSS Designer Guide'
    * verify: '$.data.book.isbn'='ISBN01123'
    * verify: '$.data.book.author.name'='someone'
  • 상기 코드 는 먼저 GraphQL 의 조회 문 구 를 설정 했다. id 조회 booktitle, isbn, authorauthorname 필드 에 따라.
  • 이 검색 어 는 하나의 인자 가 필요 합 니 다. variables 키 워드 를 사용 하여 GrapQL 의 인 자 를 설정 합 니 다.
  • send 키 워드 를 GrapQL 서버 에 보 냅 니 다.
  • verify 키 워드 는 조회 결 과 를 검증 했다.
  • variables 꼭 필요 한 것 이 아니 라 검색 어 에 파 라 메 터 를 입력 하지 않 으 면 생략 할 수 있 습 니 다.

  • GraphQL Mutation
    Mutation 은 Query 와 똑 같이 작 동 하 므 로 Query 문 구 를 Mutation 문구 로 바 꾸 면 되 며 군말 하지 않 습 니 다.
    GraphQL 문 구 를 파일 에 저장
    Pandaria 를 사용 하여 REST 테스트 를 진행 할 때 가 독성 을 높이 기 위해 요청 체 를 파일 에 넣 습 니 다. 예 를 들 어:
    * uri: http://localhost:10080/users
    * request body: requests/user.json
    * send: POST
    * status: 200
    * verify: '$.id'='auto-generated'
    * verify: '$.username'='jakim'
    * verify: '$.age'=18
    

    마찬가지 로, 우 리 는 GraphQL 의 문장 (과 / 또는) GraphQL 변 수 를 파일 에 넣 어서 테스트 용례 의 가 독성 을 높 일 수 있다. 예 를 들 어:
    * graphql: query_book_by_id.graphql
    * variables: css_designer_guide.id.json
    * send
    * verify: '$.data.book.title'='CSS Designer Guide'
    * verify: '$.data.book.isbn'='ISBN01123'
    * verify: '$.data.book.author.name'='someone'
    

    GraphQL 구문 에는 여러 동작 이 포함 되 어 있 습 니 다.
    같은 GraphQL 파일 은 여러 개의 GraphQL 동작 을 지원 합 니 다. operation 키 워드 를 통 해 실행 할 동작 을 지정 할 수 있 습 니 다. 예 를 들 어:
    Scenario: query with operation name
        * graphql: query_book_by_id.graphql
        * variables: css_designer_guide.id.json
        * operation: bookById
        * send
        * verify: '$.data.book.title'='CSS Designer Guide'
        * verify: '$.data.book.isbn'='ISBN01123'
        * verify: '$.data.book.author.name'='someone'
    

    Pandaria 공식 문서 참조
    다음으로 전송:https://juejin.im/post/5d2360136fb9a07ebb05583b

    좋은 웹페이지 즐겨찾기