Start testing REST, GraphQL, and HTTP APIs from the browser in 1s. Free, no account needed.
![HTTPie for Web — API testing client](https://cdn-ak-scissors.b.st-hatena.com/image/square/7a240a84558a71a20ede4f840bd27146c14cc25f/height=288;version=1;width=512/https%3A%2F%2Fhttpie.io%2Fapp%2FShare.png)
技術部の taiki45 です。 以前「サービス分割時の複雑性に対処する: テスト戦略の話」という記事で、サービス間のインテグレーションテストにおける問題について紹介しました。現在のクックパッドではこの問題の解決のために Pact というツールを導入して運用しています。この記事では、その運用の知見を紹介できればと思います。 Pact Pact は Consumer-Driven Contract testing (CDC testing) を実現するためのツールです。"Consumer"、"Provider" という見慣れない単語が出てきますが、この記事ではだいたい「Consumer = Web API クライアント」、「Provider = Web API サーバー」と対応ができます。この記事では具体的な Pact の利用例を通じて CDC testing がどういうものなのかについても
Goで net/http を使ったControllerのテストには、 net/http/httptest モジュールを使うと擬似的にサーバをその場で立て、登録したハンドラにリクエストを送れます。 ただ、APIに使うアクションはたびたび、外部のAPIを叩くこともあります。 その際、テストを実行するときに外部APIを使えない状況(本番環境とは違う状況、例えば、production用のAPIの発行には金銭が発生するなど)に遭遇します。 そんなときに知られているテクニックとして、テスト時に外部APIへのリクエストをDouble(Stub)することです。 その外部APIが返却するであろう期待値を登録しておけば正常ケースを、エラー値を登録しておけばエラーケースをテストできます。 ここで例に挙げるStubする方法は、 http.Client をもとにHTTPリクエストすることを前提としています。 ではど
最近はAPIファーストと言われる言葉が聞かれるようになっています。スマートフォンアプリが隆盛になり、それに合わせてまずWeb APIを優先して開発していこうという考え方です。 しかしWeb APIがすぐに開発できるわけでもありません。そこで使ってみたいのが仮の値を返してくれるサーバです。今回はその一つ、StubOnWebを紹介します。 StubOnWebの使い方 StubOnWebのデモサイトです。 レスポンスに関する設計を行います。遅延する秒数も設定できます。 そしてアクセスすると設計した通りの値が返ってきます。 StubOnWebはURLが自動生成になるので決め打ちでクライアントを作るのを防げるかも知れません。自然と使っているWeb API一覧もできます。ローカルで立てればオフラインでも使えるのでサーバへ負荷を考えずに済みますし、テストもしやすくなるでしょう。 StubOnWebはEl
Announcing Kong Insomnia 9.3 with after-response scripting, global environments, folder-level configuration, and more. Design, debug, test, and mock APIs locally, on Git, or cloudBuild better APIs collaboratively for the most popular protocols with a dev‑friendly UI, built-in automation, and an extensible plugin ecosystem. Get Started for Free
はじめに 3月頃,『【Rails】RSpecでWeb APIのテストでハマったところ①』という初心者丸出しな記事を書きました. あれから9ヶ月ほど,お仕事としてRailsに触れたりしたため知見・スキルも向上してきたと思います. そして今,前述の記事を見直したところ恥ずかしくて顔を覆いたくなる感じになったので改めてWeb APIのテストについて書いていきます. APIのテスト? そもそもWeb APIのテストはどこに書くの?ってところからですが… Controller SpecではなくRequest Specに書いていきます. Use RSpec Request Specs Since we’ve established that we’ll be using Rack::Test to drive the tests, RSpec request specs make the most s
「JSON GENERATOR」はダミーのJSONデータを自動生成してくれるサイトです。JSONでテストデータを作りたいときに便利です。たとえばダミーの名前や電話番号、住所などの情報を自分で考えるのは面倒です。このサイトを使えば、作成したいJSONの形式を指定するだけで、ランダムな情報を自動生成してくれます。 以下に使ってみた様子を載せておきます。まずJSON GENERATORへアクセスしましょう。左側が自分が作成したいJSONデータの形式です。キーは指定しておき、値にどんな情報が欲しいか入力しておきます。 右側が自動生成されたダミーのJSONです。値にランダムな情報が入力されていますね。キーさえ指定しておけばあとは自動的に対応する値をいれてくれるのは非常に助かります。ぜひJSONでダミーデータを作成したいときにご活用ください。 JSON GENERATOR (カメきち)
http://trafficandweather.io/posts/2014/4/29/episode-24-i-dont-really-know-what-thats-referring-to 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約3時間前 OpenTableはその名の通りレストランの予約サービスを提供していて、(おそらく)最大手。スタンドアロンのアプリもありますが、USのレストランのサイトで予約をするときに、OpenTableの機能が組み込まれていることが多いです。 RunscopeのJohn SheehanとDropboxのSteve Marxがやっているポッドキャスト「Traffic and Weather」(APIとクラウドのネタを取り上げるのでこの名前にしたとのこと。)で、OpenTable
HelpList of template tagsrandomReturns random item from passed arguments list. Usage{{random([arg1], [arg2] ... [argN])}}Returns*repeatSpecifies number of repeats of array item. Repeatable array must contains only two items: first is repeat tag, second is item that must be repeated. If no arguments is specified item will be repeated from 0 to 10 times. If min argument is specified, item will be re
もう先週ですが、表題のタイトルで「Consumer Service Engineer MeetUp Vol.1 ~iOS編~」という会でお話しさせていただきました。 このようなタイトルの発表にした理由についてですが、はてなとしてお話しするということで、ちょっと硬派な方に振ってみました。結果としては良いバランスだったのではないでしょうか。 発表資料を掲載します。 また以下に発表の概略を書いておきました。ご参考ください。 前提 このMeet Upの主旨が「コンシューマ向けのWEBサービス(アプリ)の企画・開発・運営をしている会社によるエンジニア向けの講演、パネルディスカッション、懇親会を含めたMeetUpです!」となっていましたので、それではWebサービスとアプリを繋ぐWeb APIについて、それを利用するiOSアプリについて考えます。Web APIというのは古くて新しい話題で、いまや専らJS
どうも、中本(特に冷やし五目味噌タンメン+バター)にハマっている高橋です! 最近のアプリケーション開発といえば、フロントエンドはサーバサイドが準備したAPI経由でデータを取得したり保存したりという構成が人気のようです。そこで「API、ちゃんと動いてるんかなぁ?」というテストを書いて、実際にリクエスト&レスポンスで検証してみようと思います。 今回テスティングフレームワークとして使用する Frisby(フリスビー) は簡単に書けて高速に動作するというのが持ち味の REST API のテスティングフレームワークです。投げて返ってくるFrisbeeと掛けているのでしょうか?これドヤ顔で言われるとちょっと腹立ちますが、こういうネーミングセンスには関心させられます。笑 ◯インストール 今回は「frisbytest」というディレクトリ内で作業をしていきたいと思います。 コンソールを起動したら以下のコマン
Grape は Ruby で API を書くのに便利なフレームワークです。 Grape 自体については fakestarbaby 氏がすでにすてきなエントリを書いてくださっています。 Grape | API生成マイクロフレームワーク #Rails #Gems #Ruby #grape #api_builders - Qiita ここではどうやってテストを書くのかということについて書いてみたいと思います。 想定 RSpec の受け入れテストの request_spec を使うよ API は JSON を返すよ API 用のサブドメイン(api.foobar.com)を切っているよ JSON のテストは json_expressions を使うよ(参考) OAuth 2.0 の Provider になって Web Application Flow とかで認証しちゃったり モックは Factor
テスト書きすぎ問題 - hitode909の日記 階層が増えるとテストが増える - はこべブログ ♨ テストと対応関係 - $shibayu36->blog; 最近書いているWebアプリは、HTTPリクエストを送ってレスポンスと状態をテストする、というテストだけ書くようにしてる。リクエストするとブログエントリを返す、というサービスだとこういう風なテストを書いてる。(HTMLを返すようにすると話が広がって説明が面倒なのでJSONを返すAPIで説明する) describe "Entry resource" do let(:params) do {} end let(:env) do { "HTTP_AUTHORIZATION" => "Bearer: #{access_token.token}" } end let(:access_token) do AccessToken.make(user
こんにちは、Web系エンジニアのナカガワです。 皆さん、REST APIのテストはどのようなツールを使っていますか? 私はJUnitでテストが書ける「Restfuse」を使っています。 今回、実プロジェクトでRestfuse + Jenkinsで定期的にREST APIをテストする仕組みを構築したため、このあたりのノウハウをまとめて書きたいと思います。 REST APIテスト自動化のゴール ゴールは以下の二つです。 (1) APサーバ上で動作しているWebアプリケーションに対し、自動でREST APIテストを実施する。 (2) Jenkinsを用いてCIを実施可能にする。 まず今回は、前者のREST APIテストを実施するところまで紹介します。 Restfuseを使って、REST APIをJUnit上でテスト可能に! 先にも書きましたが、私が使ったのはRestfuseというツールです。 R
http://www.commandercoriander.net/blog/2014/01/04/test-driving-a-json-api-in-rails1 comment | 0 pointsPivotal LabsのEno ComptonがRailsでJSON APIをテスト形式で理解できるように紹介してくれてます。「Railsアプリをてがけると、いずれ、シングルページアプリ、モバイルクライアントのためにRESTful APIが必要になるだろうから練習用に。」ということで、コードはGithubで公開されています。 GET /movies POST /movies GET /movies/:id PUT /movies/:id DELETE /movies/:id 上記のrouteをサポートするために、Railsアプリ + RSpec + FactoryGirlを用意したら、
その1はこちら。 その2はこちら。 その3はこちら。 このシリーズの最終回は、引き続き本番アップまでのフローの詳細と、依存関係の管理、テスト詳細について紹介します。 1) 開発から本番アップまでのフロー Neflixの、UIとサービスをプライベートAPIでつないだアーキテクチャー [概念図] におけるデリバリーパイプラインについて、このフロー図に従って、詳細を説明。 週次で本番アップするリリースブランチと、日次で本番アップする本番ブランチのどちらを選択するかについては、厳密なルールはないが、 APIチーム以外のメンバの追加テストが必要 依存するライブラリの更新が必要 本番にアップする前にテスト/修正のサイクルがもう少し必要 な場合は、リリースブランチを使う。 [1] エンジニアがローカルの環境で開発/テストを繰返す。ランタイム上で新機能をオン/オフのコントロールができるようにFeature
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く