一、图像预处理
自动化测试中截图来源固定(浏览器 / APP),统一图像标准,消除干扰。
标准化截图
固定窗口大小、DPI、页面缩放比例,统一验证码区域裁剪坐标,避免画面偏移、尺寸不一。
基础图像处理(OpenCV 实现)
转灰度图:去除色彩干扰,降低 AI 计算负担;
自适应二值化:适配渐变底色、明暗不均,分离字符与背景;
降噪:中值滤波去除点状噪点,形态学运算清除细干扰线、毛刺;
倾斜校正:霍夫变换修正歪扭字符。
粘连字符分割
用垂直投影法 / 连通域拆分粘连字符,再送入 AI 识别,大幅降低误判。
二、AI 识别模型优化(核心提准手段)
1. 通用 OCR 模型调参(PaddleOCR/CRNN 主流方案)
限定字符集:根据业务规则设置白名单(纯数字 / 大写字母 / 数字 + 字母),屏蔽无关字符;
调整置信度阈值:测试场景建议阈值设为0.7~0.8,低于阈值直接判定识别失败;
启用角度检测:应对旋转类文字验证码。
2. 模型专项训练(单站点长期测试首选)
针对被测系统专属验证码定制模型,是准确率上限最高的方案:
样本采集:自动化批量抓取 **5000+** 线上验证码,人工标注;重点收集历史识别失败样本。
数据增强:模拟线上干扰(轻微扭曲、加噪、局部遮挡),提升模型泛化性。
增量微调:基于开源预训练模型微调,重点强化0/O、1/l、6/9等形近字符。
效果:常规复杂验证码准确率可达 98%~99.5%。
3. 多模型融合(降低单模型缺陷)
测试流程中并行调用 2 套及以上 AI 模型(如 PaddleOCR + 多模态 VL 大模型):
多模型结果一致,直接采信;
结果不一致,标记异常,触发刷新重试。
三、结果后校验
结合被测业务做规则过滤,在 AI 输出结果后二次筛查:
长度校验:验证码位数固定(4/5/6 位),长度不符直接判定失败;
格式校验:匹配预设字符规则(纯数字、纯大写字母等);
形近字修正:建立映射表,对高频易混字符做校正;
非法字符拦截:剔除白名单外的符号、小写字母等。
四、自动化测试流程优化
多级重试机制
识别失败 → 自动刷新验证码 → 重新截图 + 识别,设置3~5 次重试上限,解决临时图片加载异常、瞬时识别失误。
加载等待
增加强制等待,确保验证码图片完全加载后再截图,避免截取残缺、模糊图像。
环境隔离
测试环境统一浏览器 / APP 版本、关闭插件、硬件加速,保证渲染效果一致。
分流兜底
重试多次仍失败时,可接入人工打码接口兜底,保障自动化用例不中断。
五、长期迭代运维
失败样本自动收集
自动化框架记录所有识别失败的验证码图片 + 日志,定期汇总。
周期性模型迭代
将新增失败样本补充到训练集,每月 / 每季度微调模型,应对验证码样式更新。
监控告警
搭建识别准确率监控,当命中率大幅下降时,及时发现验证码改版、模型失效问题。