1. 为什么我们需要OCR技术?
在自动化测试领域,验证码识别一直是个令人头疼的问题。记得我第一次尝试做接口自动化测试时,遇到一个带验证码的登录接口,当时整个人都懵了。传统方法要么需要人工干预,要么就得跳过验证码测试,这显然违背了自动化的初衷。直到发现了OCR技术,这个问题才迎刃而解。
OCR(光学字符识别)技术能够将图片中的文字转换为可编辑的文本,这在自动化测试中简直是神器。想象一下,你的测试脚本可以像人类一样"看"图片并"读"出里面的文字,这为自动化测试打开了全新的可能性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Python OCR库横向对比
2.1 Tesseract系三剑客
2.1.1 pyocr:多引擎封装器
pyocr是我最早接触的OCR库,它实际上是一个封装层,支持Tesseract、Cuneiform和GOCR三种引擎。这种设计让它在灵活性上很有优势。
安装时需要注意:
bash复制pip install pyocr
# 还需要单独安装Tesseract引擎
sudo apt-get install tesseract-ocr # Linux
brew install tesseract # Mac
实际使用中我发现几个关键点:
- 初始化时最好检查可用引擎
- 语言包需要额外下载(如中文的chi_sim)
- 图像预处理对识别率影响很大
2.1.2 pytesseract:Tesseract的Python直通车
pytesseract是Tesseract的官方Python封装,比pyocr更轻量直接。它的API极其简单,基本上就是image_to_string这一个核心方法。
python复制import pytesseract
from PIL import Image
img = Image.open('captcha.png')
text = pytesseract.image_to_string(img, lang='eng+chi_sim')
注意:Windows用户需要特别设置Tesseract路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract
