2016-07-12 2 views
0

저는 Swagger Rest API를 사용하는 것뿐만 아니라 API 테스트를 처음 사용합니다. swagger에서 POST 요청 Rest API 호출의 유효성을 검사하는 방법에 대한 예제를 찾고 있습니다. C#의 Visual Studio 2015 판에서 REST API를 확인하기위한 단위 테스트를 작성하는 방법을 알아 내려고합니다.Visual Studio를 사용하여 Swagger Rest API의 유효성을 검사하는 방법

계속 진행할 수있는 방법을 알려주십시오. 그 다음에 효과가있는 예제가 있으면 나에게 큰 도움이 될 것입니다.

감사합니다, Anusha 여기

+1

_validate_는 무엇을 의미합니까? 이 API는 타사 API입니까 아니면 사용자가 생성 한 API입니까? 두 경우 모두 C#에서 API를 호출하는 방법을 알고 있습니까? 당신이 무엇을 얻으려고하는지 확신하지 못했습니다 ... –

+0

나는 API 테스팅을하는 단계를 아직 배우고 있습니다. 이것은 타사 API입니다. 유효성 검사 요청을 보내면 응답을 찾고 있음을 의미합니다. Visual Studio C#에서 게시물 요청을 작성하고 응답을 다시받는 방법에 대한 몇 가지 예제를 찾고 있습니다. – Anusha

+0

그래서 해결해야 할 문제는 타사 REST API에 대한 HTTP POST를 만드는 방법입니다. [예제] (http://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client) 솔루션이 있습니다. 그게 도움이 되니? –

답변

0

비주얼 스튜디오의 맥락에서 API 프로젝트를 테스트 할 때 고려해야 할 몇 가지 있습니다.

이 조언은 단원 테스트 이외에 (1) 통합 테스트뿐만 아니라 (2) 요청한대로 2015가 아닌 Visual Studio 2017에 대해서도 다루고 있습니다. 엔드 포인트 (통합 테스트 및 수용)

이의 API를 테스트

자신감이 직접으로 도움이 테스트의 수준입니다.

Dredd은 다른 사양 유형, 즉 Open API/Swagger 및 API Blueprint를 사용할 수 있으며 example transactions으로 전화 할 수 있습니다. API Blueprint로이 작업을 지원하면 IMO Swagger보다 더 좋아 보입니다.

테스트 생성 및 조롱을 돕기위한 많은 자바 스크립트 도구가 있습니다 (예 : swagger-test-templates, SwagMock). 모카 (Mocha), 차이 (Chai), 유스트 (Jest) 등이 인기있는 도구입니다.

이 수준의 테스트 관리 전문 서비스 : 예 : SauceLabs, Ready! API, Assertible. 다른 인기있는 도구는 무료이며 테스트 관리 플랫폼 (예 : SwaggerInspector 및 SoapUI)과 통합됩니다.

Visual Studio 2017 Enterprise는 제품에서도 지원되는 webtest feature을 가지고 있습니다. 이것은 VSTS와 잘 통합되어 있으므로 Build에서 웹 테스트를 시작할 수 있습니다. 그러나이 도구는 성능 테스트를 지향합니다 (통합 테스트가 얼마나 좋은지 모르겠습니다). 여기에 an example of recording and replaying calls with Swagger UI and Visual Studio입니다.

이 (주석에서 암시 되었음)에 대한 또 다른 관여 된 접근 방법은 일종의 요청/응답 프레임 워크 대신 API 호출을 수동으로 만드는 기본 단위 테스트를 작성하는 것입니다. 바로 가기로 Visual Studio 또는 NSwag을 사용하여 Swagger에서 API 클라이언트를 생성 할 수 있습니다. 그런 다음 단원 테스트에서 생성 된 클라이언트로 API 호출을 만듭니다. 또는 .NET 라이브러리를 사용하여 요청을 만들고 응답을 조사 할 수 있습니다. Visual Studio에서 JavaScript 기반 테스트를 C#으로 작성하는 대신 통합하는 방법을 제안합니다. (시험을위한 모의 객체와 템플릿을 생성하는 API 청사진 사양

  • 처럼 - 여기

    는 검사 (필수/RESP)를 직접 지정

    • ... 통합 테스트에 대한 몇 가지 (이하 조직)의 생각입니다 Swagger 테스트 템플릿 또는 SwagMock)
    • 레코드 & 재생 - (예 :비주얼 스튜디오 webtests과 농담)
    • 서비스 가상화 - 등 돌팔이, Wiremock, MockServer

    단위 테스트 모델, 컨트롤러, 서비스,

    이 테스트의 API 엔드 포인트의 이전 예제 다릅니다 , 단위 테스트 활동으로 생각됩니다. this example of testing controllers in ASP.NET Core에서 볼 수 있듯이 까다로운 부분은 테스트 시간에 데이터베이스 또는 서비스를 교체하려는 경우 코드 을 종속성 주입을 지원하도록 리팩터링 할 수 있습니다.

  • 관련 문제