簡單來說,驗證碼就是在登錄或提交內容時,壹個驗證字符串(通常是背景、扭曲等產生的圖片。)會隨機出現在頁面上,登錄或提交內容時需要同時輸入這個驗證碼。
驗證碼可以有效防止所謂網絡推廣軟件帶來的密碼刺探和大量垃圾內容,已經被很多互聯網或內網應用接受為標準實現方式。
但是對於性能測試來說,這種驗證碼帶來了很大的問題。
最突出的問題是性能測試工具本身是壹個自動化工具。由於這種驗證碼采用了“防止自動化工具嘗試”的方法,錄制後很難調整腳本來滿足驗證碼驗證的需要。
這個問題不止壹次被提到,問有沒有更好的解決方法。
我個人對這個問題的看法是,基本上可以考慮三種方式來解決這個問題:1。第壹種方法,也是最容易想到的方法,臨時屏蔽被測系統中的驗證功能,即臨時修改應用,無論用戶輸入什麽驗證碼,都被認為是正確的。
這種方法最容易實現,不會對測試結果產生太大影響(當然這種方法去掉了“驗證驗證碼”的環節,但是這個環節很難成為系統性能的瓶頸)。
但是這種方法有壹個致命的問題:如果被測系統實際在線,屏蔽驗證功能會對已經運行的業務造成很大的安全隱患,所以這種方法不適合在線系統;2.第二種方法是在第壹種方法的基礎上稍加改進。
第壹種方法帶來了很大的安全問題,可以考慮不取消驗證,而是在裏面留個後門。我們設置了壹個所謂的“通用驗證碼”。只要用戶輸入這個“通用驗證碼”,我們就會通過驗證,否則,我們還是會按照原來的驗證方式進行驗證。
這種方式仍然存在安全問題,但由於我們可以通過管理手段將“通用驗證碼”控制在壹個小範圍內,並且在性能測試時只保留這個小後門,所以與第壹種方式相比,安全性有了很大的提高;3.如果安全響應真的很重要,並且不允許有任何錯誤,那麽我們可以進壹步處理這個問題。
通用性能測試工具(MI的LR,Seague的Silkperformer等。)可以調用外部DLL或者組件接口。所以廣西計算機培訓/建議可以考慮實現“驗證碼驗證”,寫壹個驗證碼獲取的DLL,在測試腳本中調用。