vegetaのmultipart/form-dataリクエストでハマった
vegetaは負荷テストツール。vegetaでmultipart/form-dataでリクエストができず、ハマった。2日くらい時間を使った。
検索したら以下の記事が出てきたので簡単にできそうだとたかを括っていた。
- 負荷テストツール vegeta で multipart/form-data で画像を送る - Qiita
- Vegeta で multipart/form-data のリクエストを送る - tkuchiki's blog
必要な箇所を適宜書き換えリクエストするも、サーバーはエラーを返した。ログを仕込み、デバッグして、フィールドの値が取れていないことがわかったものの、どう直せばいいかわからず。vegetaは諦め、apache bench(別のツール)で試すも同じ結果に。しばらく「apache bench multipart/form-data」で調べていたらStack Overflowの以下の質問を発見。
node.js - POSTing multipart/form-data with Apache Bench (ab) - Stack Overflow
改行はLFではなく、CRLFを使いなさいとのことだった。curlも \r
を足してリクエストしているらしい。改行をCRLFに置き換えるとリクエストが成功した。
時間はかかったものの、無事に解決できてよかった。期せずしてvegetaだけではなく、apache benchにも触ることができたのもよかった。今回はたまたまうまくいったが、どうすればもっと速く解決したか、次はどうすればよいかと聞かれると難しいところ。