IT story

RESTful 서비스를 디버깅하는 방법은 무엇입니까?

hot-time 2020. 12. 25. 09:33
반응형

RESTful 서비스를 디버깅하는 방법은 무엇입니까?


RESTful 서비스를 디버그하는 쉬운 방법을 찾고 있습니다. 예를 들어, 대부분의 웹앱은 일반 웹 브라우저를 사용하여 디버깅 할 수 있습니다. 불행히도 동일한 브라우저로는 HTTP PUT, DELETE 및 HTTP POST를 어느 정도 테스트 할 수 없습니다.

나는 테스트를 자동화하려고하지 않습니다. 이상적으로는 내 클라이언트를 작성할 필요없이 빠른 온 전성 검사를 통해 새로운 서비스를 실행하고 싶습니다.


RESTClient 와 같이 요청 및 응답을 쉽게 검사 할 수있는 기존 'REST 클라이언트'도구를 사용하십시오 .


우리 회사에서는 RESTful 서비스를 테스트하기 위해 다양한 도구와 접근 방식을 사용합니다.

  • 우리는 cURL 스크립트를 작성합니다-본질적으로 파일에 저장된 단일 명령입니다. 메서드 당 리소스 당 하나의 파일. PUT 및 POST의 경우 일반적으로 cURL 스크립트와 함께 보낼 표현이 포함 된 파일이 있습니다. 예를 들어 사서함 리소스의 경우라는 mailbox_post.cmd줄이 포함될 수있는 라는 파일 이있을 수 있습니다 curl -v -X POST -u username -H 'Content-Type:application/xml' -d @mailbox_post.xml http://service/mailbox. 우리는 일괄 적으로 실행되거나 적어도 테스터간에 전달되고 회귀 테스트에 사용될 수있는 테스트 모음을 빌드하기 때문에이 접근 방식을 좋아합니다.

  • 임시 테스트를 위해 cURL 및 RESTClient사용 합니다.

  • 기본적으로 XHTML 서비스를 제공하는 서비스가 있으므로 탐색이 가능하고 양식 리소스를 추가하므로 서비스는 실제로 브라우저를 사용하여 부분적으로 또는 완전히 테스트 할 수 있습니다. 이것은 부분적으로 RESTful 웹 서비스 의 일부에서 영감을 얻었으며 , 저자는 웹 서비스와 웹 애플리케이션 사이의 경계가 일반적으로 가정하는 것처럼 견고하고 엄격 할 필요가 없음을 보여줍니다.

  • Restlet 프레임 워크를 사용하여 기능 테스트를 Groovy 클로저 로 작성 하고 테스트 실행기 Groovy 스크립트로 테스트를 실행합니다. 이는 테스트가 상태 저장이 가능하고, 서로를 기반으로하며, 적절한 경우 변수를 공유 할 수 있기 때문에 유용합니다. Restlet의 API는 간단하고 직관적이며 빠른 HTTP 요청을 작성하고 응답을 테스트하기가 쉬우 며 Groovy에서 사용하면 훨씬 더 쉽습니다. (테스트 실행기 스크립트를 포함한이 기술을 블로그 에서 공유하고 싶습니다 .)


Google 크롬 확장 프로그램 인 Postman 이 도움이 될 수 있습니다.


REST 요청을 디버깅하는 데 RequestBin이 유용하다는 것을 알았습니다. 고유 URL에 게시하고 요청 데이터를 업데이트 / 표시합니다. 다른 도구를 사용할 수 없을 때 도움이 될 수 있습니다.

https://requestbin.com/


OS X Leopard를 실행하는 경우 유용하다고 생각되는 도구 :

HTTP 클라이언트

리소스에 대한 http 요청을 작성하고 응답을 볼 수있는 매우 간단한 GUI 프로그램입니다.


cURL 잘 작동합니다.


Fiddler의 Composer사용 하여 편안한 서비스 를 디버깅 할 수 있습니다 .

업데이트 JD 2013 년 9 월 12 일 : Rest Builder 는 이제 Composer 라고 합니다.


나는 결국 POSTMAN에 정착했습니다.

내가 생각할 수있는 모든 REST 기능을 지원하며 UI는 절대적으로 우수합니다. 유일한 단점은 Chrome이 필요하다는 것입니다.


Firefox 용 RESTTest (추가 기능). IE 용 Fiddler .


내 REST API를 테스트하기 위해 Soap UI를 사용하고 있습니다.

다른 도구보다 완벽합니다.

  • 정밀한 디버그 요청 및 응답
  • 자동화 된 테스트
  • 모든 GUI 기반
  • 테스트 매개 변수화를위한 속성 및 속성 전송
  • 조건부 테스트
  • 성능 시험

저는 SmartBear에서 일하지 않습니다. SOAP WebServices에 사용하면서 이미 SoapUI의 열렬한 팬이었습니다.

내 SoapUI REST 프로젝트


Peter Hilton의 답변에있는 도구 중 하나를 사용하는 것 외에도 LWP 또는 유사한 도구를 사용하여 테스트를 스크립팅하는 것이 유일한 옵션이 될 수 있습니다. 당신은 수있는 단지 소켓을 여는 원시 HTTP 요청을 전송하고 대가로 무엇을 얻을 검사하여 LWP의 사용을 우회. 그러나 내가 아는 한, 이런 종류의 도메인에 대한 테스트 도구가 부족합니다. 대부분은 주로 웹 사이트 개발자의 렌즈에서이 문제 공간을 살펴 봅니다. 브라우저는 테스트 플랫폼으로 충분합니다. .


Google 코드 에서 제공하는 restclient를 사용 합니다. 모든 HTTP 메소드를 지원하고 HTTP 헤더, 연결 등을 완벽하게 제어 할 수있는 간단한 Java Swing 애플리케이션입니다.


멀티 파트 양식 데이터 제출의 추가 기능과 동일한 목적을위한 무료 도구를 원한다면 여기 http://code.google.com/a/eclipselabs.org/p/restclient-tool/


Firefox에는 메소드, 매개 변수, 헤더 등으로 다른 요청을 보내는 RESTClient 플러그인이 있습니다.


파이어 폭스에 대한 포스터 확장을 확인해야합니다. 간단하고 사용하기에 충분히 유용합니다. :)


저는 멋진 REST 클라이언트와 함께 제공되는 Jersey사용하여 RESTful 리소스에 대한 단위 테스트를 작성하는 경향이 있습니다. 좋은 점은 JAX-RS를 사용하여 RESTful 리소스를 구현하면 Jersey 클라이언트가 JAXB / XML / JSON / Atom 등과 같은 엔티티 제공자를 재사용 할 수 있으므로 서버 측에서 동일한 객체를 재사용 할 수 있습니다. 클라이언트 측 단위 테스트에서 사용하십시오.

예를 들어 다음은 RESTful 리소스에서 XML 페이로드를 조회 하는 Apache Camel 프로젝트 의 단위 테스트 사례 입니다 (JAXB 개체 Endpoints 사용). resource (uri) 메서드는 Jersey 클라이언트 API를 사용하는 이 기본 클래스에 정의되어 있습니다.

예 :

clientConfig = new DefaultClientConfig();
client = Client.create(clientConfig);

resource = client.resource("http://localhost:8080");
// lets get the XML as a String
String text = resource("foo").accept("application/xml").get(String.class);

여기에서 완전히 누락 되었기 때문에 : https://luckymarmot.com/paw

페니 가치가 있습니다 ...

참조 URL : https://stackoverflow.com/questions/165720/how-to-debug-restful-services

반응형