CN113704128A - 接口的自动化测试方法和装置 - Google Patents
接口的自动化测试方法和装置 Download PDFInfo
- Publication number
- CN113704128A CN113704128A CN202111029962.6A CN202111029962A CN113704128A CN 113704128 A CN113704128 A CN 113704128A CN 202111029962 A CN202111029962 A CN 202111029962A CN 113704128 A CN113704128 A CN 113704128A
- Authority
- CN
- China
- Prior art keywords
- picture
- verification code
- interface
- test
- tested
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 215
- 238000012795 verification Methods 0.000 claims abstract description 216
- 238000012545 processing Methods 0.000 claims abstract description 94
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims description 34
- 230000003068 static effect Effects 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 7
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000009432 framing Methods 0.000 claims description 3
- 238000010998 test method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 10
- 238000000605 extraction Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种获取对待测试接口进行自动化测试的测试指令;其中,待测试接口用于访问目标应用;根据测试指令,获取验证码图片;对验证码图片进行处理,得到登录待测试接口的验证码;利用验证码登录待测试接口,并获取待测试接口返回的测试结果;对测试结果进行分析,确定待测试接口的测试状态。本方案能够实现对需要验证码访问的接口进行自动化测试。
Description
技术领域
本发明涉及计算软件接口测试技术领域,特别涉及一种接口的自动化测试方法和装置。
背景技术
随着计算机技术的不断发展,各种软件产品系列也越来越多。这就使得作为前端和后端重要交互点的接口,需要承载越来越多的任务。而越来越多的任务经常导致接口无法正常使用。
目前,通常采用对接口进行测试来保证接口的正常使用。比如申请号为CN111240989A的专利公开了一种接口自动化测试框架及方法,其通过向待测试的接口发送请求数据,然后根据反馈的结果来判断接口是否正常。
然而,现阶段部分产品的接口通常会在后端设置一个固定的验证码,从而通过该验证码进行应用程序的登录和令牌获取。这就导致上述公开的接口自动化测试的方案由于验证码的存在无法进行自动化测试。
发明内容
本发明提供了一种接口的自动化测试方法和装置,能够实现对需要验证码访问的接口进行自动化测试。
第一方面,本发明实施例提供了接口的自动化测试方法,包括:
获取对待测试接口进行自动化测试的测试指令;其中,所述待测试接口用于访问目标应用;
根据所述测试指令,获取验证码图片;
对所述验证码图片进行处理,得到登录所述待测试接口的验证码;
利用所述验证码登录所述待测试接口,并获取所述待测试接口返回的测试结果;
对所述测试结果进行分析,确定所述待测试接口的测试状态。
在一种可能的实现方式中,所述获取对待测试接口进行自动化测试的测试指令,包括:
对所述目标应用的版本进行实时监控;以及,
在所述目标应用有新版本更新时,获取所述待测试接口的测试指令;
和/或,
按照预先设定的时间间隔,获取所述待测试接口的测试指令。
在一种可能的实现方式中,所述对所述验证码图片进行处理得到登录所述待测试接口的验证码,包括:
根据所述验证码图片确定需要进行图片处理的待处理验证码图片;
将所述待处理图片进行二值化处理,得到灰度验证码图片;
对所述灰度验证码图片进行降噪处理,得到待识别验证码图片;
对所述待识别验证码图片进行文字识别,得到登录所述待测试接口的验证码。
在一种可能的实现方式中,所述根据所述验证码图片确定需要进行图片处理的待处理验证码图片,包括:
判断所述验证码图片的图片类型;其中,所述图片类型包括:动图和静图;
当所述验证码图片的图片类型为动图时,对所述验证码图片进行分帧处理;并将所有文字都包含的帧所对应的图片确定为待处理验证码图片;
当所述验证码图片的图片类型为静图时,将所述验证码图片确定为待处理验证码图片。
在一种可能的实现方式中,所述将所述待处理图片进行二值化处理得到灰度验证码图片,包括:
将所述待处理图片的RGB值中R值和G值小于第一预设值的像素点调节为纯黑,得到第一灰度处理图片;
将所述第一灰度处理图片的RGB值中B值大于0的像素点变为纯白,得到第二灰度处理图片;
将所述第二灰度处理图片的RGB值中达到预设阈值的像素点的颜色进行清除,得到第三灰度处理图片;
将所述第三灰度处理图片中的纯黄色进行去除,得到所述灰度验证码图片。
在一种可能的实现方式中,所述对所述待识别验证码图片进行文字识别,包括:
确定所述验证码所采用的目标字体;
利用机器学习对所述字体为所述目标字体的字符进行标签定义,得到特征文件;
根据所述特征文件,利用字符识别技术对所述待识别验证码图片中的验证码进行识别。
在一种可能的实现方式中,所述测试值包括接口的响应内容、响应时间和响应代码;
所述对所述测试结果进行分析确定所述待测试接口的测试状态,包括:
确定所述响应内容中是否包括预先设定的内容;
若包括,则测试成功;否则,测试失败;
和/或,
判断所述响应时间是否超过预先设定的响应时间阈值;
若超过,则测试失败;否则,测试成功;
和/或,
判断所述响应代码是否正确;
若正确,则测试成功;否则,测试失败。
第二方面,本发明实施例还提供了一种接口的自动化测试装置,包括:测试指令获取模块、图片获取模块、图片处理模块、测试接口登录模块和测试结果分析模块;
所述测试指令获取模块,用于获取对待测试接口进行自动化测试的测试指令;其中,所述待测试接口用于访问目标应用;
所述图片获取模块,用于根据所述测试指令获取模块获取的所述测试指令,获取验证码图片;
所述图片处理模块,用于对所述图片获取模块获取的所述验证码图片进行处理,得到登录所述待测试接口的验证码;
所述测试接口登录模块,用于利用所述图片处理模块得到的所述验证码登录所述待测试接口,并获取所述待测试接口返回的测试结果;
所述测试结果分析模块,用于对所述测试接口登录模块得到的所述测试结果进行分析,确定所述待测试接口的测试状态。
在一种可能的实现方式中,所述测试指令获取模块在获取对待测试接口进行自动化测试的测试指令时,配置成执行如下操作:
对所述目标应用的版本进行实时监控;以及,
在所述目标应用有新版本更新时,获取所述待测试接口的测试指令;
和/或,
按照预先设定的时间间隔,获取所述待测试接口的测试指令。
在一种可能的实现方式中,所述图片处理模块在对所述验证码图片进行处理得到登录所述待测试接口的验证码时,配置成执行如下操作:
根据所述验证码图片确定需要进行图片处理的待处理验证码图片;
将所述待处理图片进行二值化处理,得到灰度验证码图片;
对所述灰度验证码图片进行降噪处理,得到待识别验证码图片;
对所述待识别验证码图片进行文字识别,得到登录所述待测试接口的验证码。
由上述技术方案可知,在对接口进行自动化检测时,首先获取对待测试接口进行自动化测试的测试指令,如此可以根据该测试指令获取验证码图片。进一步,通过对该验证码图片进行处理,可以从图片中得到登录待测试接口的验证码,如此可利用该验证码登录待测试接口。最后通过对待测试接口返回的测试结果进行分析,可以确定出该待测试接口处于什么状态。由此可见,针对与通过验证码才能登录的接口,本方案通过对包含验证码的图片进行处理,进而从图片中提取出验证码,如此即可利用该验证码进行接口访问。在对需要验证码才能登录的接口进行测试时,不需要人为进行验证码的输入,即可实现对接口的自动化测试。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的接口的自动化测试方法的流程图;
图2是本发明一个实施例提供的验证码图片处理方法的流程图;
图3是本发明一个实施例提供的接口的自动化测试装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如前,随着各种软件产品系列越来越多,导致作为前端和后端重要交互点的接口所要承担的任务也越来越多。而越来越多的任务又会导致接口经常无法正常使用。
为了保证各种接口能够正常使用,通常采用对接口进行测试的方式。比如,接口的测试系统可以由测试用例、开源接口测试工具Jmeter、开源持续集成工具Jenkins组成。测试人员编写完接口测试用例后,由Jenkins调度Jmeter进行测试及结果展示。然而,现阶段部分产品接口的请求依赖于从登录接口获取的Token令牌,而登录接口采用帐号密码及图片形式的动态验证码进行校验。这导致了无法通过工具本身进行处理,也就无法对接口进行自动化测试。
基于此,本方案在对需要验证码验证的接口进行自动化测试时,考虑对验证码的图片进行处理,从图片中提取出验证码。如此利用该验证码即可实现接口的登录,进而实现对接口的自动化测试。
下面对本发明提供的接口的自动化测试方法和装置作进一步详细地说明。
如图1所示,本发明实施例提供了一种接口的自动化测试方法,该方法可以包括如下步骤:
步骤101:获取对待测试接口进行自动化测试的测试指令;其中,待测试接口用于访问目标应用;
步骤102:根据测试指令,获取验证码图片;
步骤103:对验证码图片进行处理,得到登录待测试接口的验证码;
步骤104:利用验证码登录待测试接口,并获取待测试接口返回的测试结果;
步骤105:对测试结果进行分析,确定待测试接口的测试状态。
本发明实施例中,在对接口进行自动化检测时,首先获取对待测试接口进行自动化测试的测试指令,如此可以根据该测试指令获取验证码图片。进一步,通过对该验证码图片进行处理,可以从图片中得到登录待测试接口的验证码,如此可利用该验证码登录待测试接口。最后通过对待测试接口返回的测试结果进行分析,可以确定出该待测试接口处于什么状态。由此可见,针对与通过验证码才能登录的接口,本方案通过对包含验证码的图片进行处理,进而从图片中提取出验证码,如此即可利用该验证码进行接口访问。在对需要验证码才能登录的接口进行测试时,不需要人为进行验证码的输入,即可实现对接口的自动化测试。
值得注意的是,测试指令可以包括需要进行测试的接口的信息。比如可以是该待测试接口对应的提供验证码的验证码接口,如此可以通过该验证码接口下载到验证码图片,从而进行进一步的验证码提取和接口登录。
步骤103在验证码图片进行处理时,可以考虑开发动态验证码提取算法。比如利用Python语言,结合Tesseract-OCR(开源图像识别工具),通过自行开发动态验证码提取算法,实现自动从静图或动图中获取验证码文字,并传递至登录接口进行登录,从而得到Token令牌进行其他接口的测试。
步骤101在获取对待测试接口进行自动化测试的测试指令时,在一种可能的实现方式中,可以通过如下方式实现:
对目标应用的版本进行实时监控;以及,
在目标应用有新版本更新时,获取待测试接口的测试指令;
在另一种可能的实现方式中,步骤101在获取对待测试接口进行自动化测试的测试指令时,还可以考虑按照预先设定的时间间隔获取待测试接口的测试指令。由此可见,本方案在获取对待测试接口进行自动化测试的测试指令时,不仅可以通过在有版本更新时进行获取,而且还可以通过定时的方式进行获取。如此可以根据需求采取相应的获取方式,进而实现对测试接口的灵活测试。
在Jenkins持续集成工具中,该Jenkins持续集成工具可以包括触发器、步骤构建和构建后操作等。步骤构建即用于实现步骤101至步骤104,即通过提取验证码图片中的验证码进行接口登录,并获得接口返回的测试结果。而构建后操作则用于实现步骤105,即对测试结果进行分析,确定待测试接口的测试状态,即确定待测试接口是否是正常可用的。而触发器可以分为更新触发和定时触发,可用于实现本实施例。更新触发即后端有新版本发布上线时,持续集成工具检测到上线完成则触发构建步骤,定时触发即在指定的时间或间隔时间内触发构建步骤。
进一步在构建步骤被触发时,将运行Jmeter执行接口测试用例,生成测试报告并将测试数据上传至数据库保存。构建后操作将测试报告进行分析,判断测试结果成功与否。当测试失败时,从数据库中读取失败数据,并通过企业微信进行通知。
在一种可能的实现方式中,步骤103在对验证码图片进行处理得到登录待测试接口的验证码时,如图2所示,可以通过如下步骤实现:
步骤201:根据验证码图片确定需要进行图片处理的待处理验证码图片;
步骤202:将待处理图片进行二值化处理,得到灰度验证码图片;
步骤203:对灰度验证码图片进行降噪处理,得到待识别验证码图片;
步骤204:对待识别验证码图片进行文字识别,得到登录待测试接口的验证码。
由于从验证码接口下载下来的图片可能是静态的图片,还有可能是动态的图片,而动态的图片无法进行进一步的图片处理。因此在利用验证码图片进行进一步的图片处理时,首先考虑根据验证码图片确定需要进行图片处理的待处理验证码图片。进而在通过二值化处理将图片进行灰度化,以及通过降噪等处理提高图片的清晰度。进一步通过对得到的待识别验证码图片进行文字识别,即可从图片中提取出用于登录待测试接口的验证码。
上述提到,获取到的验证码图片可能是静态图片,也可能是动态图片。因此步骤201在根据验证码图片确定需要进行图片处理的待处理验证码图片时,可以通过如下方式实现:
判断验证码图片的图片类型;其中,图片类型包括:动图和静图;
当验证码图片的图片类型为动图时,对验证码图片进行分帧处理;并将所有文字都包含的帧所对应的图片确定为待处理验证码图片;
当验证码图片的图片类型为静图时,将验证码图片确定为待处理验证码图片。
在本实施例中,对获取到的验证码图片的图片类型进行判断,即判断该验证码图片为静态图还是动态图。如果是静态图,那么该验证码图片可以直接进行图片处理,进而可以将该验证码图片直接确定为待处理验证码图片。如果该验证码图片时动态图,那么该验证码图片无法直接进行图片处理。因此考虑对该验证码图片进行分帧处理,截取包含所有文字的那一帧对应的图片,并将截取的该包含所有文字的图片确定为待处理验证码图片。由此可见,本方案能够同时适用于静态验证码的接口和动态验证码的接口,具有宽泛的使用范围。
在一种可能的实现方式中,步骤202在将待处理图片进行二值化处理得到灰度验证码图片时,可以通过如下方式实现:
将待处理图片的RGB值中R值和G值小于第一预设值的像素点调节为纯黑,得到第一灰度处理图片;
将第一灰度处理图片的RGB值中B值大于0的像素点变为纯白,得到第二灰度处理图片;
将第二灰度处理图片的RGB值中达到预设阈值的像素点的颜色进行清除,得到第三灰度处理图片;
将第三灰度处理图片中的纯黄色进行去除,得到灰度验证码图片。
本实施例中,在对待处理图片进行二值化处理时,考虑对其进行三次二值化处理。RGB值时工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。在第一次二值化处理中,考虑使RGB值中R和G小于第一预设值(比如该第一预设值可以是90)的像素点变成纯黑、B大于0的像素点变成纯白。在第二次二值化处理中,考虑将RGB值中达到预设阈值的像素点的颜色进行清除,比如第二次处理去除R、G、B值接近255的颜色。在第三次二值化处理中,考虑将图片中的纯黄色进行去除,这样得到的灰度验证码图片即为只有黑色和白色的图片,从而利用该灰度验证码图片即可进行文字识别。
需要指出的是,图片中可能会存在干扰。因此,在通过三次二值化处理得到灰度验证码图片之后,还可以考虑对该黑白的灰度验证码图片进行去噪处理。即将图片中的噪点填充为白色,有效像素填充为黑色,以此来提高图片的清晰度,进而提升文字识别的准确性。当然,当图片中的干扰较多时,还可以考虑对图片进行多次去噪。
在一种可能的实现方式中,步骤204在对待识别验证码图片进行文字识别时,可以考虑通过如下方式实现:
确定验证码所采用的目标字体;
利用机器学习对字体为目标字体的字符进行标签定义,得到特征文件;
根据特征文件,利用字符识别算法对待识别验证码图片中的验证码进行识别。
本发明实施例中,在对待识别验证码图片进行文字识别时,首先可以确定该验证码所采用的字体是哪种字体,然后利用机器学习的方式对字体为这种验证码所采用的字体的字符进行标签定义,从而可以得到由标签所构成的特征文件。进一步,根据该特征文件,利用字符识别算法对待识别验证码图片中的验证码进行识别。由此可见,本方案可以针对不同字体的验证码,通过针对不同的字体构建特征文件,从而利用该特征文件进行文字识别。因此,本方案具有更广的应用范围,而且通过对字体进行区分识别,能够提高文字识别的精度。
比如,在进行文字识别时,为了提高动态验证码的识别率,可以考虑采用jTessBoxEditor进行机器学习,其原理是,根据动态验证码所采用的字体,整理出字体图片库,再使用样本识别训练软件jTessBoxEditor对字体图片库进行识别,接着对其中误识别的字符进行更正,直到所有字符均能被正确识别,最后得到并生成特征文件。如此,动态验证码提取算法可使用特征文件对验证码图片进行识别。
步骤105中的测试结果可以包括接口的响应内容、响应时间和响应代码等。如此步骤105在对述测试结果进行分析确定待测试接口的测试状态时,在一种可能的实现方式中,可以确定响应内容中是否包括预先设定的内容;若包括,则测试成功;否则,测试失败。
在另一种可能的实现方式中,还可以判断响应时间是否超过预先设定的响应时间阈值;若超过,则测试失败;否则,测试成功。
在又一种可能的实现方式中,还可以判断响应代码是否正确;若正确,则测试成功;否则,测试失败。
由此可见,在对测试结果进行分析时,利用Jmeter接口测试工具进行编写,接口测试用例包括请求内容、预处理程序及后置处理程序、断言。请求内容分为请求头、请求地址、消息体,接口测试必须要有请求内容才能进行。断言是判断接口测试成功与否的重要标志,其可从接口的响应内容、响应时间、响应代码等纬度进行判断。预处理程序在接口进行请求之前,对请求内容自动进行处理,使之符合测试要求,与之对应的,后置处理程序则是在接口请求之后,对接口的返回值进行处理,得到需要的信息。当后置处理程序返回测试结果后,断言根据测试结果中的响应内容、响应时间和响应代码等纬度中的任意一个或多个进行判断,以确定待测试的接口是否正常。
由于动态验证码提取算法仍有一定的误识别率,即从验证码图片中提取验证码时可能出现误识别,因此在编写接口测试用例时,可以考虑对登录接口设计重试机制。即使用断言对接口返回值进行校验,当返回值为验证码错误时,重新获取验证码进行识别,再次执行登录接口测试,直到测试成功。当返回值为其他错误时,判断测试失败,当返回值为登录成功时,测试成功。
如图3所示,本发明实施例还提供了一种接口的自动化测试装置,用于执行上述任一实施例提供的接口的自动化测试方法,该装置可以包括:测试指令获取模块301、图片获取模块302、图片处理模块303、测试接口登录模块304和测试结果分析模块305;
测试指令获取模块301,用于获取对待测试接口进行自动化测试的测试指令;其中,待测试接口用于访问目标应用;
图片获取模块302,用于根据测试指令获取模块301获取的测试指令,获取验证码图片;
图片处理模块303,用于对图片获取模块302获取的验证码图片进行处理,得到登录待测试接口的验证码;
测试接口登录模块304,用于利用图片处理模块303得到的验证码登录待测试接口,并获取待测试接口返回的测试结果;
测试结果分析模块305,用于对测试接口登录模块304得到的测试结果进行分析,确定待测试接口的测试状态。
在一种可能的实现方式中,测试指令获取模块301在获取对待测试接口进行自动化测试的测试指令时,配置成执行如下操作:
对目标应用的版本进行实时监控;以及,
在目标应用有新版本更新时,获取待测试接口的测试指令;
和/或,
按照预先设定的时间间隔,获取待测试接口的测试指令。
在一种可能的实现方式中,图片处理模块303在对验证码图片进行处理得到登录待测试接口的验证码时,配置成执行如下操作:
根据验证码图片确定需要进行图片处理的待处理验证码图片;
将待处理图片进行二值化处理,得到灰度验证码图片;
对灰度验证码图片进行降噪处理,得到待识别验证码图片;
对待识别验证码图片进行文字识别,得到登录待测试接口的验证码。
在一种可能的实现方式中,图片处理模块303在根据验证码图片确定需要进行图片处理的待处理验证码图片时,配置成执行如下操作:
判断验证码图片的图片类型;其中,图片类型包括:动图和静图;
当验证码图片的图片类型为动图时,对验证码图片进行分帧处理;并将所有文字都包含的帧所对应的图片确定为待处理验证码图片;
当验证码图片的图片类型为静图时,将验证码图片确定为待处理验证码图片。
在一种可能的实现方式中,图片处理模块303在将待处理图片进行二值化处理得到灰度验证码图片时,配置成执行如下操作:
将待处理图片的RGB值中R值和G值小于第一预设值的像素点调节为纯黑,得到第一灰度处理图片;
将第一灰度处理图片的RGB值中B值大于0的像素点变为纯白,得到第二灰度处理图片;
将第二灰度处理图片的RGB值中达到预设阈值的像素点的颜色进行清除,得到第三灰度处理图片;
将第三灰度处理图片中的纯黄色进行去除,得到灰度验证码图片。
在一种可能的实现方式中,图片处理模块303在对待识别验证码图片进行文字识别时,配置成执行如下操作:
确定验证码所采用的目标字体;
利用机器学习对字体为目标字体的字符进行标签定义,得到特征文件;
根据特征文件,利用字符识别算法对待识别验证码图片中的验证码进行识别。
在一种可能的实现方式中,测试结果包括接口的响应内容;
测试结果分析模块305在对测试结果进行分析确定待测试接口的测试状态时,配置成执行如下操作:
确定响应内容中是否包括预先设定的内容;
若包括,则测试成功;否则,测试失败;
在一种可能的实现方式中,测试结果包括接口的响应时间;测试结果分析模块305在对测试结果进行分析确定待测试接口的测试状态时,配置成执行如下操作:
判断响应时间是否超过预先设定的响应时间阈值;
若超过,则测试失败;否则,测试成功;
在一种可能的实现方式中,测试结果包括接口的响应代码;测试结果分析模块305在对测试结果进行分析确定待测试接口的测试状态时,配置成执行如下操作:
判断响应代码是否正确;
若正确,则测试成功;否则,测试失败。
可以理解的是,本发明实施例示意的结构并不构成对接口的自动化测试装置的具体限定。在本发明的另一些实施例中,接口的自动化测试装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种计算设备,包括:至少一个存储器和至少一个处理器;
至少一个存储器,用于存储机器可读程序;
至少一个处理器,用于调用机器可读程序,执行本发明任一实施例中的接口的自动化测试方法。
本发明实施例还提供了一种计算机可读介质,存储用于使一计算机执行如本文的接口的自动化测试方法的指令。具体地,可以提供配有存储介质的方法或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该方法或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作方法等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (10)
1.接口的自动化测试方法,其特征在于,包括:
获取对待测试接口进行自动化测试的测试指令;其中,所述待测试接口用于访问目标应用;
根据所述测试指令,获取验证码图片;
对所述验证码图片进行处理,得到登录所述待测试接口的验证码;
利用所述验证码登录所述待测试接口,并获取所述待测试接口返回的测试结果;
对所述测试结果进行分析,确定所述待测试接口的测试状态。
2.根据权利要求1所述的方法,其特征在于,所述获取对待测试接口进行自动化测试的测试指令,包括:
对所述目标应用的版本进行实时监控;以及,
在所述目标应用有新版本更新时,获取所述待测试接口的测试指令;
和/或,
按照预先设定的时间间隔,获取所述待测试接口的测试指令。
3.根据权利要求1所述的方法,其特征在于,所述对所述验证码图片进行处理得到登录所述待测试接口的验证码,包括:
根据所述验证码图片确定需要进行图片处理的待处理验证码图片;
将所述待处理图片进行二值化处理,得到灰度验证码图片;
对所述灰度验证码图片进行降噪处理,得到待识别验证码图片;
对所述待识别验证码图片进行文字识别,得到登录所述待测试接口的验证码。
4.根据权利要求3所述的方法,其特征在于,所述根据所述验证码图片确定需要进行图片处理的待处理验证码图片,包括:
判断所述验证码图片的图片类型;其中,所述图片类型包括:动图和静图;
当所述验证码图片的图片类型为动图时,对所述验证码图片进行分帧处理;并将所有文字都包含的帧所对应的图片确定为待处理验证码图片;
当所述验证码图片的图片类型为静图时,将所述验证码图片确定为待处理验证码图片。
5.根据权利要求3所述的方法,其特征在于,所述将所述待处理图片进行二值化处理得到灰度验证码图片,包括:
将所述待处理图片的RGB值中R值和G值小于第一预设值的像素点调节为纯黑,得到第一灰度处理图片;
将所述第一灰度处理图片的RGB值中B值大于0的像素点变为纯白,得到第二灰度处理图片;
将所述第二灰度处理图片的RGB值中达到预设阈值的像素点的颜色进行清除,得到第三灰度处理图片;
将所述第三灰度处理图片中的纯黄色进行去除,得到所述灰度验证码图片。
6.根据权利要求3所述的方法,其特征在于,所述对所述待识别验证码图片进行文字识别,包括:
确定所述验证码所采用的目标字体;
利用机器学习对字体为所述目标字体的字符进行标签定义,得到特征文件;
根据所述特征文件,利用字符识别算法对所述待识别验证码图片中的验证码进行识别。
7.根据权利要求1至6中任一所述的方法,其特征在于,所述测试结果包括接口的响应内容、响应时间和响应代码;
所述对所述测试结果进行分析确定所述待测试接口的测试状态,包括:
确定所述响应内容中是否包括预先设定的内容;
若包括,则测试成功;否则,测试失败;
和/或,
判断所述响应时间是否超过预先设定的响应时间阈值;
若超过,则测试失败;否则,测试成功;
和/或,
判断所述响应代码是否正确;
若正确,则测试成功;否则,测试失败。
8.接口的自动化测试装置,其特征在于,包括:测试指令获取模块、图片获取模块、图片处理模块、测试接口登录模块和测试结果分析模块;
所述测试指令获取模块,用于获取对待测试接口进行自动化测试的测试指令;其中,所述待测试接口用于访问目标应用;
所述图片获取模块,用于根据所述测试指令获取模块获取的所述测试指令,获取验证码图片;
所述图片处理模块,用于对所述图片获取模块获取的所述验证码图片进行处理,得到登录所述待测试接口的验证码;
所述测试接口登录模块,用于利用所述图片处理模块得到的所述验证码登录所述待测试接口,并获取所述待测试接口返回的测试结果;
所述测试结果分析模块,用于对所述测试接口登录模块得到的所述测试结果进行分析,确定所述待测试接口的测试状态。
9.根据权利要求8所述的装置,其特征在于,所述测试指令获取模块在获取对待测试接口进行自动化测试的测试指令时,配置成执行如下操作:
对所述目标应用的版本进行实时监控;以及,
在所述目标应用有新版本更新时,获取所述待测试接口的测试指令;
和/或,
按照预先设定的时间间隔,获取所述待测试接口的测试指令。
10.根据权利要求8所述的装置,其特征在于,所述图片处理模块在对所述验证码图片进行处理得到登录所述待测试接口的验证码时,配置成执行如下操作:
根据所述验证码图片确定需要进行图片处理的待处理验证码图片;
将所述待处理图片进行二值化处理,得到灰度验证码图片;
对所述灰度验证码图片进行降噪处理,得到待识别验证码图片;
对所述待识别验证码图片进行文字识别,得到登录所述待测试接口的验证码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111029962.6A CN113704128A (zh) | 2021-09-03 | 2021-09-03 | 接口的自动化测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111029962.6A CN113704128A (zh) | 2021-09-03 | 2021-09-03 | 接口的自动化测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113704128A true CN113704128A (zh) | 2021-11-26 |
Family
ID=78658997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111029962.6A Pending CN113704128A (zh) | 2021-09-03 | 2021-09-03 | 接口的自动化测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704128A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105844140A (zh) * | 2016-03-21 | 2016-08-10 | 国家电网公司 | 一种可识别验证码的网站登录暴力破解方法及系统 |
CN109189683A (zh) * | 2018-08-28 | 2019-01-11 | 中金金融认证中心有限公司 | 一种用于app测试中验证码自动输入的方法及系统 |
CN110457203A (zh) * | 2019-07-04 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 爬虫业务测试方法、装置、计算机设备和存储介质 |
CN110532762A (zh) * | 2019-09-02 | 2019-12-03 | 四川长虹电器股份有限公司 | 一种获取验证码图片进行登录爆破测试的方法 |
CN111143213A (zh) * | 2019-12-24 | 2020-05-12 | 北京数衍科技有限公司 | 软件自动化测试方法和装置及电子设备 |
JP2020086534A (ja) * | 2018-11-15 | 2020-06-04 | 国立大学法人 宮崎大学 | ランダムドットパターンcaptchaを用いたアクセス認証方法 |
CN111274957A (zh) * | 2020-01-20 | 2020-06-12 | 阳光人寿保险股份有限公司 | 网页页面验证码识别方法、装置、终端和计算机存储介质 |
CN113282905A (zh) * | 2021-04-23 | 2021-08-20 | 新华三信息安全技术有限公司 | 一种登录测试方法及装置 |
-
2021
- 2021-09-03 CN CN202111029962.6A patent/CN113704128A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105844140A (zh) * | 2016-03-21 | 2016-08-10 | 国家电网公司 | 一种可识别验证码的网站登录暴力破解方法及系统 |
CN109189683A (zh) * | 2018-08-28 | 2019-01-11 | 中金金融认证中心有限公司 | 一种用于app测试中验证码自动输入的方法及系统 |
JP2020086534A (ja) * | 2018-11-15 | 2020-06-04 | 国立大学法人 宮崎大学 | ランダムドットパターンcaptchaを用いたアクセス認証方法 |
CN110457203A (zh) * | 2019-07-04 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 爬虫业务测试方法、装置、计算机设备和存储介质 |
CN110532762A (zh) * | 2019-09-02 | 2019-12-03 | 四川长虹电器股份有限公司 | 一种获取验证码图片进行登录爆破测试的方法 |
CN111143213A (zh) * | 2019-12-24 | 2020-05-12 | 北京数衍科技有限公司 | 软件自动化测试方法和装置及电子设备 |
CN111274957A (zh) * | 2020-01-20 | 2020-06-12 | 阳光人寿保险股份有限公司 | 网页页面验证码识别方法、装置、终端和计算机存储介质 |
CN113282905A (zh) * | 2021-04-23 | 2021-08-20 | 新华三信息安全技术有限公司 | 一种登录测试方法及装置 |
Non-Patent Citations (1)
Title |
---|
段念;: "Web自动化测试中针对验证码的解决方案" * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111626177B (zh) | 一种pcb元件识别方法及装置 | |
CN110135225B (zh) | 样本标注方法及计算机存储介质 | |
CN111274957A (zh) | 网页页面验证码识别方法、装置、终端和计算机存储介质 | |
US11686703B2 (en) | Automated analysis of analytical gels and blots | |
CN110705596A (zh) | 白屏检测方法、装置、电子设备及存储介质 | |
US20040081346A1 (en) | Non-intrusive testing system and method | |
CN113657361A (zh) | 页面异常检测方法、装置及电子设备 | |
CN112308069A (zh) | 一种软件界面的点击测试方法、装置、设备及存储介质 | |
CN113377484A (zh) | 弹窗处理方法及装置 | |
CN113468905B (zh) | 图形码识别方法、装置、计算机设备和存储介质 | |
US20200167557A1 (en) | Digitization of industrial inspection sheets by inferring visual relations | |
CN110889365A (zh) | 一种标签信息获取方法及装置 | |
CN112633341A (zh) | 一种界面测试方法、装置、计算机设备和存储介质 | |
CN117421217A (zh) | 一种软件功能自动测试方法、系统、终端及介质 | |
CN113704128A (zh) | 接口的自动化测试方法和装置 | |
CN110992299B (zh) | 一种检测浏览器兼容性的方法及装置 | |
CN111488846A (zh) | 一种识别水位的方法及设备 | |
CN114972500A (zh) | 查验方法、标注方法、系统、装置、终端、设备及介质 | |
CN112464237A (zh) | 一种静态代码安全诊断方法及装置 | |
CN112287828A (zh) | 一种基于机器学习的财务报表生成方法及装置 | |
CN114860604B (zh) | 自动识别动态验证码的自动测试方法、系统和存储介质 | |
CN113804704A (zh) | 电路板检测方法、视觉检测设备及具有存储功能的装置 | |
Gungor et al. | Automated visual verification of avionics cockpit displays | |
CN113886745B (zh) | 页面图片测试方法、装置及电子设备 | |
Mulyana et al. | Optimization of Text Mining Detection of Tajweed Reading Laws Using the Yolov8 Method on the Qur'an |
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: 20211126 |
|
RJ01 | Rejection of invention patent application after publication |