visual studio 如何获得checkboxlist内容_自动化测试中的OCR如何使用

500a2c953272285f73be92cb1f3d917a.png

OCR是什么?

医院,保险公司,银行信用卡公司等公司有需要将一些印在纸张的数据信息纳入公司信息系统。这些工作曾经都是手工操作录入,低效且容易出错。光学字符识别(OCR)可以将图像中的文字信息识别出来,转化为文档数字化,避免了手工的录入。

OCR这项技术已经有数十年的历史。使用OCR可以代替这些手工操作,所以是医疗,金融等行业企业数字化转型的关键方面。在许多情况下,自动化工作流程正在取代基于纸张的流程,同时要将办公室中占用空间的古老文件柜替换为以数字化存储、且易于检索的内容。

在软件行业,OCR正在彻底改变质量保证团队测试其软件UI的方式。当开发人员更新应用程序的底层代码时,屏幕上的内容可能会发生变化,控件也会移动,从而使图形用户界面(GUI)测试变得不可靠。原来写的自动化化代码可能当无法找到UI元素,测试将失败,这使得团队难以维护或扩展其测试工作。

包含OCR的自动化测试工具现在能够识别那些以前无法识别的对象。对于测试人员来说,这意味着他们可以快速构建更强大,更具伸缩性的UI测试,因为他们不必浪费时间编写对象规则和维护对象存储库。

OCR&AI

OCR可识别屏幕上的预定义字符。使用OCR的软件将采用“最佳猜测”的方式来确定图像是否与字符匹配,以便将该图像转换为计算机可以处理的文本。人工智能(AI)可以将其提升到一个全新的水平。 AI OCR,例如Google Cloud Vision API。

这不是电影中描绘的那种学习可以让软件变得自我意识。相反,最简单的示例是当用户创建允许软件识别相似性并进行预测的训练数据时。一旦标记了几张图片,比如说有名字的照片,像Facebook或Apple Photo这样的应用程序可以识别这些文字,并尝试用这些文字标记图片,以便输入文字搜索时可以找到对应的图片。

具有AI的OCR系统可以识别传统识别方式难以识别的对象或UI元素。

OCR与AI相结合,使操作员能够非常容易地训练新字体的字符识别。该过程与Facebook或Apple Photo的流程非常相似。选择一个区域,让OCR识别出文本,然后将其更正为正确答案,然后重试。除非文本是某些医生的笔迹,否则识别将在非常短的时间内变得非常准确。

OCR的这种学习能力意味着训练过程也可以自动化,操作员可以在配置好几分钟后离开,而不是花费数小时检查每个动作并进行微小的修正。

OCR在自动化测试中应用

现在,您对OCR和AI在软件测试中的巨大潜力有了初步了解。传统的测试自动化工具需要确切地知道在哪里可以找到用户界面元素,命名ID是最常用的方法,但它们并不总是可用。某些旧的应用不使用ID命名或使用不可预测的ID,这样就无法确定元素的位置。在这种情况下,某些平台使用(x,y)坐标,通过点击坐标点来实现自动化。但这种方式还是会有界面发生更改后就要重新维护坐标点。同样还是很麻烦。

文本可以出现在屏幕上各种可能无法读取的地方。它可以由程序生成,使得即使操作系统也不将其识别为文本,而是将其识别为在显示器中绘制的一系列线和点。或者,该软件可能正在显示已扫描的PDF或其他文档。在这种情况下,操作系统内部也没有相应的字符数据。最后,为了测试某些新的自定义软件,公司可能需要与SAP等外部系统连接,而外部系统并非设计用于读取或自动驱动。为了测试,我们将这些视为黑盒应用程序。

所有这些变化都给传统测试自动化带来了挑战。通过抓取屏幕区域并将其读入字符串,测试人员可以比较实际结果与预期结果,指示单击位置或执行任何所需处理。

标识符不确定

开发人员有时会将元素ID动态编码,每次界面元素的ID都不一样。例如某个物流系统,用户创建订单后,可以返回“订单”页面,并在屏幕顶部显示新订单的单选按钮,供用户选择订单,而单选按钮的ID是订单号的值。

这对服务器很有帮助,因为用户可以单击“查看订单”按钮,ID将被发送到服务器以检索订单。对于自动化测试者来说是个挑战,因为每次ID都不一样,以至于按照ID查找元素点击的方式不可用。 使用OCR和AI,可以根据页面截图识别元素并进行操作。

元素不可被识别

一些旧平台根本没有元素标识符。例如,在Java Swing应用程序中,使用元素查找的方式不能标识到元素。这种场景可以使用OCR识别出文本,从而对文本所在位置的控件进行自动化操作。

CukeTest结合OCR

CukeTest是一款自动化测试界面应用的工具产品,支持各类应用的自动化测试,包括Web、Windows桌面应用、移动应用、API等。它内置了具备AI的最新OCR引擎,可在各类应用自动化的时候使用。

CukeTest内置的模型管理器,不仅方便管理控件的测试对象。同时在模型管理器上也支持调用OCR相关API进行测试,在把对象写到测试脚本之前就测试API的效果。

例如下图显示了为一个实际的控件(这里是整个窗体)创建虚拟控件,通过选择区域,将某个界面定义为虚拟控件。

02c58486c4c44d4442f73a76470dc2bb.png

然后,可以选择虚拟控件上的API做测试,其中OCR的API可以找到文本的内容,位置,对于识别元素非常方便。

dbd27261f617777f586d2fba02810679.png

并且,在CukeTest中工具箱支持拖拽生成代码,例如给定下面一张图片,上面有文字内容。

feae5949b21c6c65c39c9ac0b2412c0f.png

我们在CukeTest上可以很方便的拖拽生成代码,直接从图片中获取文本信息。将"getVisualTextFromFile"方法拖拽到代码框中:

4760dc65a4855f469c4c292d525d0df2.png

会自动显示对话框让你选择文件:

2b4623f39a9dc8bb942173b267f1078e.png

当选择图片后,自动生成类似下面的代码:

const { Ocr } = require('leanpro.visual');(async function () {    let text = await Ocr.getVisualTextFromFile('c:\\temp\\test.png');    console.log(text);})();

注:CukeTest默认使用界面语言(例如中文)为OCR的语言,如果要更改成其它语言,可以调用init方法:

const { Ocr,OcrLanguage } = require('leanpro.visual');Ocr.init(OcrLanguage.ChineseSimplified);

运行代码,打印出识别结果:

ea4201fffefd40bd586547b670d2ee36.png

上面演示只是其中的一个API,还有更多的API,例如输入文字,让API点击图片中相关文字区域,获得每个词在图像中的实际位置等等。大家有兴趣可以参考说明文档:

http://cuketest.com/zh-cn/

聆播科技提供软件自动化方面的专业产品及服务,帮助您实现公司测试业务的及软件操作的自动化。欢迎联系我们,咨询商务合作事宜。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值