fl-run-benchコマンドで実行するテストコードの書き方についてメモ。
- Cyclesの値はCU(ConcurrentUser)の数
- durationに設定した秒数の間、テストを繰り返し実行する
- レポートにでるSUCCESSやERRORの数はテストを繰り返し実行したときの結果を集計したもの
デモのコードだとレポートが思ったとおりに出なかった。
HTTPで1回リクエストして、ステータスコードが200だった場合に成功、それ以外の場合に失敗というような試験で負荷をかけるならば、テストケースクラスのメソッド内でforループを使って繰り返しGETやPOSTを行うのはダメ。
forループで繰り返しリクエストしてしまうと、ループ内のすべてが成功しないとSUCCESSにならなくてレポートが読みづらいものになってしまってた。
以下のようなコードになるのが適当かな。
# coding: utf8 import unittest from funkload.FunkLoadTestCase import FunkLoadTestCase class Simple(FunkLoadTestCase): def setUp(self): self.server_url = 'http://localhost:5000/' def test_simple(self): server_url = self.server_url ret = self.get(server_url, description='Get url') # ステータスコードが200以外なら失敗とする self.assertEqual(ret.code, 200) if __name__ in ('main', '__main__'): unittest.main()