インターフェイス テストで 500 エラーが発生しましたか? パニックにならないでください。ヘッダーに問題がある可能性があります。

質問: インターフェイスの入力パラメータ、アドレス、リクエスト メソッドはすべて正しく設定されていますが、リクエストは依然として 500 を返します。システム エラーが報告されるのはなぜですか?

日々のインターフェイス テストのプロセスでは、完全なインターフェイス HTTP リクエストには通常、リクエスト ヘッダー、リクエスト本文、応答ヘッダー、応答本文、リクエスト メソッド (post/get など) の 4 つの部分が含まれていることを誰もが知っています。テストするときは、リクエストの入力パラメータ、つまりリクエスト本文の情報の方が重要なので、リクエスト ヘッダーの重要性は無視されます情報ヘッダーが正しく定義されていない場合、インターフェイス要求は失敗します。

この記事では主に、情報ヘッダーの機能を簡単に理解します。Jmeter は、HTTP ヘッダー マネージャー情報ヘッダー マネージャーを提供します。これは、仕様クライアントとサーバー間の HTTP インターフェイス リクエストのデフォルト仕様を定義するために使用されます。

注: HTTP リクエスト メソッドは 8 つありますが、実際のアプリケーションで一般的に使用されるのは get と post で、他のリクエスト メソッドもこれら 2 つのメソッドを通じて間接的に実装できます。

一般的に使用される標準

一般的に使用される HTTP インターフェイスのリクエスト ヘッダー フィールドは次のとおりです。

l 同意する

受け入れられるコンテンツ タイプを設定する

l ユーザーエージェント

ユーザー エージェントの文字列値は通常、クライアントが使用するオペレーティング システム/ブラウザの名前とバージョンをサーバーに伝えるために使用されます。

コンテンツタイプ

リクエスト本文の MIME タイプ (POST および PUT リクエストに適用可能) を設定し、実際に返されるコンテンツのコンテンツ タイプ (一般的に使用される application/json;charset=UTF-8) をクライアントに伝え、インターフェース応答によって返されるデータを定義します。 json形式、エンコード形式はUTF-8です。

l コンテンツの長さ

リクエストボディのバイト長を設定します

l エンコーディングの受け入れ

受け入れられるエンコード形式を設定する

l 言語の受け入れ

受け入れられる言語を設定する

l 原点

クロスオリジン リソース リクエストを特定します (サーバーに Access-Control-Allow-Origin 応答フィールドを設定するようにリクエストします)。

l リファラー

前のページのアドレスを設定すると、前のページの接続は現在のリクエストを指します。つまり、現在のリクエストがページ A で送信される場合、リファラーはページ A の URL アドレスになります。

l クッキー

Cookie はリモート サーバーから返されるユーザー ID 情報です。この情報はクライアントに保存されます。クライアントは操作を実行するたびに、Cookie を使用して HTTP プロトコルを通じてサーバーと通信します。ID 情報が正しい場合にのみ、インタラクションが成功すること (ログイン後に操作する必要があるインターフェイスでは最も一般的です)。

l Set-Cookie

サーバーがユーザーの ID を識別できるように、一部のユーザー情報を保存するために使用される HTTP Cookie を設定します。通常、これはサーバーから返されるユーザーの ID 情報です (ログインを必要とするほとんどのインターフェイスがより一般的です)。

……

ヘッダー情報の取得方法

インターフェイスの情報ヘッダーにどのような内容が定義されているかは、次のチャネルを通じて取得できます。

1. インターフェースドキュメントの開発と提供

2. パケット キャプチャ ツール charles を使用して、リクエストのヘッダーをキャプチャして表示します。

次の図は、方法 2、パケット キャプチャ ツールを通じて表示されたインターフェイスのリクエスト ヘッダー (Request-Headers) を示しています。

練習

目標: 特定のシステム ログイン インターフェイスは、正常にログインするために jmeter の HTTP リクエストと HTTP ヘッダー マネージャーを使用して、json 形式で返される応答データ (Response) を定義しました。

構成

メニューパス

設定内容:

パケット キャプチャ ツール charles から、インターフェイスは Content-Type: application/json;charset=UTF-8 を定義する必要があります (応答データは json 形式で、エンコード方式は UTF-8 です)。

未定義のヘッダー

以下の図の POST ログイン インターフェイスでは、HTTP ヘッダー マネージャーが設定されません。jmeter スクリプトを実行してインターフェイス リクエストを開始すると、デフォルトの Content-Type: text/plain (プレーン テキスト形式) になるため、リクエストはエラーを報告し、ステータスコード500を返します。

ヘッダーを正しく定義する

情報ヘッダーを正しく定義します: Content-Type: application/json

情報ヘッダーが正しく構成されると、jmeter スクリプト インターフェイスを実行するリクエストが成功し、ステータス コード 200 が返されます。

その他の一般的なメディア形式

text/html : HTML形式

text/plain : プレーンテキスト形式

text/xml : XML形式

application/xhtml+xml : XHTML形式

application/xml: XMLデータ形式

application/json: JSONデータ形式

……

この記事では、未定義のリクエスト ヘッダー (Headers) が原因で発生するエラー コード 500 のみを説明し、他の原因を除外するものではありません。

おすすめ

転載: blog.csdn.net/m0_37723088/article/details/130711704