
バックエンドは、API仕様で指定されているほど完全に機能するとは限りません。 たとえば、誰かが出力JSON文字列に必須パラメーターを入力するのを忘れたり、「0」の代わりにnullを入力することを決定したりします。 そのようなデータがモバイルアプリケーションに侵入すると、その結果が最も不快になる可能性があります。
今日は、そのようなケースを識別するために使用されるツールについてお話します。 これがRunscopeです。

どのように機能しますか?
Runscopeは、自動化されたAPIテスト用のサービスです。 これを使用すると、サーバーに要求を送信し、事前定義された基準に従って受信した応答を確認できます。 Runscopeのインターフェースは、APIの仕様が手元にあれば直感的です。
1.リクエストを作成する
以下がサポートされています。
- HTTP動詞。 必要なすべてのメソッド(GET、HEAD、POST、PUT、PATCH、OPTIONS、DELETE)
- ログイン/パスワードおよびOAuth認証
- ヘッダーの変更
- URLですぐに置換されるクエリ文字列パラメーター
- ボディとして送信される通常のパラメーター

2.チェックのインストール
アサーションは、サーバーの応答を確認するために使用されます。 答えのどの部分でも好みに合わせてチェックできます。 たとえば、ユーザーの残高をリクエストし、次の答えを確認する必要があります。
{ "balance":150 }
この状況では、次のアサーションを設定できます。

アサーションは多くの比較をサポートしています。 それらのいくつかを次に示します。

3.変数の使用
行の複数のクエリで同じデータを使用する必要がある場合は、変数を作成できます。
テストを実行する前に変数を作成できます。

または、テスト中に回答に参加して、変数として使用できます。

作成された変数は、右上隅の[リクエスト]タブに表示されます(セクション1リクエストの作成を参照)。 それらをリクエストに表示するには、それらをクリックするだけです。
4.スクリプトの使用
スクリプトはすべてのリクエストで使用されるわけではありませんが、非常に柔軟なテストを提供します。 スクリプトはJavaScriptで記述されています。 主なツールは、 Chai Assertion Libraryです。
スクリプトを使用すると、次のことができます。
1.クエリ実行後に変数を変更する
2.情報をログに出力します
3. Runscopeがサポートするすべてのサードパーティライブラリの機能を使用する
実際のテストで使用されるサンプルスクリプト:

variables.get(「トークン」)は、「変数」タブで作成された変数をRunscopeに取得します。
その結果、次の情報がログに表示されます。

5.回答を見る
テストを実行すると、Runscopeを使用して各リクエストの結果を確認できます。

重要!
Runscopeは、1 MBを超える応答を表示しません。 Runscopeを使用して画像を表示する場合、これは問題の原因になります。
いくつかのクエリを作成した後、本格的なテストを取得します。これは、大きな緑色の[今すぐ実行]ボタンで起動できます。

Runscopeでは他に何ができますか?
1. ドキュメントを書くのは良いことです。
2.スケジュールに従ってテストを実行します。
3.すべてのテストからパフォーマンス統計を自動的に収集します。
4.実行されたテストの通知をメールに送信します。
5.サードパーティのサービスに参加して、その追加機能を使用します。 たとえば、GitHubへのコミット後にテストを自動的に実行します。
6.別の場所からテストを実行します。 Runscopeは、世界中に散在するいくつかのプロキシサーバーを提供し、それらからテストを実施します。
7.トリガーURLを使用して、テストをリモートで実行します。 実際、デバイスから特別なURLにアクセスするだけで、テストが開始されます。
8.今すぐ見たくない場合は、以前のテストの結果を保存します。
最も重要なこと
Runscopeの価格設定ポリシーは、組織あたりのユーザー数と月あたりのリクエスト数のみを決定します。 リクエストの制限を超えるためには、別途支払う必要があります(1000リクエストあたり約0.30セント)。
ただし、無料のアカウントを維持できます。
まとめ
Runscopeは積極的に開発しており、多くの場合、新しい機能を展開しています。 このサービスは非常に単純であり、そのすべての機能がこの記事で説明されているわけではありません。 Redmadrobotでは、QAだけでなく、開発者やビジネスアナリストとも協力しています。 次に、Runscopeを使用して、新しいAPIと古いAPIをテストし、JSON文字列を便利な形式で表示し、さまざまなアカウントのログを収集します。
特定のデバイスでのサーバー発行をインターセプトするには、Charlesを使用します。
チャールズ:QAエンジニアの兵器庫に不可欠なツール