技術とか戦略とか

SIerで証券レガシーシステムを8年いじってからSESに転職した業務系エンジニアによる技術ブログ。

二重サブミットのテストにはクリック連打ツールを用いる

Webシステムでは、同一のサブミット(リクエスト)が二重送信されることによる障害が起こり得ます。
二重サブミットが発生する原因としては、以下の3つが挙げられます。
①サブミットボタンを連打する
②ブラウザの戻るボタンで遷移元の画面に戻り、再度サブミットボタンを押下する
③サブミット後に遷移する画面で、ブラウザよりリロード操作が行われる
 
これらの原因による二重サブミットは、実装により回避することができます。
回避できているかどうかは、①~③の操作を行うことでテストすることができます。
 
----
 
ここで、①の操作については、手動でのクリックでは発生しないことがあるので、注意が必要です。
手動の場合は約0.1秒おきにクリックするのが限度だと思うのですが、端末やWebシステムの性能が良すぎる場合、手動で2回目のクリックを行う前に画面遷移が行われてしまい、二重サブミット対策の実装が行われていないのにも関わらず二重サブミットの問題が発見できないことがあります。
 
そこで、①の操作を試す場合は、クリック連打ツールを試すのが有効です。
クリック連打ツールであれば、0.01秒おきや0.001秒おきのクリックが可能になり、性能が良い場合にも二重サブミットの問題をより高い精度で発見することができるようになります。
 
以下は、自作のWebシステムで、クリック連打ツール「速打くん」を試した結果です。
自作のWebシステムは、掲示板に文章を投稿するというだけの簡単なものであり、クリックでは簡単に二重サブミットが発生しないほど性能は良いです。
このような性能が良いシステムに対しても、連打くんで0.01秒おきにクリックを行うことで、二重サブミットの発生を確認することができます。
 
・実行前

f:id:akira2kun:20211229193103j:plain

・実行後

f:id:akira2kun:20211229193122j:plain