1.はじめに
ホン兄弟は以前、インターフェイス (Web 側) を調整するために postman を使用していましたが、使い始めて操作するのが非常に簡単です。しかし、APPのページ表示を変更したい場合、データを作成する方が面倒な場合がありますので、自分で作成した方が良いですし、開発に作成させる場合は、眉の低い人に依頼する必要があります。今日の勉強が終わったら、もうこれらの悩みを心配する必要はありません。Charles というツールを使用してそれを実現できます。リクエスト パラメーターを変更したり、レスポンスを変更したりするには、マップ (マップ)、ブレークポイント (ブレークポイント)、リライト (リライト) の 3 つのメソッドを使用できます。
インターフェイス自動テストを学習したい場合は、ここで一連のビデオをお勧めします。このビデオは、ステーション B のネットワーク全体でナンバー 1 のインターフェイス自動テスト チュートリアルであると言えます。同時に、オンラインの数はユーザーが 1,000 人に達し、メモを収集して使用することができます。各種マスターの技術交流: 798478386
2. リクエストパラメータ またはレスポンスデータ を変更する
Charles がブレークポイントを設定するための具体的な操作手順は次のとおりです。 Charles は、特定の要件に応じて、サーバーから返されたコンテンツを変更するという目的を達成できる Map 関数、Rewrite 関数、および Breakpoints 関数を提供します。3 つの機能の違いは次のとおりです。
Map 関数は、特定のリクエストを別のネットワーク アドレスまたはローカル ファイルに長期間リダイレクトするのに適しています。返されたデータのみを変更できます。
Rewrite 機能は、ネットワーク要求での定期的な置き換えに適しています。リクエストデータとレスポンスデータは変更可能です。
ブレークポイント機能は、一時的な変更を行うのに適しています。応答時間中に、要求データと応答データが変更される可能性があります。
2.1 MAP(マッピング)
Charles のマップ機能は、特定のリクエストをリダイレクトし、リダイレクトされたコンテンツを使用してリクエストのコンテンツを変更することです。マップは、名前が示すとおり、マップ リモートとマップ ローカルに分かれています。マップ リモートは、指定されたネットワーク リクエストをリダイレクトします。別の URL にマップ ローカルを指定すると、指定されたネットワーク リクエストがローカル ファイルにリダイレクトされます。
2.2 書き換え
Rewrite 関数は、結果を変更するという目的を達成するために、特定の種類のネットワーク リクエストを定期的に置き換える場合に適しています。
2.3ブレークポイント
一括置換や長期置換には上記の Rewrite 機能が最適ですが、ネットワークリクエストの結果を一時的に変更したい場合も多く、この場合 Rewrite 機能でも目的は達成できますが面倒です。一時的な変更には、ブレークポイント機能を使用することをお勧めします。
ブレークポイント関数は、Xcode で設定したブレークポイントに似ています。指定されたネットワーク リクエストが発生すると、Charles はリクエストをインターセプトします。このとき、Charles でネットワーク リクエストの返されたコンテンツを一時的に変更できます。
3.応答内容 を変更する
場合によっては、サーバーが特定のコンテンツを返すようにしたいことがあります。これは、特殊なケースをデバッグするのに便利です。たとえば、リスト ページが空の場合、データが異常な場合、時間のかかるネットワーク リクエストがタイムアウトした場合などです。Charles が存在しない場合、サーバーが連携して対応するデータを構築するのはさらに面倒になります。現時点では、Charles 関連の関数を使用することでニーズを満たすことができます。
3.1ローカルマップ
Map Local の使用シナリオでは、インターフェイスから返されるデータのさまざまなシナリオを検証し、ローカル マッピングを使用して要求インターフェイスの応答を変更します。Map Local 機能の場合、リダイレクトされたソース アドレスとローカル ターゲット ファイルを入力する必要があります。一部の複雑なネットワーク リクエスト結果の場合は、まず Charles が提供する「応答を保存...」機能を使用してリクエスト結果をローカルに保存し (下図を参照)、次にそれらを少し変更してターゲット マッピング ファイルにすることができます。
具体的な操作手順は以下の通りです。
1. インターフェイスの応答を保存します。右クリック --> 応答を保存 --> バックアップのためにローカル パス (できれば JSON 形式) に保存します。ここでは引き続き自分で作成した API を使用しています。以下に示すように:
2. Charles メニューで、「Tools」→「Map Local」を選択し、対応する機能の設定ページに入ります。以下に示すように:
この操作は少し複雑です。または、次の図に示すように、インターフェイスをクリック --> 右クリック --> Map Local をクリックして、Map Edit ページに入ることができます。
3. マップローカル設定ページで、「マップローカルを有効にする」にチェックを入れ、「追加」をクリックして設定し、マップローカルパスを設定し、ローカルに保存した変更されたjsonファイルを選択します(Zhang SanをBeijing-Macro兄貴に変更しました) )。以下に示すように:
4. ブラウザ アクセスまたはその他のインターフェイス ツールがリクエストを再送信すると、次の図に示すように、期待される結果が実際の結果と同じ、Beijing-Hongge に返されます。
3.2マップリモート
Map Remote の使用シナリオでは、インターフェイスによって返されるデータのさまざまなシナリオを検証し、ローカル マッピングを使用して要求インターフェイスの応答を変更します。マップリモート機能の場合、ネットワークリダイレクションの送信元アドレスと宛先アドレスをそれぞれ入力する必要がありますが、制限を必要としない条件の場合は空白のままで大丈夫です。
具体的な操作手順は次のとおりです。
1. Charles メニューで、「Tools」→「Map Remote」を選択し、対応する機能の設定ページに入ります。以下に示すように:
この操作は少し複雑です。または、次の図に示すように、インターフェイスをクリック --> 右クリック --> Map Remote をクリックして、Map Edit ページに入ることができます。
2. マップリモート設定ページで、「マップリモートを有効にする」にチェックを入れ、「追加」をクリックして設定し、マップ元(インターフェースアドレス:http://10.11.53.193:5566/users/1801)とマップ先(マッピング アドレス: http://10.11.53.193:5566/users/1803)、Hongge はそれを Baidu にマッピングしました。以下に示すように:
3. 次の図に示すように、期待される結果を送信し、Wang Wu の実際の結果と同じ結果を返します。
3.3リライト(書き換え)
Rewrite 関数は、結果を変更するという目的を達成するために、特定の種類のネットワーク リクエストを定期的に置き換える場合に適しています。
1. たとえば、ユーザー アカウント情報を取得するために以前の API リクエストを引き続き使用していますが、現在のアカウントは「Zhang San」で、次の図に示すように、返されたアカウント情報は success:success です。
2. 成功を失敗に置き換えて、ネットワークの戻り値を直接変更してみます。そこで、書き換え機能を有効にして、次のルールを設定します。
3. 次の図に示すように、「書き換えを有効にする」にチェックを入れ、「追加」をクリックしてルールを設定します。
4. ブラウザ アクセスまたはその他のインターフェイス ツールがリクエストを再送信します。次の図に示すように、期待される結果が返されますが、失敗した場合は実際の結果と同じになります。
3.4ブレークポイント(ブレークポイント)
一括や長期の置き換えには上記のRewrite機能が最適ですが、ネットワークの応答結果を一時的に変更したい場合も多く、この時はRewrite機能でも目的は達成できますが面倒です。一時的な変更には、ブレークポイント機能を使用することをお勧めします。
Breakpoints 関数は、Xcode で設定したブレークポイントに似ています。指定されたネットワーク リクエストが発生すると、Charles はリクエストの戻りデータをインターセプトします。このとき、Charles でネットワーク リクエストの戻りデータを一時的に変更できます。
ブレークポイントで返されたデータを変更する方法は、以前の記事 (ポータル) で詳しく紹介されているため、ホン兄弟はここでは繰り返しません。
4.まとめ
ホン兄弟はここで、応答内容を設定および変更するための合計 4 つの方法を紹介していますが、一般的な仕事では、方法を変えずに続けるのではなく、ニーズに応じて柔軟に変更する必要があります。さて、今日は遅くなりましたので、説明と共有はここまでです!辛抱強く読んでいただきありがとうございます~~