こんにちは、寒くなったり暑くなったり、忙しい季節になりましたね。
私の近所でも桜が咲き始め、春になったなぁと嬉しくなっている今日このごろです。
さて、いつもは気になった記事を紹介していますが、
今回は現在参画している案件で負荷テストのテスト自動化について調べることがあり、
いろいろと知らないことがたくさんあったので、
私の備忘録として残し、もしどなたかの役に立つ事ができれば幸いです。
まずは負荷テストについて
負荷テストとは、機器やソフトウェア、システムのテストの一種で、アスセス数を増やしたり、長時間アクセスをするなど、負荷を高めていったときの状態や性能などを計測し、どのくらいの負荷まで正しく動作するかを確認するためのテストです。
負荷テストには以下のようなテストがあります。
これらの負荷テストは非機能テストといい、正確に仕様としてどこまでできていればよいか、
という判断が難しく、CIなどで自動化することはあまり向いていないという意見が多くあります。
いろいろと調査しましたが、私としてもテストの実行自体は自分のタイミングで実行し、
テストが完了したら目視で結果を確認することが良いのではないかと思っています。
その目視確認をするためのテスト部分だけ自動化することで、負荷テストの自動化の有用性があると感じます。
負荷テストの自動化ツールは調べるとたくさんあり、
やはり有名なところでいうと、Apache JMeter、その他だとLocustやK6、Gatlingなどなど。
JMeterはドキュメントも豊富で、色んな人がこれまで使ってきているため、
JMeter関連の疑問などはネットで調べれば見つけやすいようです。
しかし、Javaの実行環境が必要という点で初心者にはとっつきにくいとのことです。
私が今回負荷テストツールを調べた結果、一番使いやすいと感じたのは「K6」です。
K6はGo言語で開発された負荷テストツールですが、テストシナリオはJavascriptで記述できます。
`k6 run example.js`
※example.jsはテストシナリオを記載したファイル名を指定。
この手順だけでテストの実行が可能です。
また、CSVで結果を出力する場合は以下のコマンド。
`k6 run –out csv=my_test_result.csv script.js`
とても簡単に実行でき、シナリオもJavascriptなので、
新たに言語を学ぶ必要もなく、とっかかりやすいものと言えます。
もし、テストの自動化を検討している方は、K6の使用を検討しても良いかもしれません。
参考:公式URL https://k6.io/docs/