私の組織は、JBoss appserverでRESTful Webサービスの構築に取り組んでいます。 QAチームは、これまでSoapUIを使用してSOAP Webサービスをテストしています。SoapUIには、REST機能があります。これを使用することを検討しています。
Firefoxアドオンポスターをお試しください。これは使いやすく、すぐに実行できます。
かなり些細なPythonを使用してWebサービスを実行できます。セキュリティによっては、Pythonのurllib
またはurllib2
を使用してRESTリクエストを実行し、答えを調べることができます。
さらに、Python unittest
を使用して、PythonサービスのRESTテストの実行を制御することもできます。
class TestSomeREST( unittest.TestCase ):
def setUp(self):
REALM = "[email protected]"
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を使用して、リクエストごとにダイジェスト認証をパススルーします。かなり複雑ですが、興味がある場合はその本質を共有できます。
チェックアウト フィドラー
RESTサービスをテストするには、 REST Assured を試してください。これにより、RESTサービスと、 Java(JUnitまたはTestNGを使用)。
CURLで途中まで行きます。残りの半分は、ヘッダー、応答コード、およびエンティティコンテンツをチェックして、その品質を確認しています。そのためにさまざまなツールを使用できます(シェルスクリプトランドでは、ヘッダーとコンテンツをファイルにパイプし、それらを差分するだけでうまくいくかもしれません)。ツールセットをさらに洗練することはそれほど難しくありません。おそらく、選択した単体テストフレームワークと丸まってしまいます。
AJAXで残りのWebサービステストパネルを作成しました。実際にはそれほど難しくありませんでした。いくつかのセキュリティ上の問題を解決する必要があります(つまり、同じサーバー上にテストスイートがあるか、署名されたJavascriptがあることを確認します)。
Postmanをご覧ください- https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/ 。これは私が過去数か月にわたって取り組んできたツールであり、最近では、大規模なREST=プロジェクトで基本的なRESTエンドポイントテスト。
このコードはGithubでも利用できます。 https://github.com/a85/POSTMan-Chrome-Extension
REST Webサービスをテストする最も簡単な方法は、ターミナルでcurl
を使用することです。
RailsのWebサービスをテストするために使用したコードがいくつかあります。サービスに合わせて変更できます。
[〜#〜] get [〜#〜]
curl http://localhost:3000/courses.json
[〜#〜] post [〜#〜]
curl -H "Content-Type:application/json" -d '{"courseCode":"55555","courseName":"SEEEE","courseYr":999}' http://localhost:3000/courses.json
Railsの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
DELETE in Rails id with 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のチュートリアルもあります。
Javaアプリ: http://code.google.com/p/rest-client/
Tuto: http://Java.dzone.com/announcements/wiztoolsorg-restclient-21-rele
simple REST ClientはGoogleの拡張機能ですChrome too https://chrome.google.com/webstore/detail/ fhjcajmcbmldlhcimfajhfbgofnpcjmb
SOA Cleanerは、石鹸と休息の両方をテストするテストツールです(WCFでも、その機能は必要ないようです)。非常に直感的で使いやすいです。 .NETで書かれています。無料版も利用できます。 http://xyrow.com からダウンロードできます。がんばろう!
私は RESTコンソールエクステンション を使用していますChromeそしてそれは最高です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ステータスコードを返すことを確認します。
社内の.NETフレームワークでRESTfulサービスをテストしています(Javaでの移植に問題はありません)。基本理念:
さらに情報が必要な場合は、お気軽にお問い合わせください。
私はそれが非常に古い質問であることを知っていますが、他の人に役立つかもしれません。最初の質問に答えるために、 here をチェックして、テストするWebサービスをREST.
FirefoxのFiddlerおよびPosterプラグを使用して、任意のREST Webサービスをテストできます。SoapUIにはRESTful Webサービスのサポートも付属しています。
現在、この目的のためにwsclient CLIアプリを調査しています( http://wso2.org/library/3362 )。これは非常に有望であり、bashシェルから簡単なテストをハッキングするために使用できます。もちろん、多くの人がここで言及したように、* nixシステムに付属するツールの多くは、ちょっとしたコーディング/スクリプティングで仕事をします。
REST Webサービスをテストするためのプログラムを作成しました。NET2.0で作成された非常にシンプルなアプリケーションです(Windows Vistaでのみテストしましたが、XPも)。アプリケーションはHttpWebRequestを使用して要求を作成し、結果の応答、および要求と応答のヘッダーを表示します。少しテストを行いましたが、役立つかもしれないと思いましたWebサービスをテストします。
私はこれのために、特に負荷テストのようなもののためにJMeterを使用しています。 SoapUI(私も使用しました)に似ていますが、Webページのテストに向いているため、RESTfulサービスのテストにもかなり適しています。
Pythonのhttplibを試してください。メソッド、URLを指定し、parameters/POST本文にurllib.urlencodeを使用するのは非常に簡単です。
必要に応じて、これを組み込みのunittestモジュールと組み合わせて、エラーを報告できます。
Ruby=を使用したい場合は、 REST-Client gem があります
テスターにとっては、Rubyは学ぶのがとても簡単な言語であり、BDDスタイルの受け入れテストを行うためのCucumberのような優れたツールがあります。
テストREST完全なWebサービスは簡単なタスクです。ブラウザでは、REST Webを送信するクライアント予想/必須メソッドタイプのサービス:GET/POST/PUT/DELETEパラメーターが一致した場合、出力はブラウザーの本体で生成されます。
私は数多くのRESTクライアントを試しましたが、これまでに使用したベストはChrome app: [〜#〜] dhc [ 〜#〜] 。
DHC(別名Dev HTTPクライアント)は、開発者がHTTPリソースの直接的な発見、操作、およびテストをより簡単に行えるように開発者によって設計および開発されています。主な機能であるカスタムHTTPリクエスト/レスポンスの送受信に加えて、後で再利用するためにリクエストをローカルリポジトリに永続的に保存し、さらにリクエスト宣言にコンテキスト固有の変数を含めることができます。コンテキストを使用すると、要求宣言を変更せずにさまざまな環境を簡単に切り替えることができます。 (例:テスト環境から実稼働まで)
高度なREST=テストでは、 HttpMaster を試すことができます。
動的パラメーター、XML/JSONの使いやすいビューアー、および論理式に結合できるさまざまなタイプの応答データ検証をサポートします。
基本的なhttpリクエストには、一部のブラウザプラグインで十分です。