QA用にサーバを不安定にする Plack::Middleware 書いた
スマホクライアントのテストにおいて、サーバサイドでエラーが起きたときの挙動を確認する場合、サーバサイドでエラーを生み出すのに逐一設定をいじるのが面倒くさい。そこで、よしなに振る舞ってくれる Plack::Middleware::Devel::ForceResponse を書いた。QA 段階でこいつを投入してモンキーテストしてもらえば良い。
Plack::Middleware::Devel::ForceResponse
こんな感じで
builder {
enable 'Devel::ForceResponse',
rate => 50,
response => [400, 500, 503]
;
sub { [ 200, ['Content-Type' => 'text/plain'], ['OK'] ] };
};
50% の割合で HTTP status 400 or 500 or 503 のどれかを返す。
ちなみに、rate を 100以上に設定すると常に response のどれかを返す。
壊れかけのサーバが欲しいときに、どうぞ。