REST Webサービスのテスト[終了]
-
03-07-2019 - |
質問
私の組織は、JBoss アプリサーバー上で RESTful Web サービスを構築することに取り組んでいます。QA チームは、これまで SoapUI を使用して SOAP Web サービスをテストすることに慣れてきました。SoapUI には、REST 機能を備えた新しいバージョンがあります。私たちはそれを使用することを検討しています。
- 誰かがテストできる、ネット上に無料で公開されている RESTful サービスはありますか?
- RESTful Web サービスのテストに利用できる (および使用されている) ツールは何ですか?
他のヒント
Firefoxアドオンポスターをお試しください。これは使いやすく、すぐに起動します
かなり簡単なPythonを使用して、Webサービスを実行できます。セキュリティに応じて、単にPythonの urllib
または urllib2
を使用してRESTリクエストを行い、回答を調べることができます。
さらに、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を使用して、各リクエストのダイジェスト認証を通過させます。かなり複雑ですが、興味があればエッセンスを共有できます。
CURLで途中まで行きます。残りの半分は、ヘッダー、応答コード、およびエンティティコンテンツをチェックして、その品質を確認しています。そのためにさまざまなツールを使用できます(シェルスクリプトランドでは、ヘッダーとコンテンツをファイルにパイピングし、それらを差分するだけでうまくいくかもしれません)。ツールセットをさらに改良することはそれほど難しくありません。おそらく、お好みの単体テストフレームワークで丸まってしまうかもしれません。
AJAXで残りのWebサービステストパネルを構築しました。実際にはそれほど難しくありませんでした。いくつかのセキュリティ上の問題を解決する必要があります(つまり、同じサーバー上にテストスイートがあるか、署名されたJavascriptがあることを確認します)。
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 Webサービスをテストする最も簡単な方法は、ターミナルで curl
を使用することです。
レールの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
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クライアントは、Google Chromeの拡張機能でもある https:// chromeを使用できます。 google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb
SOA Cleanerは、石鹸と休息の両方をテストするテストツールです(WCFでも、その機能は必要ないようです)。非常に直感的で使いやすいです。 .NETで書かれています。無料版も利用できます。 http://xyrow.com からダウンロードできます。がんばって!
RESTfulサービスを社内の.NETフレームワークでテストしています(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(私も使用しました)に似ていますが、Webページのテストに向いているため、RESTfulサービスのテストにもかなり適しています。
REST Webサービスのテスト専用のプログラムを作成しました。 .NET 2.0で記述された非常にシンプルなアプリケーションです(Windows Vistaでのみテストしましたが、XPでも動作するはずです)。アプリケーションはHttpWebRequestを使用して要求を作成し、結果の応答、および要求と応答のヘッダーを表示します。少しテストを行いましたが、Webサービスのテストに役立つと思いました。
現在、この目的でwsclient CLIアプリを調査しています( http://wso2.org/library/3362 )。これは非常に有望であり、bashシェルからクイックテストをハッキングするために使用できます。もちろん、多くの人がここで言及したように、* nixシステムに付属しているツールの多くは、ちょっとしたコーディング/スクリプティングで仕事をします
Ruby を使用するのが好きなら、 REST-クライアントジェム それのための
テスターにとって Ruby は非常に学びやすい言語であり、BDD スタイルの受け入れテストを実行するための Cucumber のような優れたツールがいくつかあります。
多数のRESTクライアントを試してみましたが、使用した中で最も優れているのはChromeアプリです: DHC 。
DHC(別名Dev HTTPクライアント)は、開発者がHTTPリソースの直接的な発見、操作、テストをより簡単に行えるように開発者によって設計および開発されています。主な機能であるカスタムHTTPリクエスト/レスポンスの送受信に加えて、後で再利用するためにリクエストをローカルリポジトリに永続的に保存し、さらにリクエスト宣言にコンテキスト固有の変数を含めることができます。コンテキストを使用すると、要求宣言を変更せずにさまざまな環境を簡単に切り替えることができます。 (例:テスト環境から本番環境まで)
RESTフルWebサービスのテストは簡単な作業です。 ブラウザでRESTクライアントとして無料のアドオンを利用できます。そこから、期待される/必要なメソッドタイプのWebサービスを送信する必要があります。 GET / POST / PUT / DELETE パラメータが一致すると、ブラウザの本文に出力が生成されます。
これは非常に古い質問ですが、他の人にとっては役に立つかもしれません。最初の質問に答えるために、ここでテストするREST Webサービスを取得します。
FirefoxのFiddlerおよびPosterプラグを使用して、REST Webサービスをテストできます。 SoapUIにはRESTful Webサービスもサポートされています。
高度なRESTテストでは、 HttpMaster を試すことができます。
動的パラメーターをサポートし、 XML / JSONのわかりやすいビューア、および論理式に結合できるさまざまなタイプの応答データ検証。
基本的なhttpリクエストには、ブラウザプラグインで十分です。
OnionTest はまだベータ版ですが、非常に便利です