CN109726121A - 一种验证码获取方法和终端设备 - Google Patents
一种验证码获取方法和终端设备 Download PDFInfo
- Publication number
- CN109726121A CN109726121A CN201811519846.0A CN201811519846A CN109726121A CN 109726121 A CN109726121 A CN 109726121A CN 201811519846 A CN201811519846 A CN 201811519846A CN 109726121 A CN109726121 A CN 109726121A
- Authority
- CN
- China
- Prior art keywords
- short message
- application
- message
- target
- identifying code
- 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.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种验证码获取方法,包括:在监听到待测试应用发起的验证码获取请求的情况下,调用短信应用;基于短信应用中的短信列表,确定与预设关键词相匹配的目标短信,预设关键词与待测试应用相对应,且目标短信的发送时间满足预设条件;获取目标短信中的目标验证码。本发明实施例能够提高验证码自动获取的可靠性,从而提高应用自动化测试的效率和测试结果的可靠性。
Description
技术领域
本发明涉及自动化测试领域,尤其涉及一种验证码获取方法和终端设备。
背景技术
在应用交付使用前,通常会进行应用测试来检查应用的性能。在进行应用测试时,可以利用测试工具,按照测试用例,在规定的条件下对被测试的应用进行操作,以发现应用错误,衡量应用质量,并对应用是否能满足设计要求进行评估。
在应用自动化测试过程中,当包含登录、支付等应用场景时,需要先完成验证码的输入后才能继续进行测试,可见,能够自动获取验证码对应用自动化测试的实现是很重要的环节。但是,验证码的动态变化性以及不同终端设备所使用的操作系统的多样性,会影响验证码自动获取的可靠性,从而会降低应用自动化测试的效率和测试结果的可靠性。
因此,如何提高验证码自动获取的可靠性,以提高应用自动化测试的效率和测试结果的可靠性,成为亟待解决的技术问题。
发明内容
本发明实施例提供一种验证码获取方法和终端设备,旨在提高验证码自动获取的可靠性,从而提高应用自动化测试的效率和测试结果的可靠性。
本发明实施例采用下述技术方案:
第一方面,本发明实施例提供一种验证码获取方法,包括:
在监听到待测试应用发起的验证码获取请求的情况下,调用短信应用;
基于所述短信应用中的短信列表,确定与预设关键词相匹配的目标短信,所述预设关键词与所述待测试应用相对应,且所述目标短信的发送时间满足预设条件;
获取所述目标短信中的目标验证码。
可选的,本申请第一方面提供的验证码获取方法中,所述基于所述短信应用中的短信列表,确定与预设关键词相匹配的目标短信,包括:
基于所述短信应用中的短信列表,确定与所述预设关键词相匹配的候选短信;
基于所述候选短信的获取时间,确定所述候选短信的发送时间是否满足所述预设条件;
将发送时间满足所述预设条件的候选短信,确定为所述目标短信。
可选的,本申请第一方面提供的验证码获取方法中,所述基于所述候选短信的获取时间,确定所述候选短信的发送时间是否满足所述预设条件,包括:
检测所述获取时间和所述发送时间的差值是否小于第一时间阈值;
在所述差值小于所述第一时间阈值的情况下,确定候选短信的发送时间满足所述预设条件;
在所述差值不小于所述第一时间阈值的情况下,确定候选短信的发送时间不满足所述预设条件。
可选的,本申请第一方面提供的验证码获取方法中,在所述检测所述发送时间和所述获取时间的差值是否小于第一时间阈值之前,所述方法还包括:
在所述待测试应用的验证码获取页面上提取验证码的有效时长信息;
基于所述有效时长信息,确定所述第一时间阈值。
可选的,本申请第一方面提供的验证码获取方法中,所述基于所述短信应用中的短信列表,确定与所述预设关键词相匹配的候选短信,包括:
获取所述短信应用中的当前短信列表;
生成所述当前短信列表对应的控件树,所述控件树包括与所述当前短信列表中的短信一一对应的节点;
遍历所述控件树,以查找与所述预设关键词相匹配的节点;
将所述节点对应的短信确定为所述候选短信。
可选的,本申请第一方面提供的验证码获取方法中,所述基于所述短信应用中的短信列表,确定与所述预设关键词相匹配的候选短信,包括:
获取所述短信应用中的当前短信列表;
采用光学字符识别方式,对所述当前短信列表进行识别,以识别出所述候选短信。
可选的,本申请第一方面提供的验证码获取方法中,所述获取所述目标短信中的目标验证码,包括:
采用正则表达式对所述目标短信的内容进行验证码匹配,将匹配到的验证码作为所述目标验证码。
可选的,本申请第一方面提供的验证码获取方法中,还包括:
在获取到所述目标验证码的累计时间达到第二时间阈值后,调用所述待测试应用;
在所述待测试应用中输入所述目标验证码,以继续测试所述待测试应用。
可选的,本申请第一方面提供的验证码获取方法中,所述预设关键词包括以下至少一个:待测试应用的标识、验证码发送方的标识、验证码的用途标识和验证码的类别标识。
第二方面,本发明实施例提供一种终端设备,包括:
调用模块,用于在监听到待测试应用发起的验证码获取请求的情况下,调用短信应用;
确定模块,用于基于所述短信应用中的短信列表,确定与预设关键词相匹配的目标短信,所述预设关键词与所述待测试应用相对应,且所述目标短信的发送时间满足预设条件;
获取模块,用于获取所述目标短信中的目标验证码。
本发明实施例采用的上述至少一个技术方案能够达到以下有益效果:
本发明实施例,在对待测试应用进行自动化测试的过程中,若进行到需要在自动获取验证码后才能继续测试的环节,则可以基于待测试应用发起的验证码获取请求调用短信应用,并在打开短信应用后,于其短信列表中确定能够获取到用于目标验证码的目标短信,其中,目标短信需与预设关键词匹配且该目标短信的发送时间应满足预设条件。如此,基于在短信列表中筛选出与待测试应用相对应的目标短信获取目标验证码,至少使目标验证码能够满足在待测试应用的相应界面进行输入的基本形式要求,并采用将基于预设关键词筛选短信与基于发送时间过滤短信结合的方式确定目标短信,可以逐步缩小目标短信的筛选范围直到在短信列表中筛选出目标短信,以提高验证码自动获取的可靠性,从而提高应用自动化测试的效率和测试结果的可靠性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例中验证码获取方法的流程示意图;
图2是本发明实施例中验证码获取方法的又一流程示意图;
图3是本发明实施例中终端设备的结构示意图;
图4是本发明实施例中终端设备的又一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在应用(应用程序(APP,Application)的简称)交付使用前,通常会进行应用测试来检查应用的性能。在进行应用测试时,可以利用测试工具,按照测试用例,在规定的条件下对被测试的应用进行操作,以发现应用错误,衡量应用质量,并对应用是否能满足设计要求进行评估。
在应用自动化测试过程中,当包含登录、支付等应用场景时,通常需要先完成验证码的输入后才能继续进行测试,可见,能够自动获取验证码对应用自动化测试的实现是很重要的环节。
目前,在应用自动化测试中,验证码获取方式通常为基于在终端设备屏幕界面上的顶端通知弹框或中间通知弹框显示出的短信,获取验证码,但是,不同终端设备所使用的操作系统的多样性,使短信弹框的显示样式也存在多样性,而且短信弹框显示的时间有限、验证码本身具有动态变化性等等,会影响验证码自动获取的可靠性,也就是说,可能会出现在获取到短信中的验证码前,屏幕界面显示的短信弹框已消失的情况,即现有的验证码自动获取方式存在无法获取到验证码的缺陷,从而会降低应用自动化测试的效率以及测试结果的可靠性。
因此,本发明实施例提供一种验证码获取方法和终端设备,以期能够提高验证码自动获取的可靠性,从而提高应用自动化测试的效率和测试结果的可靠性。
以下结合附图,详细说明本发明各实施例提供的技术方案。
参见图1所示,本发明实施例提供一种验证码获取方法,由终端设备执行。该方法可具体包括:
步骤S101:在监听到待测试应用发起的验证码获取请求的情况下,调用短信应用。
可选的,待测试应用可以基于与终端设备通信的测试控制端(比如PC(PersonalComputer,个人计算机)端)发出的应用自动测试命令或验证码获取命令,发起的验证码获取请求,也就是说,测试控制端可以一次性向终端设备发送应用自动测试命令,终端设备侧基于该应用自动测试命令启动待测试应用的自动化测试流程,当测试流程到达需要获取验证码的环节时,可以通过自动点击“获取验证码”等具有相同功能的按钮的方式发起验证码获取请求,或者,测试控制端可以在应用的自动化测试过程中,将单独的验证码获取命令发送给终端设备,终端设备侧基于该验证码获取命令,可以通过自动点击“获取验证码”等具有相同功能的按钮的方式发起验证码获取请求;进而在应用自动化测试过程中监测到该验证码获取请求时,自动调用短信应用,优选的,可以通过调用终端设备操作系统的API(Application Programming Interface,应用程序编程接口)的方式调用打开短信应用。
步骤S103:基于短信应用中的短信列表,确定与预设关键词相匹配的目标短信,预设关键词与待测试应用相对应,且目标短信的发送时间满足预设条件。
可以理解,本发明实施例,调用打开短信应用后,需进入短信应用的短信列表界面,以基于该短信列表筛选目标短信,该目标短信不仅需要与预设关键词匹配,其发送时间应满足预设条件;需要说明的是,目标短信的发送时间是指响应前述验证码获取请求的与待测试应用通信的关联第三方向终端设备发出该目标短信的时间,而并非指终端设备成功接收到该目标短信的时间。如此,通过使用与发起验证码获取请求的时机接近的短信发送时间筛选目标短信,能够提高短信获取的可靠性,从而提高验证码获取的可靠性。
可选的,预设关键词包括以下至少一个:待测试应用的标识和验证码发送方的标识;当然,预设关键词还可以包括其他与待测试应用相对应的适当的词。
举例来说,当待测试应用为58同城应用且测试到其登录功能时,在短信列表识别到的待测试应用的标识可以为“【58同城】”;当待测试应用为中信银行应用且测试到其支付功能时,能够在短信列表识别到的验证码发送方的标识可以为【中信银行】,等等,即预设关键词为能够将短信列表中的短信关联到唯一的待测试应用的关键词,比如【中国移动】、【自如网】等字眼。
步骤S105:获取目标短信中的目标验证码。
可以理解,在获取到与预设关键词匹配且发送时间满足预设条件的目标短信后,即可以基于该目标短信获取需要的目标验证码,以在待测试应用中输入该目标验证码后,继续测试该待测试应用。
可选的,可以采用正则表达式对目标短信的内容进行验证码匹配,将匹配到的验证码作为目标验证码。
可选的,本发明实施例中的上述步骤S103可以执行为如下步骤:
基于短信应用中的短信列表,确定与预设关键词相匹配的候选短信;基于候选短信的获取时间,确定候选短信的发送时间是否满足预设条件;将发送时间满足预设条件的候选短信,确定为目标短信。
可以理解,本发明实施例中确定与预设关键词相匹配的目标短信的过程,可以先在短信列表中筛选出与预设关键词匹配的候选短信,然后基于获取到的候选短信的发送时间和获取时间,将发送时间满足预设条件的候选短信确定为目标短信。
需要说明的是,在本申请的其他实施例中,还可以先基于短信列表中的短信的发送时间和获取时间,将发送时间满足预设条件的短信确定为候选短信,然后在候选短信中确定与预设关键词相匹配的短信,以作为目标短信。
其中,候选短信的获取时间是指在短信列表中筛选出与预设关键词相匹配的短信的时间。
可选的,本发明实施例中上述基于候选短信的获取时间,确定候选短信的发送时间是否满足预设条件的步骤,可以包括:
检测获取时间和发送时间的差值是否小于第一时间阈值;
在差值小于第一时间阈值的情况下,确定候选短信的发送时间满足预设条件;
在差值不小于第一时间阈值的情况下,确定候选短信的发送时间不满足预设条件。
可选的,在上述检测发送时间和获取时间的差值是否小于第一时间阈值的步骤之前,本发明实施例中的验证码获取方法还可以包括:
将终端设备采用的时间制式确定为二十四小时制式,以使候选短信的发送时间和获取时间的时间制式统一为二十四小时制式,进而进行差值的计算。
可选的,在本发明实施例中,用于确定候选短信的发送时间是否满足预设条件的第一时间阈值,可以在检测发送时间和获取时间的差值是否小于第一时间阈值的步骤之前,通过如下方式确定,即上述实施例中的验证码获取方法还可以包括:
在待测试应用的验证码获取页面上提取验证码的有效时长信息;基于有效时长信息,确定第一时间阈值。
可以理解,考虑到在待测试应用的验证码获取页面发起验证码获取请求后,通常会在该验证码获取页面显示时间提示信息,该时间提示信息可以用于指示验证码的有效时长信息,比如180秒后重新获取验证码、请于60秒内输入验证码,等等,则可以根据该有效时长信息对应的时间的长短确定第一时间阈值,比如设定为3分钟,若在候选短信的发送时间后的3分钟以内能获取到与预设关键词相匹配的候选短信,则可以确定该候选短信的发送时间满足预设条件。
在本申请实施例中,可以通过不同的方式在短信应用的短信列表中筛选出与预设关键词相匹配的候选短信,以保证能够基于与预设关键词相匹配的候选短信筛选出发送时间满足预设条件的目标短信。
在本申请的一个具体实施例中,上述基于短信应用中的短信列表,确定与预设关键词相匹配的候选短信的步骤,可以包括:
获取短信应用中的当前短信列表;生成当前短信列表对应的控件树,控件树包括与当前短信列表中的短信一一对应的节点;遍历控件树,以查找与预设关键词相匹配的节点;将节点对应的短信确定为候选短信。
可以理解,在确定与预设关键词相匹配的候选短信的过程中,先生成每次获取到最新的当前短信列表对应的控件树,控件树中的节点与当前短信列表界面的控件一一对应,可以根据各控件间的层属关系构建该控件树,进而基于预设关键词对控件树进行遍历,以根据遍历结果确定与预设关键词相匹配的节点,并将节点对应的短信确定为候选短信。
可选的,在基于预设关键词遍历控件树时,可以采用正则表达式的方式进行遍历查找控件树上与预设关键词相匹配的节点。
在本申请的另一个具体实施例中,上述基于短信应用中的短信列表,确定与预设关键词相匹配的候选短信的步骤,可以包括:
获取短信应用中的当前短信列表;采用光学字符识别方式,对当前短信列表进行识别,以识别出候选短信。
可以理解,在确定与预设关键词相匹配的候选短信的过程中,对每次获取到最新的当前短信列表采用光学字符识别(OCR,Optical Character Recognition)方式,识别出当前短信列表中与预设关键词相匹配的候选短信,可选的,可以对当前短信列表的截图进行OCR识别,以识别出候选短信。
进一步地,基于此方式获取到的候选短信,在确定候选短信的发送时间时,需要点击进入该候选短信的内容详情页面后进行发送时间的获取。
进一步地,在本申请实施例中,为了能够使获取到的目标验证码顺利在待测试应用中完成输入操作,上述验证码获取方法还可以包括:
在获取到目标验证码的累计时间达到第二时间阈值后,调用待测试应用;在待测试应用中输入目标验证码,以继续测试待测试应用。
可以理解,本申请实施例中,在短信应用中获取到目标验证码后,不立刻执行调用待测试应用进行验证码输入的操作,而是等待一段时间(即第二时间阈值)后,再调用待测试应用,即在获取到目标验证码第二时间阈值后,再由短信应用切换至待测试应用以进行目标验证码的输入操作,从而在对目标验证码的验证通过后继续测试该待测试应用;其中,在获取到目标验证码的累计时间达到第二时间阈值后才调用待测试应用,可以避免出现在调用待测试应用时误进入目标短信的内容详情页面的情况,这是由于虽然可能已基于短信列表获取到目标短信,但目标短信仍会于一定时间(即第二时间阈值)内在终端设备的通知栏等区域进行显示,此时执行调用待测试应用的操作则容易误点击进入目标短信的内容详情页面,而无法返回待测试应用。
可选的,调用待测试应用的步骤可以基于短信列表界面中的各控件生成的控件树实现,比如短信列表界面的具有能够控制返回待测试应用功能的控件按钮,控件树中的节点与控件一一对应。
本发明实施例,在对待测试应用进行自动化测试的过程中,若进行到需要在自动获取验证码后才能继续测试的环节,则可以基于待测试应用发起的验证码获取请求调用短信应用,并在打开短信应用后,于其短信列表中确定能够获取到用于目标验证码的目标短信,其中,目标短信需与预设关键词匹配且该目标短信的发送时间应满足预设条件。如此,基于在短信列表中筛选出与待测试应用相对应的目标短信获取目标验证码,至少使目标验证码能够满足在待测试应用的相应界面进行输入的基本形式要求,并采用将基于预设关键词筛选短信与基于发送时间过滤短信结合的方式确定目标短信,可以逐步缩小目标短信的筛选范围直到在短信列表中筛选出目标短信,以提高验证码自动获取的可靠性,从而提高应用自动化测试的效率和测试结果的可靠性。
也就是说,相较于现有的基于通知弹框获取验证码的方式,本发明实施例的验证码获取方式不会出现获取不到验证的情况,通过不断地循环筛选,只要终端设备成功接收到了短信,即可以基于短信列表确定目标短信,进而提取到目标验证码。
下面结合图2对本发明实施例的验证码获取过程进行具体说明,以应用于IOS(苹果移动设备操作系统)设备为例,验证码获取方法包括以下步骤:
步骤S201:打开短信应用,即在需要获取验证时,可以调用设备操作系统API打开短信应用。
步骤S202:检测打开短信应用后进入的界面是否为短信列表的界面,若是,执行步骤S204,否则执行步骤S203。
步骤S203:点击界面上的返回按钮。
可选的,在打开短信应用后若进入的界面不是短信列表的界面,比如进入了任一条短信的内容详情页面,则可以通过点击反馈按钮的方式返回到短信列表的界面。
步骤S204:获取短信列表对应的控件树。
可选的,控件树优选的为由各种控件组成的XML(Extensible Markup Language,可扩展标记语言)格式文本。
步骤S205:遍历控件树,以查找与关键字(即预设关键词)相匹配的节点。
可选的,用正则表达式的方式进行查找,以查找包含关键字的树的节点,该节点中会包含短信的相关信息,如短信的内容、发送时间、发送号码等,其中关键字为能够标识短信的特殊文字,使该短信能区别于短信列表中的其他短信,比如【中国移动】、【平安银行】等字眼,该关键字可以为测试人员根据具体测试对象或场景等写入测试用例中的。
步骤S206:基于遍历结果,判断是否查找到与关键字相匹配的节点,若是,执行步骤S207,否则返回执行步骤S204。
可以理解,在基于遍历结果没有查找到符合条件的节点的情况下,需要针对最新的当前短信列表再次获取对应的控件叔,然后再次查找节点,如此循环,直到获取到与关键字相匹配的节点,即查找到短信,也就是说,通过上述循环,只要短信能发过来,就一定能获取到与关键字相匹配的短信,可见,不会存在获取不到短信的情况。
步骤S207:确定与预设关键词相匹配的节点对应的短信(即候选短信),并获取短信的发送时间。
可以理解,在基于遍历结果查找到符合条件的节点的情况下,基于节点确定对应的短信后,还需要以时间为条件进行过滤筛选,时间的大小可以由用户自己定义,也可以基于待测试应用的验证码获取的有效时长信息进行确定,比如五分钟。
步骤S208:在终端设备的时间制式不是二十四小时制式的情况下,将终端设备的时间制式调整为二十四小时制式。
步骤S209:获取短信的发送时间与获取时间的差值。
步骤S210:检测差值是否在五分钟(即第一时间阈值)内,若是,执行步骤S211,否则返回执行步骤S204。
可以理解,若短信是在五分钟内查找到的,且同时又符合关键字条件,则可以确定这条短信是否要找的短信(即目标短信),则可以继续进行验证码的获取流程,而若短信不是在五分钟内查找到的短信,说明该短信是终端设备之前接收到的短信,不是基于当前的验证码获取需要接收到的短信,需要继续循环,直到查找到既符合上述关键字条件也符合上述时间条件的短信。
步骤S211:获取短信的所有内容。
步骤S212:利用正则表达式过滤出验证码。
步骤S213:在短信应用中等待五秒钟(即第二时间阈值)。
可以理解,当最终找到了验证码后,需要回到待测试应用的场景界面中,但是,在回到上一个界面前需要等待5秒钟,这是由于,接收到短信的时候,即使已经获取到了验证码,但设备的通知栏的短信一般也会在5秒内出现,那么在通知栏内短信出现完之后,再点击到返回按钮,会避免因误点击通知栏显示的短信进入其内容详情页面的情况发生,所以为了能够在点击返回按钮后顺利进入待测试应用的场景界面中,需要等待5秒钟。
步骤S214:点击返回按钮,返回待测试应用。
可以理解,对于IOS设备来说,会提供一个返回按钮,用于供点击返回上一个应用场景,可选的,返回按钮在短信列表的页面的左上角,如此,完成了一次稳定的短信验证码的获取过程,不会存在获取不到验证码的情况。
步骤S215:在待测试应用中输入短信验证码,以继续测试待测试应用。
通过上述实施例,提供了一种稳定的短信验证码获取方式,可以提高验证码获取的可靠性,不会存在无法自动获取不到已发起请求的验证码的情况,且可以提供设备的自动化测试效率,避免了出现因无法获取短信验证码造成的无法进行自动化测试的情况,从而提高了应用自动化测试的效率和测试结果的可靠性。
参见图3所示,本发明实施例还提供一种终端设备,可具体包括:
调用模块301,用于在监听到待测试应用发起的验证码获取请求的情况下,调用短信应用;
确定模块303,用于基于短信应用中的短信列表,确定与预设关键词相匹配的目标短信,预设关键词与待测试应用相对应,且目标短信的发送时间满足预设条件;
获取模块305,用于获取目标短信中的目标验证码。
优选的,本发明实施例提供的终端设备中,上述确定模块303可以包括:
第一确定单元,基于短信应用中的短信列表,确定与预设关键词相匹配的候选短信;
第二确定单元,基于候选短信的获取时间,确定候选短信的发送时间是否满足预设条件;
第三确定单元,将发送时间满足预设条件的候选短信,确定为目标短信。
优选的,本发明实施例提供的终端设备中,上述第一确定单元可以用于:
检测获取时间和发送时间的差值是否小于第一时间阈值;
在差值小于第一时间阈值的情况下,确定候选短信的发送时间满足预设条件;
在差值不小于第一时间阈值的情况下,确定候选短信的发送时间不满足预设条件。
优选的,本发明实施例提供的终端设备中,终端设备还可以包括:
提取模块,用于在待测试应用的验证码获取页面上提取验证码的有效时长信息;
第一处理模块,用于基于有效时长信息,确定第一时间阈值。
优选的,本发明实施例提供的终端设备中,上述第一确定单元可以用于:
获取短信应用中的当前短信列表;
生成当前短信列表对应的控件树,控件树包括与当前短信列表中的短信一一对应的节点;
遍历控件树,以查找与预设关键词相匹配的节点;
将节点对应的短信确定为候选短信。
优选的,本发明实施例提供的终端设备中,上述确定模块303可以用于:
获取短信应用中的当前短信列表;
采用光学字符识别方式,对当前短信列表进行识别,以识别出候选短信。
优选的,本发明实施例提供的终端设备中,上述获取模块305可以用于:
采用正则表达式对目标短信的内容进行验证码匹配,将匹配到的验证码作为目标验证码。
优选的,本发明实施例提供的终端设备中,上述调用模块301还可以用于:在获取到目标验证码的累计时间达到第二时间阈值后,调用待测试应用;上述处理模块还可以用于:在待测试应用中输入目标验证码,以继续测试待测试应用。
优选的,本发明实施例提供的终端设备中,预设关键词包括以下至少一个:待测试应用的标识和验证码发送方的标识。
能够理解,本发明实施例提供的终端设备,能够实现前述由终端设备执行的验证码获取方法的各个过程,关于验证码获取方法的相关阐述均适用于终端设备,此处不再赘述。
本发明实施例,在对待测试应用进行自动化测试的过程中,若进行到需要在自动获取验证码后才能继续测试的环节,则可以基于待测试应用发起的验证码获取请求调用短信应用,并在打开短信应用后,于其短信列表中确定能够获取到用于目标验证码的目标短信,其中,目标短信需与预设关键词匹配且该目标短信的发送时间应满足预设条件。如此,基于在短信列表中筛选出与待测试应用相对应的目标短信获取目标验证码,至少使目标验证码能够满足在待测试应用的相应界面进行输入的基本形式要求,并采用将基于预设关键词筛选短信与基于发送时间过滤短信结合的方式确定目标短信,可以逐步缩小目标短信的筛选范围直到在短信列表中筛选出目标短信,以提高验证码自动获取的可靠性,从而提高应用自动化测试的效率和测试结果的可靠性。
图4为实现本发明各个实施例的一种终端设备的硬件结构示意图。
该终端设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、处理器410、以及电源411等部件。本领域技术人员可以理解,图4中示出的终端设备400结构并不构成对终端设备的限定,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,终端设备400包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
其中,处理器410,用于执行以下过程:
在监听到待测试应用发起的验证码获取请求的情况下,调用短信应用;
基于短信应用中的短信列表,确定与预设关键词相匹配的目标短信,预设关键词与待测试应用相对应,且目标短信的发送时间满足预设条件;
获取目标短信中的目标验证码。
本发明实施例,在对待测试应用进行自动化测试的过程中,若进行到需要在自动获取验证码后才能继续测试的环节,则可以基于待测试应用发起的验证码获取请求调用短信应用,并在打开短信应用后,于其短信列表中确定能够获取到用于目标验证码的目标短信,其中,目标短信需与预设关键词匹配且该目标短信的发送时间应满足预设条件。如此,基于在短信列表中筛选出与待测试应用相对应的目标短信获取目标验证码,至少使目标验证码能够满足在待测试应用的相应界面进行输入的基本形式要求,并采用将基于预设关键词筛选短信与基于发送时间过滤短信结合的方式确定目标短信,可以逐步缩小目标短信的筛选范围直到在短信列表中筛选出目标短信,以提高验证码自动获取的可靠性,从而提高应用自动化测试的效率和测试结果的可靠性。
应理解的是,本发明实施例中,射频单元401可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器410处理;另外,将上行的数据发送给基站。通常,射频单元401包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元401还可以通过无线通信系统与网络和其他设备通信。
终端设备400通过网络模块402为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元403可以将射频单元401或网络模块402接收的或者在存储器409中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元403还可以提供与终端设备400执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元403包括扬声器、蜂鸣器以及受话器等。
输入单元404用于接收音频或视频信号。输入单元404可以包括图形处理器(Graphics Processing Unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元406上。经图形处理器4041处理后的图像帧可以存储在存储器409(或其它存储介质)中或者经由射频单元401或网络模块402进行发送。麦克风4042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元401发送到移动通信基站的格式输出。
终端设备400还包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板4061的亮度,接近传感器可在终端设备400移动到耳边时,关闭显示面板4061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器405还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元406用于显示由用户输入的信息或提供给用户的信息。显示单元406可包括显示面板4061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板4061。
用户输入单元407可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元407包括触控面板4071以及其他输入设备4072。触控面板4071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板4071上或在触控面板4071附近的操作)。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器410,接收处理器410发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板4071。除了触控面板4071,用户输入单元407还可以包括其他输入设备4072。具体地,其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板4071可覆盖在显示面板4061上,当触控面板4071检测到在其上或附近的触摸操作后,传送给处理器410以确定触摸事件的类型,随后处理器410根据触摸事件的类型在显示面板4061上提供相应的视觉输出。虽然在图4中,触控面板4071与显示面板4061是作为两个独立的部件来实现终端设备的输入和输出功能,但是在某些实施例中,可以将触控面板4071与显示面板4061集成而实现终端设备的输入和输出功能,具体此处不做限定。
接口单元408为外部装置与终端设备400连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元408可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端设备400内的一个或多个元件或者可以用于在终端设备400和外部装置之间传输数据。
存储器409可用于存储软件程序以及各种数据。存储器409可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器409可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器410是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器409内的软件程序和/或模块,以及调用存储在存储器409内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。处理器410可包括一个或多个处理单元;优选的,处理器410可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
终端设备400还可以包括给各个部件供电的电源411(比如电池),优选的,电源411可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,终端设备400包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供一种终端设备,包括处理器410,存储器409,存储在存储器409上并可在所述处理器410上运行的计算机程序,该计算机程序被处理器410执行时实现上述验证码获取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述验证码获取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (10)
1.一种验证码获取方法,其特征在于,包括:
在监听到待测试应用发起的验证码获取请求的情况下,调用短信应用;
基于所述短信应用中的短信列表,确定与预设关键词相匹配的目标短信,所述预设关键词与所述待测试应用相对应,且所述目标短信的发送时间满足预设条件;
获取所述目标短信中的目标验证码。
2.根据权利要求1所述方法,其特征在于,所述基于所述短信应用中的短信列表,确定与预设关键词相匹配的目标短信,包括:
基于所述短信应用中的短信列表,确定与所述预设关键词相匹配的候选短信;
基于所述候选短信的获取时间,确定所述候选短信的发送时间是否满足所述预设条件;
将发送时间满足所述预设条件的候选短信,确定为所述目标短信。
3.根据权利要求2所述方法,其特征在于,所述基于所述候选短信的获取时间,确定所述候选短信的发送时间是否满足所述预设条件,包括:
检测所述获取时间和所述发送时间的差值是否小于第一时间阈值;
在所述差值小于所述第一时间阈值的情况下,确定候选短信的发送时间满足所述预设条件;
在所述差值不小于所述第一时间阈值的情况下,确定候选短信的发送时间不满足所述预设条件。
4.根据权利要求3所述方法,其特征在于,在所述检测所述发送时间和所述获取时间的差值是否小于第一时间阈值之前,所述方法还包括:
在所述待测试应用的验证码获取页面上提取验证码的有效时长信息;
基于所述有效时长信息,确定所述第一时间阈值。
5.根据权利要求2所述方法,其特征在于,所述基于所述短信应用中的短信列表,确定与所述预设关键词相匹配的候选短信,包括:
获取所述短信应用中的当前短信列表;
生成所述当前短信列表对应的控件树,所述控件树包括与所述当前短信列表中的短信一一对应的节点;
遍历所述控件树,以查找与所述预设关键词相匹配的节点;
将所述节点对应的短信确定为所述候选短信。
6.根据权利要求2所述方法,其特征在于,所述基于所述短信应用中的短信列表,确定与所述预设关键词相匹配的候选短信,包括:
获取所述短信应用中的当前短信列表;
采用光学字符识别方式,对所述当前短信列表进行识别,以识别出所述候选短信。
7.根据权利要求1所述方法,其特征在于,所述获取所述目标短信中的目标验证码,包括:
采用正则表达式对所述目标短信的内容进行验证码匹配,将匹配到的验证码作为所述目标验证码。
8.根据权利要求1所述方法,其特征在于,所述方法还包括:
在获取到所述目标验证码的累计时间达到第二时间阈值后,调用所述待测试应用;
在所述待测试应用中输入所述目标验证码,以继续测试所述待测试应用。
9.根据权利要求1~8之任一所述方法,其特征在于,所述预设关键词包括以下至少一个:待测试应用的标识和验证码发送方的标识。
10.一种终端设备,其特征在于,包括:
调用模块,用于在监听到待测试应用发起的验证码获取请求的情况下,调用短信应用;
确定模块,用于基于所述短信应用中的短信列表,确定与预设关键词相匹配的目标短信,所述预设关键词与所述待测试应用相对应,且所述目标短信的发送时间满足预设条件;
获取模块,用于获取所述目标短信中的目标验证码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811519846.0A CN109726121B (zh) | 2018-12-12 | 2018-12-12 | 一种验证码获取方法和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811519846.0A CN109726121B (zh) | 2018-12-12 | 2018-12-12 | 一种验证码获取方法和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726121A true CN109726121A (zh) | 2019-05-07 |
CN109726121B CN109726121B (zh) | 2022-02-18 |
Family
ID=66294913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811519846.0A Active CN109726121B (zh) | 2018-12-12 | 2018-12-12 | 一种验证码获取方法和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109726121B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177378A (zh) * | 2019-05-21 | 2019-08-27 | 深圳壹账通智能科技有限公司 | 一种自动化测试方法及相关设备 |
CN111159035A (zh) * | 2019-12-27 | 2020-05-15 | 中国银行股份有限公司 | 基于短信验证软件的测试方法及装置 |
CN113472741A (zh) * | 2021-05-25 | 2021-10-01 | 深圳壹账通智能科技有限公司 | 一种验证码登录方法、装置、设备及存储介质 |
CN114338108A (zh) * | 2021-12-17 | 2022-04-12 | 江苏银承网络科技股份有限公司 | 用于自动化测试的外接验证码获取系统、方法及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902740A (zh) * | 2014-04-22 | 2014-07-02 | 锤子科技(北京)有限公司 | 短信息验证码的驻留方法及装置 |
CN105263126A (zh) * | 2015-08-31 | 2016-01-20 | 小米科技有限责任公司 | 短信验证方法、装置及系统 |
CN108563559A (zh) * | 2018-03-12 | 2018-09-21 | 平安普惠企业管理有限公司 | 一种验证码的测试方法、装置、终端设备及存储介质 |
EP3389292A1 (en) * | 2015-12-31 | 2018-10-17 | Huawei Technologies Co., Ltd. | Method and apparatus for acquiring verification code, and terminal |
-
2018
- 2018-12-12 CN CN201811519846.0A patent/CN109726121B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902740A (zh) * | 2014-04-22 | 2014-07-02 | 锤子科技(北京)有限公司 | 短信息验证码的驻留方法及装置 |
CN105263126A (zh) * | 2015-08-31 | 2016-01-20 | 小米科技有限责任公司 | 短信验证方法、装置及系统 |
EP3389292A1 (en) * | 2015-12-31 | 2018-10-17 | Huawei Technologies Co., Ltd. | Method and apparatus for acquiring verification code, and terminal |
CN108563559A (zh) * | 2018-03-12 | 2018-09-21 | 平安普惠企业管理有限公司 | 一种验证码的测试方法、装置、终端设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177378A (zh) * | 2019-05-21 | 2019-08-27 | 深圳壹账通智能科技有限公司 | 一种自动化测试方法及相关设备 |
CN111159035A (zh) * | 2019-12-27 | 2020-05-15 | 中国银行股份有限公司 | 基于短信验证软件的测试方法及装置 |
CN113472741A (zh) * | 2021-05-25 | 2021-10-01 | 深圳壹账通智能科技有限公司 | 一种验证码登录方法、装置、设备及存储介质 |
CN114338108A (zh) * | 2021-12-17 | 2022-04-12 | 江苏银承网络科技股份有限公司 | 用于自动化测试的外接验证码获取系统、方法及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109726121B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726121A (zh) | 一种验证码获取方法和终端设备 | |
CN108845853A (zh) | 一种应用程序启动方法及移动终端 | |
CN108337374A (zh) | 一种消息提示方法及移动终端 | |
CN108491123A (zh) | 一种调节应用程序图标的方法及移动终端 | |
CN109656827A (zh) | 一种控件树生成方法和终端设备 | |
CN107679514A (zh) | 一种人脸识别方法及电子设备 | |
CN107832110A (zh) | 一种信息处理方法及移动终端 | |
CN107808084A (zh) | 一种触控操作方法及移动终端 | |
CN108366220A (zh) | 一种视频通话处理方法及移动终端 | |
CN108541009A (zh) | 一种通信状态的检测方法和终端设备 | |
CN110457888A (zh) | 一种验证码输入方法、装置、电子设备及存储介质 | |
CN107908770A (zh) | 一种照片搜索方法及移动终端 | |
CN108282834A (zh) | 一种终端接入lte网络的方法及终端 | |
CN109544172A (zh) | 一种显示方法及终端设备 | |
CN109885490A (zh) | 一种图片对比方法和装置 | |
CN108769410A (zh) | 一种信息发送方法及移动终端 | |
CN108733993A (zh) | 一种信息显示方法及终端 | |
CN108629280A (zh) | 人脸识别方法及移动终端 | |
CN110069407A (zh) | 一种应用程序的功能测试方法和装置 | |
CN110162707A (zh) | 一种信息推荐方法、终端及计算机可读存储介质 | |
CN110188252A (zh) | 一种搜索方法及终端 | |
CN108984231A (zh) | 一种应用程序账号的登录方法及移动终端 | |
CN108898000A (zh) | 一种解锁屏幕的方法及终端 | |
CN108597495A (zh) | 一种处理语音数据的方法及装置 | |
CN107704334A (zh) | 一种sdk的处理方法及移动终端 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |