‘テスト関係’ カテゴリーのアーカイブ

ratproxy を使う

2008 年 8 月 27 日 水曜日

ratproxy のインストールからテストまでの手順を紹介します。

ratproxy とは?

ratproxy とは google がリリースした、プロキシ型の脆弱性検知ツールです。

インストールについて

wget http://ratproxy.googlecode.com/files/ratproxy-1.51.tar.gz
tar xvzf ratproxy-1.51.tar.gz
cd ratproxy
make

make の際、Mac の場合(おそらく Cygwin でも)、

*** WARNING: flare-dist/flare bianry is not operational.
*** Please see flare-dist/README and update it for your OS.

という Warning がでますが、flash に関する試験を行わない場合は、問題ありません。
行う場合は、ratproxy/flare-dist/README に従い、バイナリをダウンロードし、makeします。

実行

実行は

./ratproxy -w pal-ratproxy.log -p 8081

で行います。

-w オプションは出力するログ名、
-p オプションはポート番号になります
(他のオプションについては後述します)

起動後、ブラウザでプロキシの設定を行います。
この場合、ブラウザ側での設定は、localhost:8081 になります。

試験対象のWebページを操作後、C-c で停止します。

結果

結果は、先ほど指定したファイル名で、出力されるので、これを付属している以下のスクリプトで html へ変換します。

./ratproxy-report.sh pal-ratproxy.log > pal-ratproxy.html

ちなみに、Mac の bash (GNU bash, version 3.2.17(1)-release (i386-apple-darwin9.0))
では、このスクリプト中でエラーが発生します。
CentOS 上の bash (GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu))
だとエラーは発生しませんでした。

ratproxy のオプションについて

詳細は、ratproxy/README にありますが、主なものを説明します。

-d

既に稼働しているサービスに対して試験を行う場合など、別ドメインに対して、試験を行わないようにするために、指定します。

-x

XSSに関するテストを行います

-v

ログの出力ディレクトリを指定します

-m

クロスドメインで ‘active’ なコンテンツの参照をログに残します。

-s

全ての POST リクエストをログに残します。

-c

クッキーを保存させようとしたURL をすべてログに残します。

-l

ページの同一性を確認するために、MD5チェックサムではなく、ページの長さによる比較を使用します。

-X

‘active testing’ を有効にし、破壊的なテストを行う。

README では

./ratproxy -v <outdir> -w <outfile> -d <domain> -lfscm

というオプションの組み合わせを提案しています。

Javaベースの負荷試験ツールJMeter(前編)

2008 年 8 月 26 日 火曜日

【概要と動作環境】

概要

JMeterは高性能な負荷テストツールで、100% pure Java のデスクトップアプリケーションです。
もともとはWEBの負荷試験用に作られましたが、現在はWEBアプリだけではなく、
データベースやスタンドアロンアプリなどの負荷試験も行うことができます。
今回は、WEBアプリに絞って説明することにします。

動作環境

JMeterは、100% pure Javaアプリなので実行するOSを問いません。
ただし、起動方法はWindowsとUNIX系OSで異なります。

基本的には、JDK1.4以上が入っていれば大丈夫です。

あと、以下のものがあれば

  • JAVAコンパイラ(JDK標準添付)
  • SAX XMLパーサ
    • ApacheのXerces XML parserが添付されているが他のものを使用可能
  • SUNのJavaMailパッケージ
  • JavaServiceSocket拡張JSSEなど、SSLプロバイダ
    • jmeter.propatiesファイルをSSLプロバイダが認識できるように書き換える必要がある
    • JDK1.4以上の環境の場合、JSSEは標準ライブラリとしてJDKに統合済み。
  • JDBCドライバ
    • JDBCテスト用

【インストールから起動まで】

インストール

インストールは簡単です。
ダウンロードページからアーカイブファイルをダウンロードしてきた後、
ZIP(もしくはtarボール)を解凍するだけです。

起動方法

通常の起動方法は、以下の通りです。

  • Windows:(JMeterをインストールしたフォルダ)\bin\jmeter.batを起動
  • UNIX系OS:(JMeterをインストールしたディレクトリ)/bin/jmeter.shを起動

プロキシサーバを利用する時は、以下のオプションを付ける必要があります。

  • -H [プロキシサーバのホスト名もしくはIPアドレス]
    • (–proxyHostオプションでも可)
  • -P [プロキシサーバのポート]
    • (–proxyPortオプションでも可)
  • -u [プロキシサーバのユーザ名]
    • (–usernameオプションでも可)
  • -a [プロキシサーバのパスワード]
    • (–passwordオプションでも可)

自動的に試験を行いたい場合は、グラフィックをカットした、CUIモードを使用します。
CUIモードも、以下のオプションを利用することができます。

  • -nでCUIモードでの起動
  • -t [テストプランを記述したJMXファイルの名前]
  • -l [ログを記録するJTLファイルの名前]
    • (プロキシサーバのアドレス等を指定することも可能)

また、サーバモードという、他のマシンからリモートでテストを行うことのできるモードも存在します。
この場合は、負荷をかける全てのマシンの操作を手元のマシンで行うことになります。
この場合のオプションは以下の通りです。

  • -sでサーバモードとして起動

設定

設定は、(JMeterをインストールしたフォルダ)/bin/jmeter.propertiesファイルを修正することで行うことができます。

設定できる項目は以下の通りです。

なお、次回は、基本的なテストプランの実施と、テストプラン作成のコツを紹介する予定です。

Selenium調査

2008 年 8 月 25 日 月曜日

Seleniumに関する基礎的な説明をまとめました。ぜひご覧ください。
SeleniumとはWebブラウザを使ってWebアプリケーションをテストするツールです。
Seleniumのメリットを上げるならエラーメッセージが正しく表示されているかといった検証も行うことができます。
今回の調査は概要ですがSeleniumの素晴らしさが理解出来たら幸いです。