CN108563559A - 一种验证码的测试方法、装置、终端设备及存储介质 - Google Patents

一种验证码的测试方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN108563559A
CN108563559A CN201810198355.4A CN201810198355A CN108563559A CN 108563559 A CN108563559 A CN 108563559A CN 201810198355 A CN201810198355 A CN 201810198355A CN 108563559 A CN108563559 A CN 108563559A
Authority
CN
China
Prior art keywords
identifying code
picture
character
code
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810198355.4A
Other languages
English (en)
Inventor
张涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN201810198355.4A priority Critical patent/CN108563559A/zh
Publication of CN108563559A publication Critical patent/CN108563559A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及计算机技术领域,提供了一种验证码的测试方法、装置、终端设备及存储介质,所述测试方法包括:在自动化测试的过程中,若检测到待测试的验证码,则截取包含验证码的用户界面图片;获取所述验证码在所述用户界面图片中的位置信息;根据所述位置信息,从所述用户界面图片中截取所述验证码所在的验证码图片;对所述验证码图片进行图像处理,识别验证码信息;根据识别出的所述验证码信息,完成对所述验证码的自动化测试。本发明的技术方案实现了在自动化测试的框架下,完成对验证码的自动获取与识别,减少人工干预,提高测试准确性,同时也提高了自动化测试的效率。

Description

一种验证码的测试方法、装置、终端设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种验证码的测试方法、装置、终端设备及存储介质。
背景技术
目前,很多应用(Application,APP)或者网页为了防止恶意脚本不断地尝试登录应用,在登录页面增加了验证码功能。验证码本质上是一张随机生成的小图片,脚本无法获取图片的内容,只能通过人工识别和输入,因此使用验证码可以防止恶意脚本登录应用。
但是在软件的生产开发过程中,我们需要对软件进行测试,为了提高测试效率,往往需要引入自动化技术。而自动化脚本也与恶意脚本一样,无法获取验证码的内容,例如目前主流的appium、selenium等自动化测试工具都不能获取验证码内容。
当前,为了能实现自动化测试,在开发过程中往往先把验证码的功能去掉,即只需要输入用户名和密码就可以登录,等自动化测试完成,在生产环节再加上验证码功能。这种方式一方面增加开发过程的工作量,另一方面也会导致在测试环节无法有效的模拟真实环境,并且无法对验证码功能进行测试,影响测试结果的准确性。若通过在测试过程中通过人工输入验证码的方式进行测试,也会降低自动化测试的效率。
发明内容
本发明实施例提供一种验证码的测试方法、装置、终端设备及存储介质,以解决目前在自动化测试框架下无法对验证码进行自动化测试导致测试结果的准确性不高以及自动化测试效率低下的问题。
第一方面,本发明实施例提供一种验证码的测试方法,包括:
在自动化测试的过程中,若检测到待测试的验证码,则截取包含所述验证码的用户界面图片;
获取所述验证码在所述用户界面图片中的位置信息;
根据所述位置信息,从所述用户界面图片中截取所述验证码所在的验证码图片;
对所述验证码图片进行图像处理,识别验证码信息;
根据识别出的所述验证码信息,完成对所述验证码的自动化测试。
第二方面,本发明实施例提供一种验证码的测试装置,包括:
检测模块,用于在自动化测试的过程中,若检测到待测试的验证码,则截取包含所述验证码的用户界面图片;
获取模块,用于获取所述验证码在所述用户界面图片中的位置信息;
截取模块,用于根据所述位置信息,从所述用户界面图片中截取所述验证码所在的验证码图片;
识别模块,用于对所述验证码图片进行图像处理,识别验证码信息;
测试模块,用于根据识别出的所述验证码信息,完成对所述验证码的自动化测试。
第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述测试方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述测试方法的步骤。
本发明实施例与现有技术相比具有如下优点:本发明实施例提供的验证码的测试方法、装置、终端设备及存储介质中,在自动化测试过程中,若检测到待测试的验证码,则截取包含该验证码的用户界面图片,获取该用户界面图片中验证码的位置信息,根据该位置信息对用户界面图片进行裁剪,得到验证码图片,再对该验证码图片进行图像处理,识别验证码信息,并根据识别出的验证码信息完成对验证码的自动化测试,实现了在自动化测试过程中对验证码的自动获取与识别,完成在自动化测试过程中自动输入验证码以及识别验证码的功能,从而有效的模拟真实环境,提高测试准确性,同时减少了人工干预,提高了自动化测试的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中提供的验证码的测试方法的流程图;
图2是本发明实施例1中提供的验证码的测试方法中步骤S2的实现流程图;
图3是本发明实施例1中提供的验证码的测试方法中步骤S4的实现流程图;
图4是本发明实施例1中提供的验证码的测试方法中步骤S44的实现流程图;
图5是本发明实施例2中提供的验证码的测试装置的示意图;
图6是本发明实施例4中提供的终端设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
请参阅图1,图1示出本实施例提供的验证码的测试方法的实现流程。该验证码的测试方法应用在自动化测试平台中,用于实现对验证码的自动获取与识别,完成验证码的自动化测试。详述如下:
S1:在自动化测试的过程中,若检测到待测试的验证码,则截取包含验证码的用户界面图片。
在本发明实施例中,待测试的验证码具体为图形验证码,由多种字符组合而成,在基于自动化测试框架的自动化测试过程中,若检测到当前测试环节存在待测试的图形验证码,则对包含该图形验证码的用户界面图片进行截屏操作。
具体地,在对图片进行截屏操作时,利用自动化测试工具的截屏功能,对包含验证码的用户界面图片进行截取,并将截取后的图片保存到预先设定的路径下。
S2:获取验证码在用户界面图片中的位置信息。
具体地,通过对包含验证码的当前用户界面的内容进行遍历,获取验证码在当前用户界面对应的用户界面图片中的位置信息。
具体遍历方式可以是在当前用户界面的内容中查找“验证码”关键字,根据查询到的“验证码”关键字的位置确定验证码在用户界面图片中的位置信息,还可以是在当前用户界面的内容中查找验证码元素的描述信息,根据查询到的验证码元素的描述信息获取验证码在用户界面图片的位置坐标,进而得到验证码在用户界面图片中的位置信息。
S3:根据位置信息,从用户界面图片中截取验证码所在的验证码图片。
具体地,从步骤S1预先设定的路径中提取保存的用户界面图片,根据步骤S2得到的验证码的位置信息,从用户界面图片中截取验证码图片,并将该验证码图片保存在预设的保存路径下。
例如:在自动化测试框架appium中,可通过直接调用javax imageio函数,将得到的验证码的位置信息作为javax imageio函数的传入参数,得到截取后的验证码图片。
S4:对验证码图片进行图像处理,识别验证码信息。
在本发明实施例中,验证码信息是指验证码图片上的字符信息,通过对验证码图片进行图像处理,识别验证码图片上的验证码信息。
具体地,对验证码图片进行图像处理的具体过程可以包括:首先对验证码图片进行灰度化处理和二值化处理,得到二值化图像,然后扫描二值化图像进行字符分割得到单个字符图像,再对单个字符图像进行字符识别,得到目标字符,最后将识别出的目标字符组成验证码信息。
S5:根据识别出的验证码信息,完成对该验证码的自动化测试。
具体地,将步骤S4识别出的验证码信息自动输入到验证码输入框中,完成对待测试的验证码的自动化测试。
在图1对应的实施例中,在基于自动化测试框架的自动化测试过程中,若检测到待测试的验证码,则截取包含该验证码的用户界面图片,并获取该验证码在用户界面图片中的位置信息,通过该位置信息对用户界面图片进行截屏处理,得到验证码图片,接着对该验证码图片进行图像处理,提取验证码信息,最后自动输入该验证码信息到验证码输入框中,完成验证码的自动化测试,实现了在自动化测试过程中对验证码的自动获取与识别,完成在自动化测试过程中自动输入验证码以及识别验证码的功能,从而有效的模拟真实环境,提高测试准确性,同时减少了人工干预,提高了自动化测试的效率。
接下来,在图1对应的实施例的基础之上,下面通过一个具体的实施例来对步骤S2中所提及的获取验证码在用户界面图片中的位置信息的具体实现方法进行详细说明。
请参阅图2,图2示出了本发明实施例提供的步骤S2的具体实现流程,详述如下:
S21:将包含验证码的用户界面的内容转换为目标文档。
在本发明实施例中,目标文档具体可以是可扩展标记语言(Extensible MarkupLanguage,XML)文档,识别验证码需要先识别包含验证码的用户界面的内容,因此,首先需要将包含验证码的用户界面的内容转换为XML文档。
具体地,获取当前包含验证码的用户界面中每个元素的描述信息,并根据获取到的每个元素的描述信息生成XML文档。例如,在用户注册界面中,元素可以包括邮件地址、密码、确认密码、手机号码和验证码等。
每个元素的描述信息用于描述元素的属性,属性包括元素的名称、元素的位置信息、元素是否可见等。其中,元素的位置信息具体可以包括元素左上角像素点的位置坐标、元素的宽度和高度等,元素的位置信息还可以包括元素左上角像素点的位置坐标、右上角像素点的位置坐标、左下角像素点的位置坐标和右下角像素点的位置坐标等。
需要说明的是,元素的描述信息中包含的具体属性以及每个属性具体的结构定义可以根据实际应用的需要进行设置,此处不做限制。
在自动化测试框架appium中,通过调用工具提供的getPageSource()方法可以直接获取用户界面的所有内容,根据获取到的内容解析每个元素的属性,生成包含每个元素的描述信息的XML文档内。例如,在XML文档中验证码元素的描述信息如下:
<XCUIElementTypeButton
type=“XCUIElementTypeButton”
enabled=“true”
visible=“true”
x=“574”
y=“382”
width=“100”
height=“45”/>
其中,XCUIElementTypeButton为验证码元素的名称,x和y分别为验证码图片左上角像素点的x坐标和y坐标,width为验证码图片的宽度,height为验证码图片的高度。
S22:根据验证码元素的名称对目标文档进行遍历,获取验证码元素的描述信息。
具体地,对步骤S21得到的XML文档进行遍历,查找验证码元素的名称,并根据查找到的验证码元素的名称获取在XML文档中该验证码元素的描述信息。
例如,以步骤S21中列举的验证码元素的描述信息为例,在XML文档中查询“XCUIElementTypeButton”字符串,当查询到该字符串时,将包含该字符串在内的符号“<”和符号“>”之间的内容确定为验证码元素的描述信息。
S23:从验证码元素的描述信息中提取验证码的位置信息。
具体地,按照预先设置的属性的结构定义,对步骤S22获取到的验证码元素的描述信息进行解析,提取验证码元素的位置信息,例如,该位置信息具体可以包括验证码图片左上角像素点的位置坐标,以及验证码图片的宽度和高度。
以步骤S21中列举的验证码元素的描述信息为例,提取出的提取验证码的位置信息为:验证码图片左上角像素点的坐标为(574,382),验证码宽度width为100,验证码高度height为45。
在图2对应的实施例中,将包含验证码的用户界面内容转换成XML文档,根据验证码元素的名称对XML文档进行遍历,在XML文档中查找并提取验证码元素的描述信息,通过该描述信息确定验证码在用户界面图片中的位置信息,从而实现了自动识别用户界面图片中验证码的具***置,为自动获取验证码提供条件,以便能够实现验证码的自动化测试,提高自动化测试的效率和准确性。
在图1对应的实施例的基础之上,下面通过一个具体的实施例来对步骤S4中所提及的对验证码图片进行图像处理,识别验证码信息的具体实现方法进行详细说明。
请参阅图3,图3示出了本发明实施例提供的步骤S4的具体实现流程,详述如下:
S41:对验证码图片进行灰度化处理,获取灰化图像。
在本发明实施例中,为实现对验证码图片中信息内容的准确提取,首先需要对验证码图片进行灰度化处理。
RGB模型是目前常用的一种彩色信息表达方式,它使用红、绿、蓝三原色的亮度来定量表示颜色。该模型也称为加色混色模型,是以RGB三色光互相叠加来实现混色的方法,因而适合于显示器等发光体的显示。
灰度化是指在RGB模型中,如果R=G=B时,则色彩表示只有一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值,灰度范围为0-255。具体可以采用分量法、最大值法、平均值法或者加权平均法等方法对彩色图像进行灰度化处理。
具体地,通过获取验证码图片中每个像素点的RGB分量值,通过公式g(x,y)=k1*R(x,y)+k2*G(x,y)+k3*B(x,y)对验证码图片的每个像素点进行灰度化处理,得到灰化图像。
其中,x和y表示验证码图片中每个像素点的横坐标和纵坐标,g(x,y)表示像素点(x,y)灰度化处理后的灰度值,R(x,y)表示像素点(x,y)的R通道的颜色分量,G(x,y)表示像素点(x,y)的G通道的颜色分量,B(x,y)表示像素点(x,y)的B通道的颜色分量,k1,k2,k3分别为R通道,G通道,B通道对应的占比参数,并且k1+k2+k3=1,其具体取值可以根据实际应用的需要进行设置,例如,若验证码图片中像素的亮度信息主要分布在B通道,则k3的取值大于k1和k2,比如,k1=0,k2=0,k3=1。
S42:对灰化图像进行二值化处理,得到二值化图像。
在本发明实施例中,在步骤S41获取的灰化图像的基础上,为了让图像的像素值只呈现0或者255,即图像只呈现黑白两种颜色,需要进一步对该灰化图像进行二值化处理。
二值化,就是将图像上的像素点的像素值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。
具体地,扫描灰度化处理后的灰化图像中的每个像素点,若该像素点的像素值小于预设的像素阈值,则将该像素点的像素值设为0,即为像素点变为黑色;若该像素点的像素值大于等于预设值的像素阈值,则将该像素点的像素值设为255,即像素点变为白色,得到二值化图像。
S43:对二值化图像进行字符分割,获取单个字符图像。
在本发明实施例中,验证码图片种包含了多个字符,在识别验证码的过程中需要对每一个字符进行识别,因此需要先对步骤S42处理后的二值化图像进行字符分割,从而将包含多个字符的二值化图像分割成每个单个字符图像。
具体地,扫描步骤S42处理后的二值化图像,通过寻找空白行和空白列,即像素值全部为255的行或者列,对图像中的字符进行分割,得到单个字符。
进一步地,常用的字符分割方法还包括等距分割、积分投影分割、交叉点分割、求连通区等,具体可以根据应用的需要选择字符分割方法,此处不做限制。
例如,如果验证码图片上的字符为ABCD,且这四个字符之间均没有任何交叉的情况,经过对该验证码图片进行二值化处理后,该图片上ABCD四个字符的像素点的像素值均被设为0,即均被设为黑色,其余像素点的像素值都被设为255,即均被设为白色,按列扫描经过二值化处理后验证码图片,若识别到整列像素点的像素值均为255,即空白列,则对该空白列进行分割,经过分割后得到的包含像素点的像素值为0的图像,即为分割出来的单个字符的图像。
如果验证码图片上的字符为ABCD,且这四个字符之间有部分交叉的情况,则可以采用等距分割的方法,按照预设的阈值将整个验证码图像分割成四等份,则每一份即为单个字符图像。
S44:按照预设的字符识别方式识别每个单个字符图像中的字符。
具体地,对步骤S43得到的单个字符图像,按照预设的字符识别方式识别该单个字符图像中的字符。
需要说明的是,预设的字符识别方式可以是基于模板匹配的字符识别算法、基于神经网络的字符识别算法,或者基于支持向量机(Support Vector Machine,SVM)的字符识别算法等,其具体可以根据实际应用的需要进行设置,此处不做限制。
例如,若采用基于模板匹配的字符识别算法进行字符识别时,字符特征模板具体可以为字符像素点的像素值特征模板,也可以为字符结构特征模板等。
进一步地,在自动化测试框架中,还可以直接使用光学字符识别(OpticalCharacter Recognition,OCR)工具识别验证码图片中每个单个字符图像中的字符。
S45:将识别出的每个字符组成验证码信息。
具体地,将步骤S44识别出的单个字符组成字符串,该字符串即为验证码信息。
在图3对应的实施例中,首先对验证码图片进行灰度化处理和二值化处理,得到二值化图像,再对该二值化图像进行字符分割,获取单个字符图像,通过对单个字符图像按照预设的字符识别方式进行字符识别,再将识别出的每个单个字符图像中的字符组成验证码信息,从而实现在自动化测试过程中,对验证码中的每个字符的准确识别,以便能够根据识别出的验证码信息进行验证码的自动化测试,减少人工干预,从而提高自动化测试的准确性和效率。
在图3对应的实施例的基础之上,下面通过一个具体的实施例来对步骤S44按照预设的字符识别方式识别每个单个字符图像中的字符的具体实现方法进行详细说明。
请参阅图4,图4示出了本发明实施例提供的步骤S44的具体实现流程,详述如下:
S441:根据预设的字符特征模板的定义,对每个单个字符图像进行特征解析,获取该单个字符图像对应的目标字符特征。
在本发明实施例中,预设的字符特征模板具体可以为字符像素点的像素值特征模板,也可以为字符结构特征模板等,此处不做限制。
具体地,根据字符特征模板,对步骤S43得到的单个字符图像进行特征识别,得到单个字符图像对应的目标字符特征。
以字符像素点的像素值特征模板为例,假设像素值特征模板的定义将二值化图像中的每个像素点的像素值作为特征码,按照预设的组合方式对特征码进行组合得到的像素值字符串,即为该二值化图像中的字符对应的像素值特征模板,则对每个单个字符图像按照该像素值特征模板的定义进行特征解析,得到该单个字符图像对应的目标字符特征。
S442:针对每个单个字符图像,计算该单个字符图像对应的目标字符特征与预设的字符库中的标准字符特征之间的特征相似度,将特征相似度最大的标准字符特征对应的标准字符作为该单个字符图像的字符,其中,字符库包括预设的标准字符及其对应的标准字符特征。
在本发明实施例中,预设的字符库中包含了常用的标准字符和每个标准字符按照预设的字符特征模板得到的标准字符特征。常用的标准字符包括但不限于:0-9、A-Z,以及a-z等。具体地,根据步骤S441解析出的每个单个字符图像对应的目标字符特征,,将该目标字符特征与预设的字符库中的每个标准字符对应的标准字符特征进行比较,计算该目标字符特征与每个标准字符特征之间的特征相似度,从得到的全部特征相似度中,选取特征相似度最大的标准字符特征对应的标准字符,识别为该单个字符图像的字符。
在图4对应的实施例中,对单个字符图像按照预设的字符特征模板的定义进行字符特征解析,得到单个字符图像对应的目标字符特征,并将该目标字符特征与预设的字符库中的每个标准字符的标准字符特征进行匹配,选取该目标字符特征与标准字符特征之间的特征相似度最大的标准字符特征对应的标准字符作为该单个字符图像的字符,从而实现在自动化测试过程中,对验证码中的每个字符的快速而准确地识别,以便能够根据识别出的验证码信息进行验证码的自动化测试,从而提高自动化测试的效率和准确度。
在图1对应的实施例的基础之上,下面通过一个具体的实施例来对步骤S5中所提及的根据识别出的验证码信息,完成对该验证码的自动化测试的具体实现方法进行详细说明。
具体地,本发明实施例提供的步骤S5的具体实现流程包括:
将识别出的验证码信息自动输入到验证码输入框,或者随机生成与该验证码信息不同的错误验证码信息,并将该错误验证码信息自动输入到验证码输入框中,完成对验证码的自动化测试。
在本发明实施例中,验证码输入框用于输入验证码信息。
在对验证码进行自动化测试时,一方面,可以将步骤S4识别出的验证码信息自动输入到验证码输入框中,以便完成对正确验证码的自动化测试;另一方面,也可以随机生成与步骤S4识别出的验证码信息不同的错误验证码信息,将该错误验证码信息自动输入到验证码输入框中,以便完成对错误验证码的自动化测试。
例如,待测试的验证码为ABCD,根据步骤S4识别出的验证码信息为ABCD,若将ABCD自动输入到验证码输入框中后,该验证码的自动化测试的结果为验证成功;若根据ABCD随机生成的错误验证码信息为ABDE,则将ABDE自动输入到验证码输入框中后,该验证码的自动化测试的结果为验证失败。
在本发明实施例中,通过将步骤S4识别出来的验证码信息自动输入到验证码输入框中,或者随机生成与验证码信息不同的错误验证码信息,并将该错误验证码信息自动输入到验证码输入框中,完成对验证码的自动化测试,实现了根据自动识别出的准确的验证码信息,完成包括验证成功的自动化测试过程和验证失败的自动化测试过程,使得验证码的自动化测试能够实现路径全覆盖,能够有效模拟真实环境,减少人工干预,提高测试准确性和自动化测试的效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
对应于实施例1中的验证码的测试方法,图5示出了与实施例1提供的验证码的测试方法一一对应的验证码的测试装置,为了便于说明,仅示出了与本发明实施例相关的部分。
如图5所示,该验证码的测试装置包括:检测模块51、获取模块52、截取模块53、识别模块54和测试模块55。各功能模块详细说明如下:
检测模块51,用于在自动化测试的过程中,若检测到待测试的验证码,则截取包含验证码的用户界面图片;
获取模块52,用于获取验证码在用户界面图片中的位置信息;
截取模块53,用于根据位置信息,从用户界面图片中截取验证码所在的验证码图片;
识别模块54,用于对验证码图片进行图像处理,识别验证码信息;
测试模块55,用于根据识别出的验证码信息,完成对验证码的自动化测试。
进一步地,获取模块52包括:
转换子模块521,用于将包含验证码的用户界面的内容转换为目标文档;
遍历子模块522,用于根据验证码元素的名称对目标文档进行遍历,获取验证码元素的描述信息;
提取子模块523,用于从描述信息中提取验证码的位置信息。
进一步地,识别模块54包括:
灰化子模块541,用于对验证码图片进行灰度化处理,获取灰化图像;
二值化子模块542,用于对灰化图像进行二值化处理,得到二值化图像;
分割子模块543,用于对二值化图像进行字符分割,获取单个字符图像;
匹配子模块544,用于按照预设的字符识别方式识别每个单个字符图像中的字符;
组成子模块545,用于将识别出的每个字符组成验证码信息。
进一步地,匹配子模块544包括:
特征获取单元5441,用于根据预设的字符特征模板的定义,对每个单个字符图像进行特征解析,获取该单个字符图像对应的目标字符特征;
字符获取单元5442,用于针对每个单个字符图像,计算该单个字符图像对应的目标字符特征与预设的字符库中的标准字符特征之间的特征相似度,将特征相似度最大的标准字符特征对应的标准字符作为该单个字符图像的字符,其中,字符库包括预设的标准字符及其对应的标准字符特征。
进一步地,测试模块55还用于:
将识别出的验证码信息自动输入到验证码输入框中,或者随机生成与验证码信息不同的错误验证码信息,并将该错误验证码信息自动输入到验证码输入框中,完成对验证码的自动化测试。
本实施例提供的一种验证码的测试装置中各模块实现各自功能的过程,具体可参考前述实施例1的描述,此处不再赘述。
实施例3
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中验证码的测试方法,或者,该计算机程序被处理器执行时实现实施例2中验证码的测试装置中各模块的功能。为避免重复,这里不再赘述。
可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号和电信信号等。
实施例4
图6是本发明一实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备60包括:处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63,例如验证码的测试程序。处理器61执行计算机程序63时实现上述各个验证码的测试方法实施例中的步骤,例如图1所示的步骤S1至步骤S5。或者,处理器61执行计算机程序63时实现上述各装置实施例中各模块的功能,例如图5所示模块51至模块55的功能。
示例性的,计算机程序63可以被分割成一个或多个模块,一个或者多个模块被存储在存储器62中,并由处理器61执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序63在终端设备60中的执行过程。例如,计算机程序63可以被分割成检测模块、获取模块、截取模块、识别模块和测试模块,各模块具体功能如下:
检测模块,用于在自动化测试的过程中,若检测到待测试的验证码,则截取包含验证码的用户界面图片;
获取模块,用于获取验证码在用户界面图片中的位置信息;
截取模块,用于根据位置信息,从用户界面图片中截取验证码所在的验证码图片;
识别模块,用于对验证码图片进行图像处理,识别验证码信息;
测试模块,用于根据识别出的验证码信息,完成对验证码的自动化测试。
进一步地,获取模块包括:
转换子模块,用于将包含验证码的用户界面的内容转换为目标文档;
遍历子模块,用于根据验证码元素的名称对目标文档进行遍历,获取验证码元素的描述信息;
提取子模块,用于从描述信息中提取验证码的位置信息。
进一步地,识别模块包括:
灰化子模块,用于对验证码图片进行灰度化处理,获取灰化图像;
二值化子模块,用于对灰化图像进行二值化处理,得到二值化图像;
分割子模块,用于对二值化图像进行字符分割,获取单个字符图像;
匹配子模块,用于按照预设的字符识别方式识别每个单个字符图像中的字符;
组成子模块,用于将识别出的每个字符组成验证码信息。
进一步地,匹配子模块包括:
特征获取单元,用于根据预设的字符特征模板的定义,对每个单个字符图像进行特征解析,获取该单个字符图像对应的目标字符特征;
字符获取单元,用于针对每个单个字符图像,计算该单个字符图像对应的目标字符特征与预设的字符库中的标准字符特征之间的特征相似度,将特征相似度最大的标准字符特征对应的标准字符作为该单个字符图像的字符,其中,字符库包括预设的标准字符及其对应的标准字符特征。
进一步地,测试模块还用于:
将识别出的验证码信息自动输入到验证码输入框中,或者随机生成与验证码信息不同的错误验证码信息,并将该错误验证码信息自动输入到验证码输入框中,完成对验证码的自动化测试。
终端设备60可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备60可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图6仅仅是终端设备60的示例,并不构成对终端设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备60还可以包括输入输出设备、网络接入设备、总线等。
所称处理器61可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器62可以是终端设备60的内部存储单元,例如终端设备60的硬盘或内存。存储器62也可以是终端设备60的外部存储设备,例如终端设备60上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器62还可以既包括终端设备60的内部存储单元也包括外部存储设备。存储器62用于存储计算机程序以及终端设备60所需的其他程序和数据。存储器62还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种验证码的测试方法,其特征在于,所述测试方法包括:
在自动化测试的过程中,若检测到待测试的验证码,则截取包含所述验证码的用户界面图片;
获取所述验证码在所述用户界面图片中的位置信息;
根据所述位置信息,从所述用户界面图片中截取所述验证码所在的验证码图片;
对所述验证码图片进行图像处理,识别验证码信息;
根据识别出的所述验证码信息,完成对所述验证码的自动化测试。
2.如权利要求1所述的测试方法,其特征在于,所述获取所述验证码在所述用户界面图片中的位置信息包括:
将包含所述验证码的用户界面的内容转换为目标文档;
根据验证码元素的名称对所述目标文档进行遍历,获取所述验证码元素的描述信息;
从所述描述信息中提取所述验证码的位置信息。
3.如权利要求1所述的测试方法,其特征在于,所述对所述验证码图片进行图像处理,识别验证码信息包括:
对所述验证码图片进行灰度化处理,获取灰化图像;
对所述灰化图像进行二值化处理,得到二值化图像;
对所述二值化图像进行字符分割,获取单个字符图像;
按照预设的字符识别方式识别每个所述单个字符图像中的字符;
将识别出的每个所述字符组成验证码信息。
4.如权利要求3所述的测试方法,其特征在于,所述按照预设的字符识别方式识别每个所述单个字符图像中的字符包括:
根据预设的字符特征模板的定义,对每个所述单个字符图像进行特征解析,获取该单个字符图像对应的目标字符特征;
针对每个所述单个字符图像,计算该单个字符图像对应的目标字符特征与预设的字符库中的标准字符特征之间的特征相似度,将所述特征相似度最大的标准字符特征对应的标准字符作为该单个字符图像的字符,其中,所述字符库包括预设的标准字符及其对应的标准字符特征。
5.如权利要求1所述的测试方法,其特征在于,所述根据识别出的所述验证码信息,完成对所述验证码的自动化测试包括:
将识别出的所述验证码信息自动输入到验证码输入框中,或者随机生成与所述验证码信息不同的错误验证码信息,并将该错误验证码信息自动输入到所述验证码输入框中,完成对所述验证码的自动化测试。
6.一种验证码的测试装置,其特征在于,所述测试装置包括:
检测模块,用于在自动化测试的过程中,若检测到待测试的验证码,则截取包含所述验证码的用户界面图片;
获取模块,用于获取所述验证码在所述用户界面图片中的位置信息;
截取模块,用于根据所述位置信息,从所述用户界面图片中截取所述验证码所在的验证码图片;
识别模块,用于对所述验证码图片进行图像处理,识别验证码信息;
测试模块,用于根据识别出的所述验证码信息,完成对所述验证码的自动化测试。
7.如权利要求6所述的测试装置,其特征在于,所述获取模块包括:
转换子模块,用于将包含所述验证码的用户界面的内容转换为目标文档;
遍历子模块,用于根据验证码元素的名称对所述目标文档进行遍历,获取所述验证码元素的描述信息;
提取子模块,用于从所述描述信息中提取所述验证码的位置信息。
8.如权利要求6所述的测试装置,其特征在于,所述识别模块包括:
灰化子模块,用于对所述验证码图片进行灰度化处理,获取灰化图像;
二值化子模块,用于对所述灰化图像进行二值化处理,得到二值化图像;
分割子模块,用于对所述二值化图像进行字符分割,获取单个字符图像;
匹配子模块,用于按照预设的字符识别方式识别每个所述单个字符图像中的字符;
组成子模块,用于将识别出的每个所述字符组成验证码信息。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述验证码的测试方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述验证码的测试方法的步骤。
CN201810198355.4A 2018-03-12 2018-03-12 一种验证码的测试方法、装置、终端设备及存储介质 Pending CN108563559A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810198355.4A CN108563559A (zh) 2018-03-12 2018-03-12 一种验证码的测试方法、装置、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810198355.4A CN108563559A (zh) 2018-03-12 2018-03-12 一种验证码的测试方法、装置、终端设备及存储介质

Publications (1)

Publication Number Publication Date
CN108563559A true CN108563559A (zh) 2018-09-21

Family

ID=63532584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810198355.4A Pending CN108563559A (zh) 2018-03-12 2018-03-12 一种验证码的测试方法、装置、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN108563559A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726121A (zh) * 2018-12-12 2019-05-07 北京云测信息技术有限公司 一种验证码获取方法和终端设备
CN110032970A (zh) * 2019-04-11 2019-07-19 深圳市华付信息技术有限公司 高准确率的活体检测方法、装置、计算机设备及存储介质
CN111143213A (zh) * 2019-12-24 2020-05-12 北京数衍科技有限公司 软件自动化测试方法和装置及电子设备
CN111274957A (zh) * 2020-01-20 2020-06-12 阳光人寿保险股份有限公司 网页页面验证码识别方法、装置、终端和计算机存储介质
CN111352827A (zh) * 2018-12-24 2020-06-30 中移信息技术有限公司 一种自动化测试的方法及装置
CN111723891A (zh) * 2019-03-18 2020-09-29 北京京东尚科信息技术有限公司 图形码生成方法、装置和计算机可读存储介质
CN112035821A (zh) * 2020-09-04 2020-12-04 平安科技(深圳)有限公司 图形验证码识别方法、装置、计算机设备及存储介质
CN112241640A (zh) * 2019-07-18 2021-01-19 杭州海康威视数字技术股份有限公司 一种图形码确定方法、装置和工业相机
CN113568794A (zh) * 2021-07-29 2021-10-29 中国银行股份有限公司 前端自动化测试方法及装置
CN113760730A (zh) * 2021-01-27 2021-12-07 北京京东振世信息技术有限公司 一种自动化测试的方法和装置
CN114860604A (zh) * 2022-05-24 2022-08-05 广州掌动智能科技有限公司 自动识别动态验证码的自动测试方法、***和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944177A (zh) * 2010-08-30 2011-01-12 深圳市多赢软件技术有限公司 一种验证码识别方法
US20120291019A1 (en) * 2011-05-12 2012-11-15 Canon Kabushiki Kaisha Program verification apparatus based on model verifying and storage medium
CN102946334A (zh) * 2012-11-28 2013-02-27 ***(深圳)有限公司 一种获取有效图像验证码的方法和***
CN104021376A (zh) * 2014-06-05 2014-09-03 北京乐动卓越科技有限公司 验证码识别方法和装置
CN106650398A (zh) * 2017-01-03 2017-05-10 深圳博十强志科技有限公司 移动平台的验证码识别***及识别方法
CN107454118A (zh) * 2017-10-11 2017-12-08 北京安博通科技股份有限公司 验证码获取方法及装置、登录方法及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944177A (zh) * 2010-08-30 2011-01-12 深圳市多赢软件技术有限公司 一种验证码识别方法
US20120291019A1 (en) * 2011-05-12 2012-11-15 Canon Kabushiki Kaisha Program verification apparatus based on model verifying and storage medium
CN102946334A (zh) * 2012-11-28 2013-02-27 ***(深圳)有限公司 一种获取有效图像验证码的方法和***
CN104021376A (zh) * 2014-06-05 2014-09-03 北京乐动卓越科技有限公司 验证码识别方法和装置
CN106650398A (zh) * 2017-01-03 2017-05-10 深圳博十强志科技有限公司 移动平台的验证码识别***及识别方法
CN107454118A (zh) * 2017-10-11 2017-12-08 北京安博通科技股份有限公司 验证码获取方法及装置、登录方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LUCAS__LIU: "验证码识别处理--基于python(一)", 《HTTPS://BLOG.CSDN.NET/LB245557472/ARTICLE/DETAILS/71518576》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726121B (zh) * 2018-12-12 2022-02-18 北京云测信息技术有限公司 一种验证码获取方法和终端设备
CN109726121A (zh) * 2018-12-12 2019-05-07 北京云测信息技术有限公司 一种验证码获取方法和终端设备
CN111352827A (zh) * 2018-12-24 2020-06-30 中移信息技术有限公司 一种自动化测试的方法及装置
CN111723891A (zh) * 2019-03-18 2020-09-29 北京京东尚科信息技术有限公司 图形码生成方法、装置和计算机可读存储介质
CN110032970A (zh) * 2019-04-11 2019-07-19 深圳市华付信息技术有限公司 高准确率的活体检测方法、装置、计算机设备及存储介质
CN112241640A (zh) * 2019-07-18 2021-01-19 杭州海康威视数字技术股份有限公司 一种图形码确定方法、装置和工业相机
CN112241640B (zh) * 2019-07-18 2023-06-30 杭州海康威视数字技术股份有限公司 一种图形码确定方法、装置和工业相机
CN111143213A (zh) * 2019-12-24 2020-05-12 北京数衍科技有限公司 软件自动化测试方法和装置及电子设备
CN111274957A (zh) * 2020-01-20 2020-06-12 阳光人寿保险股份有限公司 网页页面验证码识别方法、装置、终端和计算机存储介质
CN112035821A (zh) * 2020-09-04 2020-12-04 平安科技(深圳)有限公司 图形验证码识别方法、装置、计算机设备及存储介质
CN113760730A (zh) * 2021-01-27 2021-12-07 北京京东振世信息技术有限公司 一种自动化测试的方法和装置
CN113568794A (zh) * 2021-07-29 2021-10-29 中国银行股份有限公司 前端自动化测试方法及装置
CN114860604A (zh) * 2022-05-24 2022-08-05 广州掌动智能科技有限公司 自动识别动态验证码的自动测试方法、***和存储介质
CN114860604B (zh) * 2022-05-24 2023-04-21 广州掌动智能科技有限公司 自动识别动态验证码的自动测试方法、***和存储介质

Similar Documents

Publication Publication Date Title
CN108563559A (zh) 一种验证码的测试方法、装置、终端设备及存储介质
KR102595704B1 (ko) 영상 검측 방법, 장치, 전자 기기, 저장 매체 및 프로그램
CN109977935A (zh) 一种文本识别方法及装置
CN102750555B (zh) 一种基于即时通讯工具的表情识别装置
CN110675940A (zh) 病理图像标注方法、装置、计算机设备及存储介质
CN112559341A (zh) 一种画面测试方法、装置、设备及存储介质
WO2021159802A1 (zh) 图形验证码识别方法、装置、计算机设备及存储介质
CN112818852A (zh) ***校验方法、装置、设备及存储介质
CN110378886B (zh) 图像比对方法、图像比对装置、电子设备和介质
CN113704111A (zh) 页面自动化测试方法、装置、设备及存储介质
CN112632926B (zh) 票据的数据处理方法、装置、电子设备及存储介质
CN110414522A (zh) 一种字符识别方法及装置
CN109753217B (zh) 动态键盘操作方法、装置、存储介质及电子设备
US9881210B2 (en) Generating a computer executable chart visualization by annotating a static image
CN110880023A (zh) 一种检测证件图片的方法及装置
CN112084103A (zh) 界面测试方法、装置、设备和介质
JP6365117B2 (ja) 情報処理装置、画像判定方法、及びプログラム
CN110764685A (zh) 用于识别二维码的方法和设备
CN113177543B (zh) 证件识别方法、装置、设备及存储介质
JP5712859B2 (ja) 画像認識装置および画像認識方法
CN114782955A (zh) 埋点处理方法、电子设备、存储介质
CN111626244B (zh) 图像识别方法、装置、电子设备和介质
CN114387600A (zh) 文本特征识别方法、装置、计算机设备和存储介质
US20190057277A1 (en) Error block determination
CN110135426B (zh) 样本标注方法及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180921

RJ01 Rejection of invention patent application after publication