Become a JMeter and Continuous Testing Pro

Start Learning
Slack

Test Your Website Performance NOW! |

arrowPlease enter a URL with http(s)

JMeter で HTTP 基本認証を使用する方法

場合によっては、匿名のアクセスが時々制限される可能性がある URL をテストしなければならないことがあります。企業のライブラリやナレッジ ベース、対象が絞られたフォーラムなど、タイプとリソースはさまざまです。それらのすべてはアクセスが制限されている傾向にあります。
 
たとえば、FTP サーバから何かをダウンロードするときには、以下に示す「ゲートキーパー」画面が表示されることがよくあります。サーバがユーザ名/パスワードを必要とする場合は、このポップアップ ウィンドウがブラウザによって生成されます。フレームはブラウザによって異なります(例: Mozilla Firefox、Apple Safari、または Microsoft Internet Explorer)。ただし、どのブラウザであっても、大抵は基本的なリソースにアクセスするにはユーザ名/パスワードが必要です。
 
BlazeMeter: HTTP 基本認証
 
「HTTP 基本認証」という用語はこれに由来します。そして JMeter テストの使用時にこれを処理するための方針が必要です。
 

基本認証

 
スクリプトの記述を始める前に、基本認証の簡単な背景を知っておくと役に立つかもしれません。基本認証とは、HTTP ユーザ エージェントが要求時にユーザ名とパスワードを提供する方法です。
 
なぜそんなことを議論するのでしょうか。単に POST 要求を利用してリソースにアクセスすればよいと思いませんか。理由は単純です。アクセスが制限されているサーバ上のリソースへのアクセスに POST 要求を使用する場合は、ユーザ認証情報にアクセスするためのログイン ページを実装する必要があります。しかし、この方法はプロセスを必要以上に複雑化します。
 
HTTP BA (basic authentication、基本認証)は、cookie、セッション識別子、またはログイン ページを必要としないので、Web リソースへのアクセス制御を実行する最も単純な方法です。

ただし、パフォーマンス テストの実行中にそのような状況になったときのための方針が必要です。phpmyadmin のローカル インストールを使用してこれを行う方法を考えてみましょう。(この Web アプリケーションでは、SQL クエリを記述せずに MySQL データベースを管理することができます。)

* 注: デフォルトでは、phpmyadmin はログイン画面を使用します。
BlazeMerter: JMeter 基本認証のログイン画面
 
この動作を変更して、基本認証を使用するには、config.inc.php を変更します(Linux の場合は、これは /etc/phpmyadmin に配置されています)。そこで、以下の文字列を探します。
 
$cfg['Servers'][$i]['auth_type'] = 'cookie'; 
 
それを次のように編集します。
 
$cfg['Servers'][$i]['auth_type'] = 'http';
 

JMeter での基本認証

 
さて、ここで JMeter を見てみましょう。要素のうちのひとつに HTTP Authorization Manager があります。Authorization Manager では、サーバの認証を使用して制限される Web ページへの 1 つまたは複数のユーザ ログインを指定できます。この認証方法は、制限付きのページにアクセスしようとして、ブラウザにログイン ダイアログ ボックスが表示されるときに見られます。JMeter は、このタイプのページを検出すると、ログイン情報を送信します。

注: [View Results Tree Listener]に認証ヘッダは表示されないため、テスト スクリプトからの値をチェックすることはできません。

詳細に説明をする前に、テスト スクリプトの簡潔な概要を以下に示します。
 
JMeter でのテスト計画の JMeter 基本認証の概要
 
ここで HTTP Authorization Manager を見てみましょう。どのフィールドがあるでしょうか。
 
JMeter HTTP Authorization Manager
 
この例では 3 つのフィールドを扱う必要があります。
 
  • ベース URL - アクセス対象リソースへのリンク。
  • ユーザ名とパスワード -  定義される必要があります。
  • HTTP Authorization Manager は初回実行時に無効になっています。
 
JMeter HTTP Authorization Manager: フィールド
 
これが正しく設定されているので、リソースへのアクセスは許可されません。
 
ここで、HTTP Authorization Manager を有効にしておいた場合の動作を見てみましょう。
 
JMeter で有効な HTTP Authorization Manager
 

このシナリオでは、アクセスはサーバによって許可されます。JMeter は HTML を応答として受信します。

 

JMeter の詳細

 

無料の Web キャスト「JMeter Load Testing at Scale (大規模な JMeter ロード テスト)

 

および「Performance Testing Bootcamp with JMeter and Taurus (JMeter と Taurus を利用したパフォーマンス テストのブートキャンプ)」を視聴してください。

 

質問やコメントがあれば、以下に入力してください。

 

一対一のデモセッションを予約いただくと、BlazeMeter の機能について説明を受けることができます。

   
arrowPlease enter a URL with http(s)

Interested in writing for our Blog?Send us a pitch!