一种测试方法和装置与流程

文档序号:13596283阅读:130来源:国知局
一种测试方法和装置与流程

本发明涉及通信技术领域,特别涉及一种测试方法和装置。



背景技术:

目前在进行UI自动化测试的时候,遇到需要输入验证码的进程时,由于测试无法自动获取验证码,测试会自动停止,等待验证码的输入,测试人员发现测试停止,需手动输入验证码,使测试继续进行。但是测试人员可能不会及时发现测试已停止,不能及时输入验证码,这样就延误了测试时间,降低了测试效率。所以怎样提高测试效率是现有技术中需要解决的问题。

现有技术中提供了一种测试方法,为了避免在进行测试时因弹出验证码而延误测试时间的问题,在测试时使用白名单跳过验证码。由于白名单内用户的安全等级比较高,不需要对其身份再次确认,所以不会弹出验证码。测试时选取白名单之内的用户进行测试,这样被测程序运行时就不会弹出验证码,测试也不会被终止,从而提高了测试效率。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

现有技术中通过白名单跳过验证码的方法,不能真正模拟用户操作,从而缺少了对验证登录正确性的测试,使得测试出的数据不全面。



技术实现要素:

为了能够获得完整的测试数据,本发明实施例提供了一种测试方法和装置。所述技术方案如下:

一方面,提供了一种测试方法,所述方法包括:

触发被测程序弹出验证码输入界面;

获取所述被测程序弹出的验证码输入界面上所显示的验证码;

将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;

当所述验证码通过验证后,执行对所述被测程序的测试操作。

所述获取所述被测程序弹出的验证码输入界面上所显示的验证码,包括:

截取所述验证码输入界面的图片;

读取所述截取的图片中的字符串,得到所述验证码输入界面所显示的验证码。

所述触发被测程序弹出验证码输入界面,包括:

触发被测程序执行登录操作,使所述被测程序弹出验证码输入界面;或,

触发被测程序执行注册操作,使所述被测程序弹出验证码输入界面;或,

触发被测程序进行数据传输,使所述被测程序弹出验证码输入界面。

所述方法还包括:

当所述验证码未通过验证时,再次执行所述触发被测程序弹出验证码输入界面。

另一方面,提供了一种测试装置,所述装置包括:

触发模块,用于触发被测程序弹出验证码输入界面;

验证码获取模块,用于获取所述被测程序弹出的验证码输入界面上所显示的验证码;

验证码输入模块,用于将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;

第一执行模块,用于当所述验证码通过验证后,执行对所述被测程序的测试操作。

所述验证码获取模块,包括:

图片截取单元,用于截取所述验证码输入界面的图片;

验证码读取单元,用于读取所述截取的图片中的字符串,得到所述验证码输入界面所显示的验证码。

所述触发模块,包括:

第一触发单元,用于触发被测程序执行登录操作,使所述被测程序弹出验证码输入界面;或,

第二触发单元,用于触发被测程序执行注册操作,使所述被测程序弹出验证码输入界面;或,

第三触发单元,用于触发被测程序进行数据传输,使所述被测程序弹出验证码输入界面。

所述装置还包括:

第二执行模块,用于当所述验证码未通过验证时,触发所述触发模块再次执行。

本发明实施例提供的技术方案带来的有益效果是:触发被测程序弹出验证码输入界面;获取所述被测程序弹出的验证码输入界面上所显示的验证码;将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;当所述验证码通过验证后,执行对所述被测程序的测试操作。通过读取截取的验证码输入界面的图片得到验证码,并将验证码输入到验证码输入框中,真实的模拟了用户的操作,能够获得完整的测试数据。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例1中提供的一种测试方法的流程图;

图2是本发明实施例2中提供的一种测试方法的流程图;

图3是本发明实施例3中提供的一种测试装置的示意图;

图4是本发明实施例3中提供的另一种测试装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

实施例1

参见图1,本实施例中提供了一种测试方法,包括:

101、触发被测程序弹出验证码输入界面;

102、获取所述被测程序弹出的验证码输入界面上所显示的验证码;

103、将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;

104、当所述验证码通过验证后,执行对所述被测程序的测试操作。

优选地,所述获取所述被测程序弹出的验证码输入界面上所显示的验证码,包括:

截取所述验证码输入界面的图片;

读取所述截取的图片中的字符串,得到所述验证码输入界面所显示的验证码。

可选地,所述触发被测程序弹出验证码输入界面,包括:

触发被测程序执行登录操作,使所述被测程序弹出验证码输入界面;或,

触发被测程序执行注册操作,使所述被测程序弹出验证码输入界面;或,

触发被测程序进行数据传输,使所述被测程序弹出验证码输入界面。

可选地,所述方法还包括:

当所述验证码未通过验证时,再次执行所述触发被测程序弹出验证码输入界面。

本实施例的有益效果是:触发被测程序弹出验证码输入界面;获取所述被测程序弹出的验证码输入界面上所显示的验证码;将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;当所述验证码通过验证后,执行对所述被测程序的测试操作。通过读取截取的验证码输入界面的图片得到验证码,并将验证码输入到验证码输入框中,真实的模拟了用户的操作,能够获得完整的测试数据。

实施例2

参见图2,本实施例中提供了一种测试方法,包括:

201、启动模拟器,通过模拟器启动被测程序,执行对被测程序的测试。

本实施例中,使用Sikuli软件作为测试程序,需要说明的是,Sikuli以图像检索为基础,提供了一套基于Jython的脚本语言以及集成开发环境,可利用屏幕截图直接引用GUI(Graphical User Interface,图形用户界面)元素进行编程,摆脱了对控件API(Application Programming Interface,应用程序编程接口)的依赖,并可通过当前屏幕的实时图像检索获取操作对象,模拟用户行为,匹配屏幕区域以校验真实的视觉显示结果。

本步骤中,为实现自动化测试,启用模拟器在PC端模拟被测程序。具体的,启动Sikuli软件,在Sikuli软件中新建一个脚本,通过编写Sikuli脚本启动模拟器。其中模拟器是指主要透过软件模拟硬件处理器的功能和指令系统的程序使计算机或者其他多媒体平台(如掌上电脑,手机等)能够运行其他平台上的软件。

本步骤中,被测程序启动后,Sikuli软件开始执行对被测程序的测试。

202、触发被测程序弹出验证码输入界面。

在被测程序的执行过程中,可能会涉及登录、注册或是数据传输等的操作,被测程序在执行这些操作时,为保证用户信息的安全可能会弹出验证码输入界面,对用户的身份进行认证。为了模拟被测程序的真实运行环境,在Sikuli软件中编写一个脚本,该脚本用于触发被测程序弹出验证码输入界面,以模拟真实的运行环境。其中,验证码包括字母和/或数字等,对此本实施例不做具体限定。

其中触发被测程序弹出验证码输入界面包括:触发被测程序执行登录操作,使所述被测程序弹出验证码输入界面;或触发被测程序执行注册操作,使所述被测程序弹出验证码输入界面;或触发被测程序进行数据传输,使所述被测程序弹出验证码输入界面。由于在被测程序的运行过程中有很多种情况下都需要输入验证码,如需要登录时、需要注册时或需要传输数据等时,所以可以在Sikuli软件中编写相应的版本,用于在不同的场景下触发被测程序弹出验证码输入界面。

203、获取所述被测程序弹出的验证码输入界面上所显示的验证码。

本步骤中,在触发被测程序弹出验证码输入界面后,自动获取输入界面上的验证码。其中获取所述被测程序弹出的验证码输入界面上所显示的验证码,包括:截取所述验证码输入界面的图片;读取所述截取的图片中的字符串,得到所述验证码输入界面所显示的验证码。

本步骤中,使用Sikuli命令截取验证码输入界面的图片,读取图片中的字符串,得到输入界面上的验证码。

204、将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证。

本步骤中,使用在Sikuli软件中编写的脚本,将步骤203中抓取的验证码自动输入到验证码输入框中,触发被测程序对验证码进行验证。被测程序接收到验证码后,对该验证码进行验证,确认该验证码输入是否正确。

205、当验证码通过验证后,继续执行对被测程序的测试操作。

本步骤中,在确认验证码通过验证后,测试程序继续执行对被测程序的测试操作。其中被测程序弹出验证码输入界面到验证码通过验证的过程也是测试的一部分。

值的说明的是,由于验证码超时或是获取的验证码错误等的原因,都可能导致验证码验证失败。本实施例中,为了使测试进程不被影响,如果验证码未通过验证,则可选地再次执行步骤202-205,直到验证码通过验证,测试继续进行。本实施例中,为了提高测试效率,也可以设置验证码的验证时间,或验证码最多可以进行验证的次数,如设置对验证码的验证时间不能超过20秒或30秒等,或是设置最多能验证的次数为3次或是4次,如果在规定时间或是规定次数内没有验证成功,则停止测试。当然,本实施例中也可以在第一次验证码未通过验证时就停止测试,对此本实施不做具体限定。

值的说明的是,本实施例中提供了一种使用Sikuli软件测试的方法,但是如果其它软件也具备截图并能够读取图片中的字符串的能力,也可以使用其它软件进行测试,对此本实施例不做具体限定。

本实施例的有益效果是:触发被测程序弹出验证码输入界面;获取所述被测程序弹出的验证码输入界面上所显示的验证码;将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;当所述验证码通过验证后,执行对所述被测程序的测试操作。通过读取截取的验证码输入界面的图片得到验证码,并将验证码输入到验证码输入框中,真实的模拟了用户的操作,能够获得完整的测试数据。且当验证码未通过时,可以再次触发被测程序弹出验证码输入界面,再次对验证码进行验证,提高了测试效率和测试的完整性。

实施例3

参见图3,本实施例提供了一种测试装置,所述装置包括:触发模块301、验证码获取模块302、验证码输入模块303和第一执行模块304。

触发模块301,用于触发被测程序弹出验证码输入界面;

验证码获取模块302,用于获取所述被测程序弹出的验证码输入界面上所显示的验证码;

验证码输入模块303,用于将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;

第一执行模块304,用于当所述验证码通过验证后,执行对所述被测程序的测试操作。

参见图4,优选地,所述验证码获取模块302,包括:

图片截取单元302a,用于截取所述验证码输入界面的图片;

验证码读取单元302b,用于读取所述截取的图片中的字符串,得到所述验证码输入界面所显示的验证码。

可选地,所述触发模块301,包括:

第一触发单元,用于触发被测程序执行登录操作,使所述被测程序弹出验证码输入界面;或,

第二触发单元,用于触发被测程序执行注册操作,使所述被测程序弹出验证码输入界面;或,

第三触发单元,用于触发被测程序进行数据传输,使所述被测程序弹出验证码输入界面。

参见图4,可选地,所述装置还包括:

第二执行模块305,用于当所述验证码未通过验证时,触发所述触发模块301再次执行。

本实施例的有益效果是:触发被测程序弹出验证码输入界面;获取所述被测程序弹出的验证码输入界面上所显示的验证码;将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;当所述验证码通过验证后,执行对所述被测程序的测试操作。通过读取截取的验证码输入界面的图片得到验证码,并将验证码输入到验证码输入框中,真实的模拟了用户的操作,能够获得完整的测试数据。

本实施例提供的装置,具体可以与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

值得注意的是,上述测试装置实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1