あなたもできるWebサイトのパフォーマンステスト/脆弱性テスト


ハプニングを未然に防ぐ
パフォーマンステストとは、Webサイトの運用が始まったとき、負荷によりサーバーが落ちるといったトラブルを未然に防ぐためにWebサイトの性能を確保するテストです。
脆弱性テストとは、Webサイトの脆弱性を狙った改ざんや情報漏えい、外部からの攻撃を防ぐためにWebサイトの問題点を検出するテストです。
ここでは、さまざまな目的に応じた各種テストをご紹介します。


パフォーマンステストの種類
性能テスト
実際にWebサイトを見たとき、十分な表示・処理速度があるかなど、ユーザーが満足するレベルに達しているかを検証するためのテストです。
ストレステスト
Webサイトに、大量アクセスを試験的に発生させ、どのようなバグが発生するかを検証するテストです。
これによって、アクセスがどれだけ増えるとエラーが起きるのか、データの破損が発生するのかを確認できます。
負荷(ロード)テスト
Webサイトの負荷を一時的に増大させて、想定されるピーク時の負荷に耐えられるかを検証するテストです。
負荷が通常時からピーク時へと移り変わるにつれて、どれだけパフォーマンスが低下していくか、どれだけのユーザー数をサポートできるかなどを数値化して測定することを目的とします。
キャパシティテスト
Webサイトで管理するアプリケーションにおいて、最大ユーザー数を検証することに特化したテストです。
耐久テスト
Webサイトに長時間の負荷をかけ、安定性を維持できるかを検証するテストです。


検証のメリット
パフォーマンステストには、さまざまな利点があります。
応答にかかるまでの時間、同時ユーザー数における処理能力の限界、どのコンテンツがパフォーマンスを劣化させる原因となっているか、想定外の負荷がかかったときにどのような影響を及ぼすのかを確認することができます。
それらの結果を指標にして、どのような対応が必要になるかが明らかになるのです。
例えばサーバーが大量のアクセスに耐えられないことが分かった場合は、サーバーの性能向上を検討する必要があるかもしれません。
また将来、ユーザー数が増大した場合に想定されるサーバーを拡充(冗長化)するプランをたてる指標にもなります。


パフォーマンステストのツール
スウェーデンの企業k6(旧Load Impact)が提供している負荷テストツールです。(月5回まで無料使用可)
オープンソースの負荷テストツールで、JavaScriptにテストシナリオを記述して負荷テストを実施することができます。
有料版にすると、同時接続数を増やすといったこともできるようになります。
Apache JMeterは無料で使えるパフォーマンステストツールで、GUIを使って操作できるオープンソースです。
さまざまなシナリオでテストをすることができます。例えば、応答時間、ループ回数、ユーザー数など細かく設定し、サイトに見合った検証ができるなど、とても便利です。
パフォーマンステストのツールは、無料のサービスがWeb上にたくさんあります。
検証したいWebサイトの性格に合うツールをぜひ探してみてください。


脆弱性テストとは
パフォーマンステストと合わせて対策しておきたいのは脆弱性テストです。
Webサイトは常に悪意のある攻撃の脅威にさらされています。
個人情報の漏洩や改ざん、運用妨害といったリスクを軽減するためにもテストを実施することはとても重要です。
※テストをする前に…
レンタルサーバなどの場合は、サーバ管理者に一度テストの旨を伝えておくといいです。
無料でWebサイトの脆弱性の有無をスキャンしてくれるオープンソースのツールです。
日本語にも対応しているので初心者にも扱いやすいと思います。
ただし、自前ではなく共用レンタルサーバーなどの場合、データベースに検査用のレコードを挿入したり、フォームなどの動的コンテンツに大量にリクエストが送信されるとサーバー管理者が攻撃されたと判断してしまいパスワードが変更されるといったこともあるので、テストするときは前もってシステム管理者に申告しておくのが正解です。
※注意※
脆弱性検査は検査許可をもらっているサイトか、自分の管理しているサイトに対してのみ実施しましょう。
まとめ
どれだけ素晴らしいWebサイトでも、たくさんのアクセスに耐えられないとなるともったいないことです。
せっかくなら、多くの人にアクセスしてもらいたいですからね。
パフォーマンステストと聞くとちょっと難しく感じるかもしれませんが、ぜひともチャレンジして頑丈なサイトを開発していきたいですね。
脆弱性についての知識を知っておきたいという人は、セキュリティの基本から説明しているIPAの公式ドキュメントを読んでみることから始めるのもいいと思います。
参考:IPA「安全なウェブサイトの作り方」
RECENT POSTS
Vol.198
From parent–child bonds to community: The future of education that nurtures diversity and designs relationships
Vol.197
Exploring the future of environmental design integrating vision, diversity, and a future-oriented perspective
Vol.196
Vision-making for diverse and future-oriented education: Interpreting the future of learning through environmental design
Vol.195
“One Health” and Japan — Toward an Era of Integrating Humans, Animals, and the Environment
Vol.194
The benefits and challenges of digital education in the AI era, and the future of learning

Vol.193
Vision-Making in the age of AI — How artificial intelligence is transforming the meaning of work and the nature of organizations









