2行代码帮你搞定自动化测试的文字识别

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
简介: 2行代码帮你搞定自动化测试的文字识别

前言



Airtest是一款 基于图像识别原理 的跨平台UI自动化测试框架,它能够根据大量的 特征点 来识别一个截图在当前画面中的位置,但是它并不能识别出截图中具体包含了什么文字。

而在自动化测试的过程中,我们会经常遇到需要进行文字识别的场景,比如 识别验证码识别截图中的文字读取截图中的数值 等等,遇到这些情况时我们可以如何处理呢?


今天教大家用一款免费的开源图像OCR文字识别软件 -- Tesseract-OCR 来处理上述情况。


1.安装Tesseract-OCR.exe



在网上搜索“Tesseract”,我们可以找到很多Tesseract-OCR的下载链接和安装教程,大家可以选择其中一个版本下载到本地即可。


下载完成后双击进入安装,需要特别注意的是,在选择安装的组件时,我们需要把 Additional language data(download) 这一选项勾上,目的是 安装各个版本的语言包,后续我们就不用手动下载语言包来安装了。



还有一点要注意的是,记住我们选择的软件安装路径,因为我们需要把这个路径添加到 系统环境变量path 中:



另外一个要新增的环境变量是 TESSDATA_PREFIX ,如下图所示,未设置在识别过程中会报 Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory 的错误:



完成以上工作后,我们可以在命令行用 tesseract -v 验证环境是否配置成功:



2.在本地python环境中安装pytesseract



因为我们最终要在python环境中使用 airtesttesseract ,所以需要在本地的python环境中安装上 airtest 库和 pytesseract 库:


pip install airtest
pip install pytesseract
复制代码


安装完毕后可以在命令行输入 pip list 检查安装结果:



3.用airtest截图并识别截图文字



打开我们的AirtestIDE,在 选项--设置--自定义python.exe路径 中设置我们刚才安装好对应库的python环境:



以之前官网提供的 poco demo的界面为例,我们用 airtest 把红框部分的截图截取下来,然后再利用 tesseract 把截图中的文字识别并打印出来:



具体实现如下:


# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
from airtest.aircv import *
auto_setup(__file__)
from PIL import Image
import pytesseract
# 局部截图
screen = G.DEVICE.snapshot()
local = aircv.crop_image(screen,(132,58,380,126))
# 保存局部截图到指定文件夹中
pil_image = cv2_2_pil(local)
pil_image.save("D:/test/score0.png", quality=99, optimize=True)
# 读取截图并识别截图中的文字
image = Image.open(r'D:/test/score0.png')    
text = pytesseract.image_to_string(image)
print("-----------初始数据为--------------")
print(text)
复制代码


识别结果如下:



知识点:


G.DEVICE.snapshot(),对当前设备画面进行截图并保存在内存中。

crop_image(),局部截图的方法,需要传入俩个参数,一个是内存中的截图,就像

这里的 screen,另一个是截取偏移 [x_min, y_min, x_max ,y_max]

Image.open(),用来直接读取给定路径指向的图片

image_to_string(),用来解析图片中的文字


4.识别验证码



以下述验证码截图为例,该截图的保存路径为 D:/test/7364.jpg



识别方式和结果如下:


# 识别验证码
image2 = Image.open(r'D:/test/7364.jpg')    
text2 = pytesseract.image_to_string(image2)
print("-----------验证码为--------------")
print(text2)
log("验证码为:"+text2)
复制代码



5.识别中文文字



识别中文的方法和识别数字与英文基本一致,但比较特别的是,我们需要在 image_to_string() 方法中指定中文的语言参数(示例代码中指定了简体中文来识别截图):



# 识别中文
image3 = Image.open(r'D:/test/3.png')    
text3 = pytesseract.image_to_string(image3,lang='chi_sim')
print("-----------识别出来的文字为:--------------")
print(text3)
log("识别出来的文字为:"+text3)
复制代码


相关文章
|
9月前
|
文字识别 小程序 测试技术
网易私有云新增的测试驱动力,Airtest-ocr文字识别点击真香!
网易私有云新增的测试驱动力,Airtest-ocr文字识别点击真香!
484 0
|
1月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5天前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
43 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
3天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
24 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
1月前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
1月前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
2月前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
135 11
|
3月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
92 3
|
4月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
109 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
5月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
311 7
Jmeter实现WebSocket协议的接口测试方法

热门文章

最新文章