2014-09-30 4 views
0

내 조직 개발자는 애플리케이션의 모든 사용자 세부 정보를 제공하는 Rest API를 개발했습니다. 우리는 특정 테스트 환경에서이 테스트를 수행하고 RestAssured.I'll 내가 프레임 워크에서 한 일을 설명과 함께 지금의 나는 셀레늄 webdriver 위에 작동하는 프레임 워크를 개발했다 : 셀레늄 webdriver를 사용나머지 API를 테스트하는 가장 좋은 방법은 무엇입니까?

  1. , 프레임 워크는 응용 프로그램에서 POST API를 제공하지 않을 때까지 응용 프로그램에서 모든 필수 테스트 데이터 (예 : 테스트 사용자, 관리자 등)를 만듭니다.

  2. RestAssured를 사용하여 모든 Rest API 메소드를 테스트합니다.

  3. 프레임 워크는 테스트 데이터를 관리하기 위해 명시 적 SQLite 기반 데이터베이스를 사용합니다. 셀렌은 또한 동일한 SQLite 기반 데이터를 사용하여 테스트 데이터를 작성합니다. 내가 직면 한

문제 : 테스트 데이터의

  1. 관리 어플은 SQLite는 여러 테이블을 작성했고, 매우 복잡한 써야했다 그래서 너무 많은 일을 가지고 여기에 조금 까다 롭습니다 검색어.

  2. API는 정렬, 페이지 매김, 필터링 기능을 사용하여 응용 프로그램 사용자에게 응용 프로그램의 새 데이터 (SQLite 데이터베이스에는 존재하지 않음)를 노출하므로 실제 응답을 테스트하는 것은 매우 어려워집니다.

  3. 너무 많은 문제가 있지만 직접 해결하려고합니다.

예를 들어 정렬 기능을 테스트하려면 먼저 SQL 쿼리로 정렬 한 다음 실제 응답과 비교하십시오. 새 데이터의 경우 SQL 쿼리로 정렬 된 데이터가 실제 응답과 일치하지 않으므로 잘못된 것이없는 동안 테스트 사례가 실패하는 경향이 있습니다.

API 테스트를 통해 테스트 데이터 생성을 처리하는 프레임 워크를 어떻게 개발할 수 있는지 제안하십시오.

답변

1

프리 얀슈, 나는 이것을 확실히 이해하고 싶다. 먼저 WebDriver가 RESTful API에 POST 요청을 지원하지 않아 테스트 데이터를 작성하지 않고 직접 SQL 쿼리를 작성한다. 둘째, WebDriver를 사용하여 UI를 통해 정렬 기능을 테스트 할 때 직접 SQL 쿼리를 작성하는 테스트와 일치하지 않습니다.

그래서, 내 질문은 : 옵션 (정렬, 페이지 매김 등)의 인터페이스가 REST GET 쿼리가 어떻게 될 것인지 지시하지 않는가? 이미 REST API를 사용하고 있기 때문에 원시 SQL 쿼리에 대한 어설 션을 수행하는 간격과 직접 데이터베이스 연결을 만들지 않는 브라우저 기반의 테스트 도구를 함께 사용하는 것보다는 다른 도구를 사용하여 탐색해야 할 필요가 있다고 생각합니다. 그냥 웹 브라우저 시뮬레이터).

API를 테스트하려면 Runscope - http://runscope.com과 같은 API 테스트 도구를 사용하십시오. 여러 API 요청 (예 : REST API를 사용하여 새 데이터를 POST하는 방법, 정렬/페이지 매김 관련 매개 변수/옵션 등을 사용하여 데이터를 가져 오는 방법) 및 데이터 유효성 검증을위한 간단한 어설 션을 사용하여 테스트를 정의 할 수 있습니다.

관련 문제