最近一周我在搞驗證碼的問題,幸好有tesseract-ocr工具的支持,可以識別保存在本地的圖片上的字符等,就是利用這一點,好多朋友把這一功能用在了識別驗證碼上(有些驗證碼不能被識別,精確度不高,可能是由於驗證碼中噪點的存在,妨礙了識別)。我只是照葫蘆畫瓢,解決了LoadRunner中識別驗證碼的問題,全是基於C環境的。詳細的可以參看我的另一篇博文:http://www.cnblogs.com/zhuque/archive/2013/03/06/2946565.html
由於tesseract-ocr工具對一些驗證碼的識別精確度不是太高,甚至有些圖片根本識別不出來,還是建議在正式壓力測試時,不要使用此方法來解決驗證碼的問題,更好的辦法是在代碼中來解決,或使用萬能驗證碼。另外一個方法是把登錄交易的代碼(涉及驗證碼代碼)放到vuser_init()中去,即登錄成功后,頻繁的去壓測后面的交易。但也有很多操作類型的交易中也有驗證碼,比如:支付提交,這個就必須使用一個萬能驗證碼來解決。
在性能測試過程中不要糾結驗證碼的問題,畢竟98%以上的性能測試都在專門的獨立的測試環境中來進行的,都可以通過修改code來解決驗證碼問題,方法有很多。但也不排除有些變態的CTO或者客戶要求在線上環境來進行壓測,我們可以試着用tesseract-ocr來識別驗證碼,如果識別不出,再試着去除驗證碼圖片中的噪點后再去識別。怎么去除驗證碼圖片中存在的噪點,以后再去研究,看樣子這是一個大工程。