2017-09-26 13 views
0

トークンで認証されたREST APIをテストしようとしています。このプロセスは次のとおりです。Jmeterを使用すると承認ヘッダーが消える

  1. トークン
  2. (AUTH_TOKEN)トークンを抽出し、JMeterの中の変数に保存し取得するユーザ名とパスワードを入力して抽出されたトークン値を持つヘッダ「認証」を設定してください。
  3. トークンを使用してリクエストを送信します。私は成功したトークンを抽出することができ

    enter image description here

は、これは私のテスト計画です。ただし、手順4での送信要求は、承認が失われているため失敗しています。ビュー結果ツリーには、要求に承認ヘッダーが含まれていますが、サーバーは承認ヘッダーを見つけることができませんでした。下の図に示すように、AuthorizationとContent-Typeの2つのヘッダーを追加し、リクエストに現れました。サーバーは、それが実際に受信したヘッダを返されたが、承認はありませんでした。

enter image description here

誰も私がこの問題を解決するのに役立つことはできますか?本当にありがとう。

P/S:サーバーは、PythonおよびFlaskフレームワークでRESTful APIを実装しています。 Apache HTTP Serverでサーバーをデプロイしました。

==========は========================

サーバコードが実装されている[更新します] PycharmのFlaskと一緒に。 JMeterから組み込みのFlaskサーバーで実行されるサーバーに要求を送信すると、すべてが完璧です。この問題は、サーバーコードがApache HTTP Serverとともにデプロイされている場合にのみ表示されます。上記の場合のJMeterの設定は、ポートを除いてまったく同じです。しかし、原因がApacheサーバーからのものであれば、合理的ではないようです。私が見つけ

========== [UPDATED &を解決】========================

ここで私の問題の理由Missing authorization header。 Apacheとmod_wsgiを使用してWebアプリケーションをデプロイするため、認証ヘッダーはデフォルトでアプリケーションに渡されません。この行を仮想ホスト構成に追加する必要があります。WSGIPassAuthorization On

+0

レスポンスデータタブにヘッダーが表示されないため、これは問題ではないと思われます – user7294900

+0

レスポンスヘッダーはサンプラーの結果タブに表示されます。だから、あなたがそこにチェックしたいかもしれない –

+0

@ user7294900、Varun Sharma:私はResponse Dataタブがレスポンスボディを示していることを知っています。サーバーは 'Missing token'というエラーを返したため、すべてのヘッダーを返すようにサーバーコードを変更しました。したがって、図の[Response Data]タブでは、サーバーが受信した要求のヘッダーが返されます。 – Nana

答えて

0

apiエンドポイントに「GET/regions」リクエストを含むリクエスト本文が必要かどうかを確認してください。 [リクエスト]セクションの[GETデータ]セクションの2番目のスクリーンショットでは、空欄になっています。これは、ほとんどの場合、サーバーがGET要求とともに要求本体を要求していることを意味します。

+0

API「GET/regions」は領域のリストを返すだけなので、リクエスト本体にはデータは必要ありません。ただし、APIでは、認証のためにリクエストヘッダー「Authorization」にトークンが必要です。このAPIは、リクエストを送信するためにPython Requestsライブラリを使用してPycharmでテストするときに機能します。 – Nana

+0

新しいApacheサーバーが新しい要求を待機しているGET要求のURLのポート番号を渡すことができますか? –

0

あなたのExtract tokenは正しく動作しません。つまり、${BEARER}変数にスクリーンショットで示されている実際の値より前の空白行があります。

Debug Sampler and View Results Tree Listenerの組み合わせを使用して${BEARER}変数の値をダブルチェックしてください。空白行を含めないでください。表示されている場合はExtract tokenの設定を確認し、ヘッダー値のみを返すように修正してください。

JSON Extractorを使用してJSONデータ型から値を取得することをお勧めします。

+0

私が使用した抽出プログラムはJSON Extractorです。私は問題が抽出者に関するものだとは思わない。これはデバッグサンプラーから得た抽出値です。 'JMeterVariables: AUTH_TOKEN = eyJhbGciOiJIUzI1N ...'(私は残りのトークンをカットします) – Nana

関連する問題