性能测试中使用tesseract-ocr工具来识别验证码的一些想法
最近一周我在搞验证码的问题,幸好有tesseract-ocr工具的支持,可以识别保存在本地的图片上的字符等,就是利用这一点,好多朋友把这一功能用在了识别验证码上(有些验证码不能被识别,精确度不高,可能是由于验证码中噪点的存在,妨碍了识别)。我只是照葫芦画瓢,解决了LoadRunner中识别验证码的问题,全是基于C环境的。详细的可以参看我的另一篇博文:http://www.cnblogs.com/zhuque/archive/2013/03/06/2946565.html
由于tesseract-ocr工具对一些验证码的识别精确度不是太高,甚至有些图片根本识别不出来,还是建议在正式压力测试时,不要使用此方法来解决验证码的问题,更好的办法是在代码中来解决,或使用万能验证码。另外一个方法是把登录交易的代码(涉及验证码代码)放到vuser_init()中去,即登录成功后,频繁的去压测后面的交易。但也有很多操作类型的交易中也有验证码,比如:支付提交,这个就必须使用一个万能验证码来解决。
在性能测试过程中不要纠结验证码的问题,毕竟98%以上的性能测试都在专门的独立的测试环境中来进行的,都可以通过修改code来解决验证码问题,方法有很多。但也不排除有些变态的CTO或者客户要求在线上环境来进行压测,我们可以试着用tesseract-ocr来识别验证码,如果识别不出,再试着去除验证码图片中的噪点后再去识别。怎么去除验证码图片中存在的噪点,以后再去研究,看样子这是一个大工程。