前置き
ときおりYahoo砲にさらされるサービスの保守に関わっています。
負荷テストといえば言わずと知れた
Jmeter
http://jmeter.apache.org/
だと思っていましたが、Yahoo砲の再現に必要なクラスタを組む(主に精神的な)フォースパワーが足りないし、特定のページに単純にアクセスが集中するだけでシナリオ,cookieもろもろ不要、ということで気軽に負荷テストを行えるサービスを探しておりたどり着きました。
Loader.io
https://loader.io/
WEBサービス的な負荷テストは、こちらの方がよくまとめてくださっています。
SaaS系負荷計測サービスまとめ 2017年1月
https://qiita.com/nottegra/items/8f4597da60167f0de5e2
見ていただくと結構SaaSな負荷テストってあることに気がつくと思います。
その中で、なぜLoader.ioを選んだのか?
それは、フリープランで10Kreq/minで負荷テストできる!これに尽きます。
Yahoo砲とはいうけれど、いったいどんだけのアクセスをさばく必要があるんだ?
の手がかりとしては
Yahoo!砲/ ヤフー砲
http://www.paradisearmy.com/doujin/pasok_yahoohou.htm
これを見る限り、100req/sec 程度、毎分に直しても6Kreq/min。ということでフリープランの範囲でYahoo砲を再現できてしまいます。そうLoader.ioならね。😀
使い方はこちらの方がバッチリまとめてくださっています。
カヂュアル負荷試験ツール(サービス) loader.io を使ってみる
https://cloudpack.media/10885
2015年の記事ですが、ほぼ変わっていません。2018年でも余裕で通用します。そのためここでは注意点についてのみまとめてみます。
注意点
- HTML内で読み込んでいる、JS,CSS,画像などのリソースは読んでくれない。
FAQによれば
Do you load linked resources/assets?
No. Our load generators only know about the URLs you give us when you create a test. We don't parse the HTML and we don't download javascript, CSS, or images linked to within pages.
とのこと。Jmeterならチェックボックスひとつで読み込めるものが読み込めません。大量なjsや画像を読み込んだりする必要サイトでは現実的な負荷テストにならないかも?
- ブラウザキャッシュは再現できない
同じくFAQによれば
Does loader.io do any caching?
We do not cache anything.
ということでキャッシュしてほしいものもキャッシュしてくれません。まあこの辺厳密にやりたいなら、Jmeterでやれってことですね。
- US-eastからしか負荷をかけられない
最後もFAQによれば
What testing locations are available?
Currently all tests are run from Amazon’s US-east datacenter.
残念ながら日本国内からのアクセスはエミュレートできない模様。致命的ではないとは思いますがちょっと残念ですね。
厳密さをもとめるならやはり自前でJmeterクラスタを....orz
これらのことが問題にならないのであれば、簡単なサインアップ、URLのverificationのみで使えるので、10分もあれば負荷テストを開始できます。
この手軽さは素晴らしいです。負荷テストの選択肢にぜひ。