RESTfulサービスをデバッグする簡単な方法を探しています。たとえば、ほとんどのwebappsは、平均的なWebブラウザーを使用してデバッグできます。残念ながら、同じブラウザでは、HTTP PUT、DELETE、さらにはある程度HTTP POSTをテストすることはできません。
テストを自動化するつもりはありません。理想的には、独自のクライアントを作成せずに、迅速な健全性チェックを通じて新しいサービスを実行したいと考えています。
RESTClient のように、要求と応答を簡単に検査できる既存の「RESTクライアント」ツールを使用します。
私の会社では、RESTfulサービスのテストにさまざまなツールとアプローチを使用しています。
cURL scripts-基本的にファイルに保存された単一のコマンドを記述します。メソッドごとのリソースごとに1つのファイル。 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 Web Services の一部に触発されたものです。著者は、WebサービスとWebアプリケーションの間の境界線が通常想定されるほど堅固で厳密である必要はないかもしれないことを示しています。
Restlet フレームワークを使用して、機能テストを Groovy クロージャーとして記述し、テストランナーのGroovyスクリプトでテストを実行します。必要に応じて、テストはステートフルであり、相互に構築し、変数を共有できるため、これは便利です。 RestletのAPIはシンプルで直感的で、簡単なHTTPリクエストを記述して応答をテストするのが簡単であり、Groovyで使用するとさらに簡単になります。 (テストランナースクリプトを含むこのテクニックを 私たちのブログ で共有したいと思っています。)
Postman 、Google Chrome拡張機能、役立つかもしれません。
RequestBinはデバッグに役立ちますRESTリクエスト。一意のURLへの投稿とリクエストデータは更新/表示されます。他のツールが利用できない場合はピンチに役立ちます。
Fiddlerの Composer を使用してデバッグすることができます restful services ..
JD 12 Sep 2013を更新:Rest BuilderがComposerと呼ばれるようになりました。
cURL
は問題なく動作します。
私は [〜#〜] postman [〜#〜] に落ち着きました
すべてのREST私が考えることができる機能をサポートし、UIは絶対に優れています。唯一の欠点は、Chromeを必要とすることです。
Soap UIを使用して、REST APIをテストしています。
他のどのツールよりも完全です:
私はSmartBearで働いていません。 SOAP WebServicesにSoapUIを使用している間、私はすでにSoapUIの大ファンでした。
Google Code から入手できるrestclientを使用します。これは単純なJavaすべてのHTTPメソッドをサポートし、HTTPヘッダー、接続などを完全に制御できるSwingアプリケーションです。
ここに完全に欠けているため: https://luckymarmot.com/Paw
今までペニーの価値がある...
Nice RESTクライアントが付属している Jersey を使用して、RESTfulリソースの単体テストを作成する傾向があります。 JAX-RSは、JerseyクライアントがJAXB/XML/JSON/Atomなどのエンティティプロバイダーを再利用できるため、クライアント側の単体テストで使用するのと同じオブジェクトをサーバー側で再利用できます。
たとえば、 は単体テストケースApache Camelプロジェクトから RESTfulリソースからXMLペイロードを検索します(JAXBオブジェクトエンドポイントを使用) )。 resource(uri)メソッドは、 this base class で定義されており、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);
Peter Hiltonの回答にあるツールの1つを使用する以外に、LWPまたは同様のツールを使用してテストのスクリプトを作成することが唯一の選択肢であると言わなければなりません。 couldソケットを開いて生のHTTPリクエストを送信し、返される内容を調べるだけでLWPの使用をバイパスします。しかし、私が知る限り、この種のドメイン用のテストツールは不足しています。ほとんどの場合、この問題スペースは主にWebサイト開発者のレンズから見たものであり、ブラウザはテストプラットフォームとして十分です。 。
Firefoxには RESTClient プラグインがあり、メソッド、パラメーター、ヘッダーなどの異なるリクエストを送信します。
マルチパートフォームデータ送信の追加機能を備えた同じ目的の無料ツールが必要な場合は、こちらにあります http://code.google.com/a/eclipselabs.org/p/restclient-tool/
皆さんは poster firefoxの拡張子を確認する必要があります。それは使用するのに十分シンプルで便利です:)