CN103425575B - 一种测试方法和装置 - Google Patents

一种测试方法和装置 Download PDF

Info

Publication number
CN103425575B
CN103425575B CN201210165636.2A CN201210165636A CN103425575B CN 103425575 B CN103425575 B CN 103425575B CN 201210165636 A CN201210165636 A CN 201210165636A CN 103425575 B CN103425575 B CN 103425575B
Authority
CN
China
Prior art keywords
identifying code
tested program
inputting interface
program
test
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.)
Active
Application number
CN201210165636.2A
Other languages
English (en)
Other versions
CN103425575A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210165636.2A priority Critical patent/CN103425575B/zh
Publication of CN103425575A publication Critical patent/CN103425575A/zh
Application granted granted Critical
Publication of CN103425575B publication Critical patent/CN103425575B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种测试方法和装置,属于通信技术领域。所述方法包括:触发被测程序弹出验证码输入界面;获取所述被测程序弹出的验证码输入界面上所显示的验证码;将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;当所述验证码通过验证后,执行对所述被测程序的测试操作。本发明通过读取截取的验证码输入界面的图片得到验证码,并将验证码输入到验证码输入框中,真实的模拟了用户的操作,能够获得完整的测试数据。

Description

一种测试方法和装置
技术领域
本发明涉及通信技术领域,特别涉及一种测试方法和装置。
背景技术
目前在进行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再次执行。
本实施例的有益效果是:触发被测程序弹出验证码输入界面;获取所述被测程序弹出的验证码输入界面上所显示的验证码;将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;当所述验证码通过验证后,执行对所述被测程序的测试操作。通过读取截取的验证码输入界面的图片得到验证码,并将验证码输入到验证码输入框中,真实的模拟了用户的操作,能够获得完整的测试数据。
本实施例提供的装置,具体可以与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
值得注意的是,上述测试装置实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种测试方法,其特征在于,所述方法包括:
使用以图像检索为基础的测试程序启动模拟器,通过模拟器模拟被测程序的运行环境;
通过所述测试程序触发所述被测程序弹出验证码输入界面;
通过所述测试程序截取所述验证码输入界面的图片;
通过所述测试程序读取所述截取的图片中的字符串,得到所述验证码输入界面所显示的验证码;
通过所述测试程序将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;
当所述验证码通过验证后,通过所述测试程序执行对所述被测程序的测试操作。
2.根据权利要求1所述的方法,其特征在于,所述通过所述测试程序触发所述被测程序弹出验证码输入界面,包括:
触发被测程序执行登录操作,使所述被测程序弹出验证码输入界面;或,
触发被测程序执行注册操作,使所述被测程序弹出验证码输入界面;或,
触发被测程序进行数据传输,使所述被测程序弹出验证码输入界面。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述验证码未通过验证时,再次执行所述触发被测程序弹出验证码输入界面。
4.一种测试装置,其特征在于,所述装置包括:
用于使用以图像检索为基础的测试程序启动模拟器,通过模拟器模拟被测程序的运行环境的模块;
触发模块,用于通过所述测试程序,触发所述被测程序弹出验证码输入界面;
图片截取单元,用于通过所述测试程序截取所述验证码输入界面的图片;
验证码读取单元,用于通过所述测试程序读取所述截取的图片中的字符串,得到所述验证码输入界面所显示的验证码;
验证码输入模块,用于通过所述测试程序将所述验证码输入到所述验证码输入界面的输入框中,并触发所述被测程序对所述验证码进行验证;
第一执行模块,用于当所述验证码通过验证后,通过所述测试程序执行对所述被测程序的测试操作。
5.根据权利要求4所述的装置,其特征在于,所述触发模块,包括:
第一触发单元,用于触发被测程序执行登录操作,使所述被测程序弹出验证码输入界面;或,
第二触发单元,用于触发被测程序执行注册操作,使所述被测程序弹出验证码输入界面;或,
第三触发单元,用于触发被测程序进行数据传输,使所述被测程序弹出验证码输入界面。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:
第二执行模块,用于当所述验证码未通过验证时,触发所述触发模块再次执行。
CN201210165636.2A 2012-05-25 2012-05-25 一种测试方法和装置 Active CN103425575B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210165636.2A CN103425575B (zh) 2012-05-25 2012-05-25 一种测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210165636.2A CN103425575B (zh) 2012-05-25 2012-05-25 一种测试方法和装置

Publications (2)

Publication Number Publication Date
CN103425575A CN103425575A (zh) 2013-12-04
CN103425575B true CN103425575B (zh) 2018-02-02

Family

ID=49650359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210165636.2A Active CN103425575B (zh) 2012-05-25 2012-05-25 一种测试方法和装置

Country Status (1)

Country Link
CN (1) CN103425575B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446880A (zh) * 2015-11-23 2016-03-30 北京思德泰科科技发展有限公司 一种基于Linux图形界面的互联网彩票自助终端的自动测试方法
CN107589818B (zh) * 2017-09-13 2022-01-21 上海摩软通讯技术有限公司 移动终端的自启动测试系统及其测试方法
CN110443022A (zh) * 2019-07-05 2019-11-12 深圳壹账通智能科技有限公司 打码验证方法、电子装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944177A (zh) * 2010-08-30 2011-01-12 深圳市多赢软件技术有限公司 一种验证码识别方法
CN102143016A (zh) * 2010-11-25 2011-08-03 中国移动(深圳)有限公司 网站自动化测试方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010116586A1 (ja) * 2009-03-30 2010-10-14 株式会社野村総合研究所 動作検証装置、動作検証方法、および動作検証システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944177A (zh) * 2010-08-30 2011-01-12 深圳市多赢软件技术有限公司 一种验证码识别方法
CN102143016A (zh) * 2010-11-25 2011-08-03 中国移动(深圳)有限公司 网站自动化测试方法和系统

Also Published As

Publication number Publication date
CN103425575A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
Kong et al. Automated testing of android apps: A systematic literature review
Zheng et al. Automated test input generation for android: Towards getting there in an industrial case
US20170337116A1 (en) Application testing on different device types
CN104200161B (zh) 一种实现沙箱智能检测文件的方法及其沙箱智能检测系统
CN110493812B (zh) 配网测试的处理方法、装置、系统、处理器及主控设备
CN109145579A (zh) 智能网联汽车信息安全认证测试方法和系统
CN105338110A (zh) 远程调试方法和平台、服务器
CN106650441A (zh) 一种录屏方法以及装置
CN102419732A (zh) 基于android平台的自动化测试方法及测试工具
CN110855642B (zh) 应用漏洞检测方法、装置、电子设备及存储介质
CN103425575B (zh) 一种测试方法和装置
CN113407946A (zh) 一种针对IoT设备的智能防护方法、系统
Vernotte et al. Efficient detection of multi-step cross-site scripting vulnerabilities
CN108959931B (zh) 漏洞检测方法及装置、信息交互方法及设备
CN104615521B (zh) 一种测试bmc蓝屏捕获功能的方法
Zhang et al. Understanding the (in) security of cross-side face verification systems in mobile apps: a system perspective
Cai et al. Resource race attacks on android
CN105701373A (zh) 打开adb接口的方法和装置
CN105488436A (zh) 一种移动存储设备访问方法和装置
Liu et al. Research on software security and compatibility test for mobile application
Petracca et al. Aware: Controlling app access to I/O devices on mobile platforms
CN105281963A (zh) nginx服务器的漏洞检测方法和装置
CN111131223B (zh) 一种点击劫持的测试方法及装置
CN113052729A (zh) 一种手机取证能力验证样品的构建平台及方法
Al-Zadjali Penetration testing of vulnerability in android Linux kernel layer via an open network (Wi-Fi)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant