Programing

REST 웹 서비스 테스트

crosscheck 2020. 11. 24. 07:40
반응형

REST 웹 서비스 테스트


우리 조직은 JBoss 앱 서버에서 RESTful 웹 서비스를 구축하기 위해 노력하고 있습니다. QA 팀은 SoapUI를 사용하여 지금까지 SOAP 웹 서비스를 테스트하는 데 사용되었습니다. SoapUI에는 REST 기능이있는 새 버전이 있습니다. 우리는 그것을 사용하는 것을 고려하고 있습니다.

  1. 누군가가 테스트 할 수있는 무료로 인터넷에서 사용할 수있는 공개적으로 사용 가능한 RESTful 서비스가 있습니까?
  2. RESTful 웹 서비스를 테스트하는 데 사용할 수있는 (및 사용되는) 도구는 무엇입니까?

soapUI 도 작업을 수행 하므로이 블로그 게시물확인하여 시작하십시오.


사용하기 쉽고 빠르게 실행할 수있는 Firefox 애드온 포스터를 사용해보세요.


아주 간단한 Python을 사용하여 웹 서비스를 실행할 수 있습니다. 보안에 따라 Python을 사용 urllib하거나 urllib2REST 요청을 수행하고 답변을 검토 할 수 있습니다.

또한 Python을 사용 unittest하여 REST 서비스의 Python 테스트 실행을 제어 할 수 있습니다.

class TestSomeREST( unittest.TestCase ):
    def setUp(self):
        REALM = "blah@blah.com"
        self.client= RESTClient( "localhost", 18000, "tester", "tester", REALM )
    def test_1_get(self):
        response = self.client.get('/this/that/other/2/')
        self.failUnlessEqual(200, response.status_code)
        j1= JSONDecoder().decode(response.content)
        self.assertEquals(2, j1[0]['pk'] )
        entity= j1[0]['fields']
        self.assertEquals('Some Other Group', entity['name'])
        self.assertEquals('E1G2', entity['customer_id'])

RESTClient 클래스는 urllib2를 사용하여 각 요청에 대한 다이제스트 인증을 전달합니다. 다소 복잡하지만 관심이 있다면 본질을 공유 할 수 있습니다.


Fiddler 확인


CURL 당신을 반쯤 가져옵니다. 나머지 절반은 헤더, 응답 코드 및 엔티티 콘텐츠를 확인하여 좋은지 확인하는 것입니다. 이를 위해 다양한 도구를 사용할 수 있습니다 (셸 스크립팅 영역에서 헤더와 내용을 파일로 파이핑하고 비교하는 것이 트릭을 수행 할 수 있음). 도구 세트를 더 세분화하는 것은 그리 어렵지 않을 것입니다. 아마도 당신이 선택한 단위 테스트 프레임 워크와 겹쳐 쌓이게 될 것입니다.

AJAX로 나머지 웹 서비스 테스트 패널을 만들었습니다. 실제로는 그렇게 어렵지 않았습니다. 해결해야 할 몇 가지 보안 문제가 있습니다 (예 : 동일한 서버에 테스트 스위트가 있는지 확인하거나 서명 된 자바 스크립트).


REST 서비스를 테스트하려면 REST Assured사용해 볼 수 있습니다. REST 서비스를 테스트하고 Java에서 응답의 유효성을 검사하는 것이 매우 간단합니다 (JUnit 또는 TestNG 사용).


Postman- https: //chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/을 확인 하세요 . 이것은 내가 지난 몇 달 동안 작업 해 왔으며 최근에 기본 REST 엔드 포인트 테스트를 지원하면서 대규모 REST 프로젝트에 매우 유용 해지고 있다는 피드백을 통해 얻은 도구입니다.

이에 대한 코드는 Github에서도 사용할 수 있습니다. https://github.com/a85/POSTMan-Chrome-Extension


REST 웹 서비스를 테스트하는 가장 간단한 방법 curl은 터미널에서 사용하는 것 입니다.

레일의 웹 서비스를 테스트하는 데 사용한 코드가 있습니다. 서비스에 맞게 수정할 수 있습니다.

가져 오기

curl http://localhost:3000/courses.json

게시하다

curl -H "Content-Type:application/json"  -d '{"courseCode":"55555","courseName":"SEEEE","courseYr":999}' http://localhost:3000/courses.json

Raills의 PUT : eg1 (모든 필드 포함) :

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json"  -d '{"courseCode":"123456","courseName":"AAAAAAAA","courseYr":12345}' http://localhost:3000/courses/5.json

eg2 (필드 만 편집 가능) :

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json"  -d '{"courseYr":999999999}' http://localhost:3000/courses/3.json

제공된 ID가있는 레일에서 삭제

 curl -H "X-Http-Method-Override: delete" -H "Content-Type:application/json"  -d '{"id":4}' http://localhost:3000/courses/5.json

아직 테스트하지는 않았지만이 Java 앱은 REST 서비스를 테스트하기에 좋은 것 같습니다. Javalobby에 대한 튜토리얼도 있습니다.

자바 앱 : http://code.google.com/p/rest-client/

Tuto : http://java.dzone.com/announcements/wiztoolsorg-restclient-21-rele


Simple REST Client도 Google Chrome의 확장 프로그램입니다. https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb


SOA Cleaner는 비누와 휴식을 모두 테스트하는 테스트 도구입니다 (WCF도 있지만 해당 기능이 필요하지 않은 것 같습니다). 매우 직관적이고 유용합니다. .NET으로 작성되었습니다. 무료 버전도 사용할 수 있습니다. http://xyrow.com 에서 다운로드 할 수 있습니다 . 행운을 빕니다!


사내 .NET 프레임 워크로 RESTful 서비스를 테스트하고 있습니다 (Java로 이식하는 데 문제 없음). 기본 원리들:

  • 클라이언트 빌드 (호출 용)
  • 빌드 유형 클래스 (XML 및 JSON)
  • 응답 직렬화 해제
  • 물건을 주장하다

더 많은 정보를 원하시면 기꺼이 말씀 드리겠습니다.


저는 Google Chrome 용 REST 콘솔 확장 프로그램사용 하고 있으며 지금까지 시도한 것 중 최고입니다. 또한 OAuth와 같은 다양한 보안 메커니즘을 지원합니다.

(업데이트 2 : 링크 수정)


Java의 경우 다음과 같은 단위 테스트를 개발할 수있는 RESTFuse 도 있습니다 .

@Rule
public Destination destination = new Destination("http://localhost:8080/rest/");


@HttpTest( method = Method.GET, path = "/status" ,authentications =
   @Authentication(type = AuthenticationType.BASIC, user = "joe", password = "doe")
)
public void testAuthRhqadmin() {
    com.eclipsesource.restfuse.Assert.assertOk(response);
}

이 테스트는 http://localhost:8080/rest/status암호 doe가있는 사용자 joe 에 대해 실행 되고 인증됩니다. 그런 다음 메서드 본문은 GET 호출이 200 상태 코드를 반환하는지 확인합니다.


Python의 httplib를 사용해보십시오. 방법, URL을 지정하고 매개 변수 / POST 본문에 urllib.urlencode를 사용하는 것은 매우 쉽습니다.

원하는 경우 오류보고를 위해 내장 된 unittest 모듈과 결합 할 수 있습니다.


저는 특히 부하 테스트와 같은 작업을 위해 JMeter를 사용하고 있습니다. SoapUI (내가 사용한)와 비슷하지만 웹 페이지 테스트에 더 적합하므로 RESTful 서비스를 테스트 할 때도 꽤 괜찮습니다.


REST 웹 서비스를 테스트하기 위해 특별히 프로그램을 작성했습니다. .NET 2.0으로 작성된 매우 간단한 응용 프로그램입니다 (Windows Vista에서만 테스트했지만 XP에서도 작동해야 함). 응용 프로그램은 HttpWebRequest를 사용하여 요청을 만들고 결과 응답과 요청 및 응답에 대한 헤더를 표시합니다. 나는 약간의 테스트를 수행했지만 웹 서비스를 테스트하는 데 도움이 될 것이라고 생각했습니다.

REST 테스트


현재이 목적으로 wsclient CLI 앱을 조사 중입니다 ( http://wso2.org/library/3362 ). 매우 유망하며 bash 셸에서 빠른 테스트를 해킹하는 데 사용할 수 있습니다. 물론 여기에서 언급 한 것처럼 * nix 시스템과 함께 제공되는 많은 도구는 약간의 코딩 / 스크립팅으로 작업을 수행합니다.


If you like using Ruby there's a REST-Client gem for it

For testers I find ruby is a really easy language to learn, and it has some excecllent tools like Cucumber for doing BDD style acceptance tests.


I've tried numerous REST clients and by far the best I've used is the Chrome app: DHC.

DHC (aka Dev HTTP Client) is designed and developed by a developer for developers to make direct HTTP resource discovery, manipulation and testing more easily. Beside the main function, sending/receiving custom HTTP requests/responses, it allows permanently to save a request to a local repository for later reuse and moreover the request declaration can include variables that are context specific. With the use of contexts you can easily switch between various environments without modifying request declaration. (e.g. from a test environment to production)


Testing REST full web services is a easy task to do. Free ad-ons are available on the browsers as REST Client from where you have to send a web service with expected/required method type: GET/POST/PUT/DELETE If the parameters are matched then output will get generated in the body of browser.enter image description here


I know it is very old question, but could be helpful to others. Just to answer your first question you can check here to get some REST webservices to test.

Fiddler and Poster plug in Firefox can be use to test any REST web services. SoapUI also comes with RESTful webservices support.


For advanced REST testing you can try HttpMaster.
It supports dynamic parameters, friendly viewers for XML/JSON, and various types of response data validations that can be combined into logical expressions.
For basic http requests some browser plugin will be sufficient.


OnionTest still beta , but quite useful

참고URL : https://stackoverflow.com/questions/203495/testing-rest-webservices

반응형