CN111913868B - 用户界面的测试方法、装置、系统及存储介质 - Google Patents
用户界面的测试方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN111913868B CN111913868B CN201910375637.1A CN201910375637A CN111913868B CN 111913868 B CN111913868 B CN 111913868B CN 201910375637 A CN201910375637 A CN 201910375637A CN 111913868 B CN111913868 B CN 111913868B
- Authority
- CN
- China
- Prior art keywords
- trigger
- user interface
- trigger operation
- test
- terminal
- 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
Links
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种用户界面的测试方法、装置、系统及存储介质,属于测试技术领域。所述方法包括:根据多个触发操作、多张目标图像和多张源图像,生成测试脚本;根据测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。这样,能够综合目标图像、源图像和控件信息,来更准确地确定该多个触发操作的触发位置,解决了相关技术中当源图像中包含与对应的目标图像相同的图像区域时,无法准确确定触发操作的触发位置而导致影响测试效果的问题。
Description
技术领域
本申请涉及测试技术领域,特别涉及一种用户界面的测试方法、装置、系统及存储介质。
背景技术
随着自动化测试技术的普及,对终端的用户界面的测试逐渐由手工测试转为自动化测试,从而减少技术人员的重复性操作,节省人力资源。
相关技术中,通常需要通过测试终端对被测终端的用户界面进行测试。具体地,测试终端可以与被测终端建立连接,以在测试终端上显示被测终端的用户界面。之后,测试终端可以获取多张目标图像和多张源图像,多张目标图像为测试终端检测到针对显示的用户界面的多个触发操作时所截取的图像,多张源图像为测试终端在检测到多个触发操作时的全屏截图,且多张目标图像与多张源图像一一对应,且目标图像为对应的源图像中的一部分。测试终端根据检测到的触发操作、多张目标图像和多张源图像,生成测试脚本。运行测试脚本,以根据多张源图像中与对应的目标图像相同的图像区域在对应的源图像中的位置,确定多个触发操作在用户界面的触发位置,通过该多个触发操作在用户界面的触发位置控制被测终端执行多个触发操作。
但是,当源图像中包含与对应的目标图像相同的一个或者多个图像区域时,通过上述方式就无法准确确定触发操作在用户界面的触发位置,从而影响测试效果。
发明内容
本申请实施例提供了一种用户界面的测试方法、装置、系统及存储介质可以解决相关技术中在源图像中包含与对应的目标图像相同的一个或者多个图像区域时,无法准确确定触发操作在用户界面的触发位置导致影响测试效果的问题。所述技术方案如下:
第一方面,提供了一种用户界面的测试方法,应用于测试终端,所述方法包括:
根据多个触发操作、多张目标图像和多张源图像,生成测试脚本,所述多张目标图像为所述测试终端检测到针对显示的用户界面的所述多个触发操作时所截取的图像,所述多张源图像为所述测试终端在检测到所述多个触发操作时的全屏截图,且所述多张目标图像与所述多张源图像一一对应,所述多张目标图像为对应的源图像中的一部分;
根据所述测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作,所述至少一个第一触发操作是指所述多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,所述至少一个第二触发操作是指所述多个触发操作中除所述至少一个第一触发操作之外的触发操作。
可选地,所述根据所述测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作,包括:
运行所述测试脚本,以通过所述至少一个第一触发操作所触发的控件的控件信息控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过所述至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作。
可选地,所述运行所述测试脚本,包括:
根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置;
如果所述多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,则将所述未确定出触发位置或者存在多个不同触发位置的触发操作作为所述至少一个第一触发操作,获取所述至少一个第一触发操作所触发的控件的控件信息;
根据获取的控件信息控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,根据所述至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作。
可选地,所述根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置之前,还包括:
将所述多张目标图像和所述多张源图像的进行格式转换;
所述根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置,包括:
通过SIFT(Scale-invariant feature transform,尺度不变特征变换)算法,对转换后的多张目标图像和转换后的多张源图像进行处理,以确定所述多个触发操作在所述测试终端显示的用户界面的触发位置。
可选地,所述根据所述测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作,包括:
将所述测试脚本转换为用例脚本;
运行所述用例脚本,以通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作。
可选地,所述用例脚本中包括多个用例,所述多个用例与所述多个触发操作一一对应;
所述方法还包括:
在运行所述用例脚本的过程中,获取所述多个用例的执行结果和所述用例脚本的运行日志;
根据所述多个用例的执行结果和所述用例脚本的运行日志,生成测试结果报告。
可选地,所述根据所述多个用例的执行结果和所述用例脚本的运行日志,生成测试结果报告,包括:
对于所述多个用例中的第一用例,如果所述第一用例的执行结果为成功,则从所述用例脚本的运行日志中获取第一部分日志,所述第一部分日志中包括所述第一用例对应的触发操作和所述第一用例的执行结果,所述第一用例为所述多个用例中的任一用例;
如果所述第一用例的执行结果为失败,则从所述用例脚本的运行日志中获取第二部分日志,所述第二部分日志为所述第一用例的运行日志;
根据针对所述多个用例获取的部分日志,生成测试结果报告。
第二方面,提供了一种一种用户界面的测试装置,应用于测试终端,所述装置包括:
第一生成模块,用于根据多个触发操作、多张目标图像和多张源图像,生成测试脚本,所述多张目标图像为所述测试终端检测到针对显示的用户界面的所述多个触发操作时所截取的图像,所述多张源图像为所述测试终端在检测到所述多个触发操作时的全屏截图,且所述多张目标图像与所述多张源图像一一对应,所述多张目标图像为对应的源图像中的一部分;
控制模块,用于根据所述测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作,所述至少一个第一触发操作是指所述多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,所述至少一个第二触发操作是指所述多个触发操作中除所述至少一个第一触发操作之外的触发操作。
可选地,所述控制模块,包括:
第一运行子模块,用于运行所述测试脚本,以通过所述至少一个第一触发操作所触发的控件的控件信息控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过所述至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作。
可选地,所述第一运行子模块,包括:
确定子单元,用于根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置;
获取子单元,用于如果所述多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,则将所述未确定出触发位置或者存在多个不同触发位置的触发操作作为所述至少一个第一触发操作,获取所述至少一个第一触发操作所触发的控件的控件信息;
控制子单元,用于根据获取的控件信息控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,根据所述至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作。
可选地,所述第一运行子模块,还包括:
转换子单元,用于将所述多张目标图像和所述多张源图像的进行格式转换;
所述确定子单元,用于通过SIFT算法,对转换后的多张目标图像和转换后的多张源图像进行处理,以确定所述多个触发操作在所述测试终端显示的用户界面的触发位置。
可选地,所述控制模块,包括:
转换子模块,用于将所述测试脚本转换为用例脚本;
第二运行子模块,用于运行所述用例脚本,以通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作。
可选地,所述用例脚本中包括多个用例,所述多个用例与所述多个触发操作一一对应;
所述装置还包括:
获取模块,用于在运行所述用例脚本的过程中,获取所述多个用例的执行结果和所述用例脚本的运行日志;
第二生成模块,用于根据所述多个用例的执行结果和所述用例脚本的运行日志,生成测试结果报告。
可选地,所述第二生成模块,包括:
第一获取子模块,用于对于所述多个用例中的第一用例,如果所述第一用例的执行结果为成功,则从所述用例脚本的运行日志中获取第一部分日志,所述第一部分日志中包括所述第一用例对应的触发操作和所述第一用例的执行结果,所述第一用例为所述多个用例中的任一用例;
第二获取子模块,用于如果所述第一用例的执行结果为失败,则从所述用例脚本的运行日志中获取第二部分日志,所述第二部分日志为所述第一用例的运行日志;
生成子模块,用于根据针对所述多个用例获取的部分日志,生成测试结果报告。
第三方面,提供了一种测试终端,所述测试终端包括:
处理器和存储器;
其中,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述第一方面所述的用户界面的测试方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述第一方面所述的用户界面的测试方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以实现如上述第一方面所述的用户界面的测试方法。
本申请实施例通过根据获取的多个触发操作、测试终端检测到针对显示的用户界面的多个触发操作时所截取的图像和测试终端在检测到多个触发操作时的全屏截图,生成测试脚本。根据测试脚本,在多个触发操作中存在至少一个第一触发操作时,则获取通过至少一个第一触发操作所触发的控件的控件信息,通过获取的空间信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作;通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。这样,生成的测试脚本在运行过程中,能够综合目标图像和源图像,以及控件信息来更准确、更快速地确定该多个触发操作在测试终端显示的用户界面的触发位置,从而控制被测终端执行该多个触发操作,保证了测试结果的准确率,解决了相关技术中当源图像中包含与对应的目标图像相同的一个或者多个图像区域时,无法准确确定触发操作在用户界面的触发位置导致影响测试效果的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种用户界面的测试方法流程图;
图2是根据一示例性实施例示出的另一种用户界面的测试方法流程图;
图3是根据一示例性实施例示出的一种测试终端的结构示意图;
图4是根据一示例性实施例示出的又一种用户界面的测试方法流程图;
图5是根据一示例性实施例示出的一种用户界面的测试装置结构示意图;
图6是根据一示例性实施例示出的另一种测试终端结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于理解,在对本申请实施例进行详细地解释说明之前,先对本申请实施例涉及的应用场景进行介绍。
目前,在用户界面的测试技术领域,由于技术人员进行手工测试会进行大量的重复性操作,为了简化技术人员的操作,节省人力资源,对终端用户界面的测试逐步由手工测试转化为自动化测试,可以通过生成用户界面自动化测试的测试脚本,然后运行测试脚本来进行用户界面的自动化测试。
例如,可以在某手机生产商在生产出来一批手机时,需要对每个手机的用户界面进行测试,可以通过上述方式生成测试手机用户界面不同功能的测试脚本,然后通过运行测试脚本对该批手机进行测试,无需技术人员一一进行手工测试,节省了人力资源。
又例如,可以在某生产商需要对一批视频会议智能产品进行用户界面测试时,可以通过上述方式生成测试该视频会议智能产品用户界面的不同功能的测试脚本,然后通过运行测试脚本对每个视频会议智能产品进行测试,无需技术人员一一进行手工测试,简化了操作,节省了时间。
当然,本申请实施例不仅可以应用于上述两种应用场景中,实际应用中,可能还可以应用于其他的应用场景中,在此本申请实施例对其他应用场景不再一一列举。
图1是根据一示例性实施例示出的一种用户界面的测试方法流程图,参见图1,该方法包括如下步骤:
步骤101:根据多个触发操作、多张目标图像和多张源图像,生成测试脚本,该多张目标图像为测试终端检测到针对显示的用户界面的该多个触发操作时所截取的图像,该多张源图像为测试终端在检测到该多个触发操作时的全屏截图,且该多张目标图像与该多张源图像一一对应,该多张目标图像为对应的源图像中的一部分;
步骤102:根据测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作,至少一个第一触发操作是指该多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,至少一个第二触发操作是指该多个触发操作中除至少一个第一触发操作之外的触发操作。
综上所述,本申请实施例根据获取的多个触发操作、测试终端检测到针对显示的用户界面的多个触发操作时所截取的图像和测试终端在检测到多个触发操作时的全屏截图,生成测试脚本。根据测试脚本,在多个触发操作中存在至少一个第一触发操作时,则获取通过至少一个第一触发操作所触发的控件的控件信息,通过获取的空间信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作;通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。这样,生成的测试脚本在运行过程中,能够综合目标图像和源图像,以及控件信息来更准确、更快速地确定该多个触发操作在测试终端显示的用户界面的触发位置,从而控制被测终端执行该多个触发操作,保证了测试结果的准确率,解决了相关技术中当源图像中包含与对应的目标图像相同的一个或者多个图像区域时,无法准确确定触发操作在用户界面的触发位置导致影响测试效果的问题。
可选地,根据测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作,包括:
运行测试脚本,以通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
可选地,运行测试脚本,包括:
根据该多张目标图像和该多张源图像,确定该多个触发操作在测试终端显示的用户界面的触发位置;
如果该多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,则将未确定出触发位置或者存在多个不同触发位置的触发操作作为至少一个第一触发操作,获取至少一个第一触发操作所触发的控件的控件信息;
根据获取的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,根据至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
可选地,根据该多张目标图像和该多张源图像,确定该多个触发操作在测试终端显示的用户界面的触发位置之前,还包括:
将该多张目标图像和该多张源图像的进行格式转换;
根据该多张目标图像和该多张源图像,确定该多个触发操作在测试终端显示的用户界面的触发位置,包括:
通过SIFT算法,对转换后的多张目标图像和转换后的多张源图像进行处理,以确定该多个触发操作在测试终端显示的用户界面的触发位置。
可选地,根据测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作,包括:
将测试脚本转换为用例脚本;
运行用例脚本,以通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
可选地,用例脚本中包括多个用例,该多个用例与该多个触发操作一一对应;
该方法还包括:
在运行用例脚本的过程中,获取该多个用例的执行结果和用例脚本的运行日志;
根据该多个用例的执行结果和用例脚本的运行日志,生成测试结果报告。
可选地,根据该多个用例的执行结果和用例脚本的运行日志,生成测试结果报告,包括:
对于该多个用例中的第一用例,如果第一用例的执行结果为成功,则从用例脚本的运行日志中获取第一部分日志,第一部分日志中包括第一用例对应的触发操作和第一用例的执行结果,第一用例为该多个用例中的任一用例;
如果第一用例的执行结果为失败,则从用例脚本的运行日志中获取第二部分日志,第二部分日志为第一用例的运行日志;
根据针对该多个用例获取的部分日志,生成测试结果报告。
上述所有可选技术方案,均可按照任意结合形成本申请的可选实施例,本申请实施例对此不再一一赘述。
图2是根据一示例性实施例示出的一种用户界面的测试方法流程图,应用于测试终端,下面本申请实施例将对图1所示的实施例进行展开说明。参见图2,该方法包括如下步骤:
步骤201:根据多个触发操作、多张目标图像和多张源图像,生成测试脚本。
该多张目标图像为测试终端检测到针对显示的用户界面的该多个触发操作时所截取的图像,该多张源图像为测试终端在检测到多个触发操作时的全屏截图,且该多张目标图像与该多张源图像一一对应,该多张目标图像为对应的源图像中的一部分。
测试终端可以为PC(personal computer,个人计算机)。被测终端可以是操作系统为Android安卓操作系统或者Windows视图操作系统的智能终端,例如信息发布产品、智能交互一体机产品、智能键盘产品、视频会议产品、LCD(Liquid Crystal Display,液晶显示器)拼接屏显示产品、LED(Light Emitting Diode,发光二极管)显示产品等。
本申请实施例提供的用户界面的测试方法是用于对被测终端的可直接观察的用户界面的一些功能测试,例如,对被测终端的用户界面的点击操作、滑动操作、拖拽操作等。当然也可以包括其他操作,对此本申请实施例不予限定。
需要说明的是,测试终端可以使用Sikuli API(Application ProgrammingInterface,应用程序编程接口)来截取该多张目标图像。
在一些实施例中,可以使用Sikuli API通过录屏的方式录制检测到针对测试终端显示的用户界面的多个触发操作,然后自动截取预设大小且包括每个触发操作的触发位置的图像作为目标图像。在另一些实施例中,也可以获取用户使用Sikuli API的截图工具所截取的多个图像,将获取多个图像确定为该多个目标图像。
一些实施例中,在生成测试脚本时,需要将调用二次封装接口的操作写入测试脚本,以实现在运行测试脚本时,测试终端能够调用二次封装接口所封装的函数将针对测试终端显示的用户界面的多个触发操作的操作命令转换为被测终端能够识别的操作命令。
需要说明的是,该二次封装接口可以为ADB(Android Debug Bridge,安卓调试桥)接口、(Microsoft Windows32位操作系统)的API接口等。且该二次封装接口中封装有用于进行操作命令转换的函数。例如,将测试终端上的录制操作的操作命令转换为被测终端可以识别的录制操作的操作命令。
需要说明的是,在执行上述步骤201之前,需要建立测试终端和被测终端之间的连接,以在测试终端上显示被测终端的用户界面。如,可以通过数据线将测试终端和被测终端连接,也可以通过其他方式建立测试终端和被测终端之间的连接,如采用无线网络的方式,对此本申请实施例不予限定。
在执行完上述步骤201之后,可以根据测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
需要说明的是,至少一个第一触发操作是指该多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,至少一个第二触发操作是指该多个触发操作中除第一触发操作之外的触发操作。
在一些实施例中,可以通过运行测试脚本,就能够实现通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作的过程。而运行测试脚本的过程可以通过如下步骤202-203来实现。
需要说明的是,运行测试脚本可以在检测到针对测试脚本的运行操作时运行,也可以是在可以在生成测试脚本后直接运行。对此本申请实施例不予限定。
步骤202:根据该多张目标图像和该多张源图像,确定该多个触发操作在测试终端显示的用户界面的触发位置。
需要说明的是,对于每张源图像而言,可以确定该源图像中是否存在与对应的目标图像相同的图像区域,若存在,则根据该图像区域在该源图像中的位置确定对应的触发操作在用户界面的触发位置。在一些实施例中,测试终端可以从该图像区域中选取任一坐标作为该触发操作在用户界面的触发位置,也可以直接将该图像区域在源图像中的坐标范围确定为该触发操作的触发范围,该触发范围内的任一位置都可以为该触发操作在测试终端显示的用户界面的触发位置。
一些实施例中,在根据该多张目标图像和该多张源图像,确定该多个触发操作的触发位置之前,可以先将该多张目标图像和该多张源图像的进行格式转换。然后通过SIFT算法,对转换后的多张目标图像和转换后的多张源图像进行处理,以确定该多个触发操作在测试终端显示的用户界面的触发位置。
需要说明的是,由于获取的该多张目标图像和该多张源图像的数据格式通常是BGR(Blue、Green、Red,蓝色、绿色、红色)类型,而测试终端无法识别出该种类型的图像进行后续的处理。因此,需要先对获取的该多张目标图像和该多张源图像进行预处理,以将该多张目标图像和该多张源图像的数据格式转换为测试终端能够识别的数据格式,也即是,将该多张目标图像和该多张源图像的数据格式为测试脚本所使用的脚本语言能够识别的数据格式,如可以转换为灰度图、二值图、HSV(Hue、Saturation、Value,色调、饱和度、明度)或HIS(Hue、Intensity、Saturation,色调、饱和度、强度)等颜色制式的图像。该测试脚本所使用的脚本语言可以为Python语言,也可以为其他语言,如TLC(Tool Command Language,工具命令语言)、ruby语言等。
在一些实施例中,可以通过Opencv(Open Source Computer Vision Library,开源计算机视觉库)对获取的该多张目标图像和该多张源图像进行格式转换。具体的格式转换过程可以参考相关技术,在此不再一一赘述。
需要说明的是,通过SIFT算法对转换后的多张目标图像和转换后的多张源图像进行处理时,需要先分别构造第一图像和对应的源图像的多个尺度空间,第一图像为该多个目标图像中的任一图像。然后在第一图像和对应的源图像的多个尺度空间中进行检测,通过高斯微分函数来确定出第一图像和对应的源图像中不同尺度空间保持不变的特征点。接着对确定出的特征点进行定位,确定每个特征点的尺度和位置。之后再基于第一图像和对应的源图像局部的梯度方向,分配给每个特征点一个或多个方向,从而得到每个特征点的位置、尺度和方向。然后根据每个特征点的位置、尺度和方向,确定出第一图像的SIFT特征向量和对应的源图像的SIFT特征向量,通过比较第一图像的SIFT特征向量和对应的源图像的SIFT特征向量之间的相似度,以从对应的源图像中确定出与第一图像相同的图像区域,进而得到该多个触发操作的触发位置。
由于SIFT算法在处理图像时,是通过提取SIFT特征来进行特征比对,以确定每个源图像中与对应的目标图像相同的图像区域。而该SIFT特征对旋转、尺度缩放、亮度变化等保持不变性,因此,即使被测终端的型号不同,或者安装相同应用程序的不同被测终端屏幕大小和分辨率不同,通过SIFT算法提取的SIFT特征都是相同,不会影响到对该多个目标图像和该多个源图像中的每个目标图像和对应的源图像的处理。也即是说,本申请实施例提供的测试脚本适用于不同分辨率的被测终端,即使被测终端的屏幕分辨率不同,也不需要重新生成测试脚本进行用户界面的自动化测试,适用性更加广泛,且节省了人力资源。
步骤203:如果该多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,则将该未确定出触发位置或者存在多个不同触发位置的触发操作作为至少一个第一触发操作,获取至少一个第一触发操作所触发的控件的控件信息。
通常情况下,每个触发操作对应一个触发位置。如果一个源图像中包括多个与对应的目标图像相同的图像区域,那么在通过上述步骤202确定该多个触发操作的触发位置时,就会出现出一个第一触发操作对应多个触发位置的情况,或者出现无法确定该第一触发操作所对应的触发位置的情况。因此,在执行完步骤202之后,需要对该多个触发操作在测试终端显示的用户界面的触发位置进行判断,以确定是否存在未确定出触发位置或者存在多个不同触发位置的触发操作。之后再执行步骤203,以获取该至少一个第一触发操作所触发的控件的控件信息。
由于控件信息能够唯一标识控件在用户界面的位置,因此,可以将获取的控件信息作为至少一个第一触发操作在测试终端显示的用户界面的触发位置,以便控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作。
需要说明的是,可以通过Poco算法来对被测终端显示的用户界面的控件进行搜索,以获取至少一个第一触发操作所触发的控件的控件信息。具体获取至少一个第一触发操作所触发的控件的控件信息的过程可以参考相关技术,在此不再一一赘述。
步骤204:根据获取的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,根据至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
需要说明的是,根据获取的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作时,测试终端需要调用二次封装接口以将至少一个第一触发操作的操作命令转换为被测终端可以识别的操作命令。在运行测试脚本过程中,测试终端通过将获取的至少一个第一触发操作对应的控件信息分别携带在转换后得到的与至少一个第一触发操作对应的操作命令中,并将至少一个第二触发操作的在测试终端显示界面上的触发位置携带在转换后得到的与至少一个第二触发操作对应的操作命令中,发送给被测终端。由被测终端根据接收到的操作命令,在被测终端显示的用户界面的执行该多个触发操作。此时,该多个触发操作包括至少一个第一触发操作和至少一个第二触发操作。
相应的,根据至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作时,测试终端需要调用二次封装接口将至少一个第二触发操作的操作命令转换为被测终端能够识别的操作命令,并将至少一个第二触发操作的触发位置映射到被测终端上,确定出被测终端上与至少一个第二触发操作的触发位置相对应的至少一个位置。然后将确定出的至少一个位置对应携带在转换后得到的与至少一个第二触发操作对应的操作命令中,之后再将转换后得到的与至少一个第二触发操作对应的操作命令发送给被测终端。由被测终端根据接收到的操作命令,在被测终端的用户界面的该至少一个位置执行至少一个第二触发操作。
在某些情况下,若通过判断之后确定不存在未确定出触发位置或者存在多个不同触发位置的触发操作时,即该多个触发操作均为第二触发操作,可以直接根据该多个触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行该多个第二触发操作。具体的过程与上述步骤204中根据至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作的过程类似,在此不再一一赘述。
在一些实施例中,执行上述步骤202-203之前,可以先将测试脚本转换为用例脚本;然后按照与上述步骤202-203的方式,来运行用例脚本,以通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。而运行用例脚本的过程与上述运行测试脚本的过程类似,具体过程详见步骤202-204,在此不再一一赘述。
在一些实施例中,用例脚本中包括多个用例,且多个用例与该多个触发操作一一对应;在运行用例脚本的过程中,获取多个用例的执行结果和用例脚本的运行日志;根据多个用例的执行结果和用例脚本的运行日志,生成测试结果报告。
需要说明的是,在运行用例脚本的过程中,可以将通过装饰器将调用函数执行的操作形成运行日志,保存在测试是设备中,也可以通过其他方式来生成用例脚本的运行日志,对此本申请实施例不予限定。之后可以根据多个用例的执行结果和用例脚本的运行日志,生成测试结果报告。
本申请实施例通过将测试脚本转换为用例脚本,将包括多个触发操作的测试脚本转换为包括多个用例的用例脚本,以将多个触发操作和多个用例一一对应,通过运行用例脚本,不仅可以控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作和至少一个第二触发操作,同时还能够得到测试结果报告,以便与技术人员根据测试结果报告对出现问题的用例进行排查,从而能够实现对用例脚本中的多个用例进行统一管理,便于对用例脚本进行后期维护。
对于该多个用例中的第一用例,如果第一用例的执行结果为成功,则从用例脚本的运行日志中获取第一部分日志,第一部分日志中包括第一用例对应的触发操作和第一用例的执行结果,第一用例为该多个用例中的任一用例。如果第一用例的执行结果为失败,则从用例脚本的运行日志中获取第二部分日志,该第二部分日志为第一用例的运行日志。然后根据针对该多个用例获取的部分日志,生成测试结果报告。
需要说明的是,若第一用例的执行结果为失败,还可以输出Traceback错误提示信息,在生成测试结果报告时,也可以在第二部分日志中添加Traceback错误提示信息,通过LogToHtml生成测试结果报告。而通过LogToHtml生成测试结果报告,即是将针对该多个用例获取的部分日志转化为Html超文本标记语言,得到以Html格式表示的测试结果报告,以供技术人员查看。
这样,能够在运行完用例脚本后直接向技术人员提供测试结果报告,以便技术人员进行后续的测试结果分析,不需要技术人员手动去查看运行日志,通过人为分析得到测试结果,简化了技术人员的操作,节省了用户界面测试的时间。
在申请实施例中,如图3所示,上述步骤201-203可以通过获取模块301,脚本生成模块302,处理模块303以及操作模块304实现。
测试终端先通过获取模块301来获取多张目标图像和多张源图像,然后通过脚本生成模块302先根据检测到的针对显示的用户界面的多个触发操作、该多张目标图像和该多张源图像,生成测试脚本,再通过单元测试框架将测试脚本转换为用例脚本。通过运行用例脚本,以调用处理模块303在确定在该多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作时,将未确定出触发位置或者存在多个不同触发位置的触发操作作为至少一个第一触发操作,获取第一触发操作所触发的控件的控件信息,然后调用操作模块304根据至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
在一些实施例中,如图4所示,上述步骤201-203可以通过如下步骤a-步骤f实现。
步骤a:建立测试终端和被测终端之间的连接,以在测试终端上显示被测终端的用户界面;
步骤b:根据多个触发操作、多张目标图像和多张源图像,使用单元测试框架生成用例脚本;
步骤c:根据用例脚本,通过多张目标图像和多张源图像,确定该多个触发操作在测试终端显示的用户界面的触发位置;
步骤d:如果该多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,将未确定出触发位置或者存在多个不同触发位置的触发操作作为至少一个第一触发操作,获取至少一个第一触发操作所触发的控件的控件信息;
步骤e:根据获取的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,根据至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作;
步骤f:如果该多个触发操作中不存在未确定出触发位置或者存在多个不同触发位置的触发操作,根据该多个触发操作在被测终端显示的显示界面上的触发位置控制被测终端针对被测终端显示的用户界面执行该多个触发操作;
步骤g:判断用例脚本的第一用例的是否执行成功,如果是,则从用例脚本的运行日志中获取第一部分日志,如果否,则从用例脚本的运行日志中获取第二部分日志,根据针对多个用例获取的部分日志,生成测试结果报告。
综上所述,本申请实施例根据获取的多个触发操作、测试终端检测到针对显示的用户界面的多个触发操作时所截取的图像和测试终端在检测到多个触发操作时的全屏截图,生成测试脚本。根据测试脚本,在多个触发操作中存在至少一个第一触发操作时,则获取通过至少一个第一触发操作所触发的控件的控件信息,通过获取的空间信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作;通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。这样,生成的测试脚本在运行过程中,能够综合目标图像和源图像,以及控件信息来更准确、更快速地确定该多个触发操作在测试终端显示的用户界面的触发位置,从而控制被测终端执行该多个触发操作,保证了测试结果的准确率,解决了相关技术中当源图像中包含与对应的目标图像相同的一个或者多个图像区域时,无法准确确定触发操作在用户界面的触发位置导致影响测试效果的问题。
图5是根据一示例性实施例示出的一种用户界面的测试装置结构示意图。参见图5,该装置包括:第一生成模块501和控制模块502。
第一生成模块501,用于根据多个触发操作、多张目标图像和多张源图像,生成测试脚本,该多张目标图像为测试终端检测到针对显示的用户界面的该多个触发操作时所截取的图像,该多张源图像为测试终端在检测到该多个触发操作时的全屏截图,且该多张目标图像与该多张源图像一一对应,该多张目标图像为对应的源图像中的一部分;
控制模块502,用于根据测试脚本,通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作,至少一个第一触发操作是指该多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,至少一个第二触发操作是指该多个触发操作中除至少一个第一触发操作之外的触发操作。
可选地,控制模块502,包括:
第一运行子模块,用于运行测试脚本,以通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
可选地,第一运行子模块,包括:
确定子单元,用于根据该多张目标图像和该多张源图像,确定该多个触发操作在测试终端显示的用户界面的触发位置;
获取子单元,用于如果该多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,则将未确定出触发位置或者存在多个不同触发位置的触发操作作为至少一个第一触发操作,获取至少一个第一触发操作所触发的控件的控件信息;
控制子单元,用于根据获取的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,根据至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
可选地,第一运行子模块,还包括:
转换子单元,用于将该多张目标图像和该多张源图像的进行格式转换;
确定子单元,用于通过SIFT算法,对转换后的多张目标图像和转换后的多张源图像进行处理,以确定该多个触发操作在测试终端显示的用户界面的触发位置。
可选地,控制模块502,包括:
转换子模块,用于将测试脚本转换为用例脚本;
第二运行子模块,用于运行用例脚本,以通过至少一个第一触发操作所触发的控件的控件信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作,通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。
可选地,用例脚本中包括多个用例,该多个用例与该多个触发操作一一对应;
装置还包括:
获取模块,用于在运行用例脚本的过程中,获取该多个用例的执行结果和用例脚本的运行日志;
第二生成模块,用于根据该多个用例的执行结果和用例脚本的运行日志,生成测试结果报告。
可选地,第二生成模块,包括:
第一获取子模块,用于对于该多个用例中的第一用例,如果第一用例的执行结果为成功,则从用例脚本的运行日志中获取第一部分日志,第一部分日志中包括第一用例对应的触发操作和第一用例的执行结果,第一用例为该多个用例中的任一用例;
第二获取子模块,用于如果第一用例的执行结果为失败,则从用例脚本的运行日志中获取第二部分日志,第二部分日志为第一用例的运行日志;
生成子模块,用于根据针对该多个用例获取的部分日志,生成测试结果报告。
综上所述,本申请实施例根据获取的多个触发操作、测试终端检测到针对显示的用户界面的多个触发操作时所截取的图像和测试终端在检测到多个触发操作时的全屏截图,生成测试脚本。根据测试脚本,在多个触发操作中存在至少一个第一触发操作时,则获取通过至少一个第一触发操作所触发的控件的控件信息,通过获取的空间信息控制被测终端针对被测终端显示的用户界面执行至少一个第一触发操作;通过至少一个第二触发操作在测试终端显示的用户界面的触发位置控制被测终端针对被测终端显示的用户界面执行至少一个第二触发操作。这样,生成的测试脚本在运行过程中,能够综合目标图像和源图像,以及控件信息来更准确、更快速地确定该多个触发操作在测试终端显示的用户界面的触发位置,从而控制被测终端执行该多个触发操作,保证了测试结果的准确率,解决了相关技术中当源图像中包含与对应的目标图像相同的一个或者多个图像区域时,无法准确确定触发操作在用户界面的触发位置导致影响测试效果的问题。
需要说明的是:上述实施例提供的用户界面的测试装置在测试用户界面时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的用户界面的测试装置与用户界面的测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是根据一示例性实施例示出的测试终端600的结构框图。该测试终端600还可能被称为用户设备、便携式测试终端、膝上型测试终端、台式测试终端等其他名称。
通常,测试终端600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例根据一示例性实施例示出的用户界面的测试方法。
在一些实施例中,测试终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、触摸显示屏605、摄像头606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它测试终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置测试终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在测试终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在测试终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在测试终端的前面板,后置摄像头设置在测试终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在测试终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位测试终端600的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源609用于为测试终端600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,测试终端600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以测试终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测测试终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对测试终端600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在测试终端600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在测试终端600的侧边框时,可以检测用户对测试终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601根据用户对触摸显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置测试终端600的正面、背面或侧面。当测试终端600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在测试终端600的前面板。接近传感器616用于采集用户与测试终端600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与测试终端600的正面之间的距离逐渐变小时,由处理器601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与测试终端600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对测试终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本申请的示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由上述图像处理设备中的处理器执行以完成上述实施例中的用户界面的测试方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本申请的示例性实施例中,还提供了一种包含指令的计算机程序产品,当该计算机程序产品中的指令由计算机的处理器执行时,使得计算机能够执行上述图1或图2中用户界面的测试方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种用户界面的测试方法,其特征在于,应用于测试终端,所述方法包括:
根据多个触发操作、多张目标图像和多张源图像,生成测试脚本,所述多张目标图像为所述测试终端检测到针对显示的用户界面的所述多个触发操作时所截取的图像,所述多张源图像为所述测试终端在检测到所述多个触发操作时的全屏截图,且所述多张目标图像与所述多张源图像一一对应,所述多张目标图像为对应的源图像中的一部分;
根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置;
如果所述多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,则将所述未确定出触发位置或者存在多个不同触发位置的触发操作作为至少一个第一触发操作,获取所述至少一个第一触发操作所触发的控件的控件信息;
根据获取的控件信息控制被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,根据至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作,以通过所述至少一个第一触发操作所触发的控件的控件信息控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过所述至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作,所述至少一个第二触发操作是指所述多个触发操作中除所述至少一个第一触发操作之外的触发操作。
2.如权利要求1所述的方法,其特征在于,所述根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置之前,还包括:
将所述多张目标图像和所述多张源图像的进行格式转换;
所述根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置,包括:
通过尺度不变特征变换SIFT算法,对转换后的多张目标图像和转换后的多张源图像进行处理,以确定所述多个触发操作在所述测试终端显示的用户界面的触发位置。
3.如权利要求1所述的方法,其特征在于,所述根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置之前,还包括:
将所述测试脚本转换为用例脚本。
4.如权利要求3所述的方法,其特征在于,所述用例脚本中包括多个用例,所述多个用例与所述多个触发操作一一对应;
所述方法还包括:
在运行所述用例脚本的过程中,获取所述多个用例的执行结果和所述用例脚本的运行日志;
根据所述多个用例的执行结果和所述用例脚本的运行日志,生成测试结果报告。
5.如权利要求4所述的方法,其特征在于,所述根据所述多个用例的执行结果和所述用例脚本的运行日志,生成测试结果报告,包括:
对于所述多个用例中的第一用例,如果所述第一用例的执行结果为成功,则从所述用例脚本的运行日志中获取第一部分日志,所述第一部分日志中包括所述第一用例对应的触发操作和所述第一用例的执行结果,所述第一用例为所述多个用例中的任一用例;
如果所述第一用例的执行结果为失败,则从所述用例脚本的运行日志中获取第二部分日志,所述第二部分日志为所述第一用例的运行日志;
根据针对所述多个用例获取的部分日志,生成测试结果报告。
6.一种用户界面的测试装置,其特征在于,应用于测试终端,所述装置包括:
第一生成模块,用于根据多个触发操作、多张目标图像和多张源图像,生成测试脚本,所述多张目标图像为所述测试终端检测到针对显示的用户界面的所述多个触发操作时所截取的图像,所述多张源图像为所述测试终端在检测到所述多个触发操作时的全屏截图,且所述多张目标图像与所述多张源图像一一对应,所述多张目标图像为对应的源图像中的一部分;
控制模块,用于根据所述多张目标图像和所述多张源图像,确定所述多个触发操作在所述测试终端显示的用户界面的触发位置;如果所述多个触发操作中存在未确定出触发位置或者存在多个不同触发位置的触发操作,则将所述未确定出触发位置或者存在多个不同触发位置的触发操作作为至少一个第一触发操作,获取所述至少一个第一触发操作所触发的控件的控件信息;根据获取的控件信息控制被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,根据至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作,以通过所述至少一个第一触发操作所触发的控件的控件信息控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第一触发操作,通过所述至少一个第二触发操作在所述测试终端显示的用户界面的触发位置控制所述被测终端针对所述被测终端显示的用户界面执行所述至少一个第二触发操作,所述至少一个第二触发操作是指所述多个触发操作中除所述至少一个第一触发操作之外的触发操作。
7.一种测试终端,其特征在于,所述测试终端包括:
处理器和存储器;
其中,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至5任一权利要求所述的用户界面的测试方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至5任一权利要求所述的用户界面的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910375637.1A CN111913868B (zh) | 2019-05-07 | 2019-05-07 | 用户界面的测试方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910375637.1A CN111913868B (zh) | 2019-05-07 | 2019-05-07 | 用户界面的测试方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913868A CN111913868A (zh) | 2020-11-10 |
CN111913868B true CN111913868B (zh) | 2023-08-04 |
Family
ID=73242583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910375637.1A Active CN111913868B (zh) | 2019-05-07 | 2019-05-07 | 用户界面的测试方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913868B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377119A (zh) * | 2012-04-23 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种非标准控件自动化测试方法和装置 |
CN105808416A (zh) * | 2014-12-27 | 2016-07-27 | 南车株洲电力机车研究所有限公司 | 一种人机图形交互界面的自动化测试方法和系统 |
CN106681919A (zh) * | 2016-12-22 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 一种用户界面自动化测试方法及系统 |
WO2018120721A1 (zh) * | 2016-12-30 | 2018-07-05 | 上海壹账通金融科技有限公司 | 用户界面的测试方法、系统、电子装置及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892027B2 (en) * | 2014-07-09 | 2018-02-13 | Fujitsu Limited | Event-driven software testing |
DK179823B1 (en) * | 2016-06-12 | 2019-07-12 | Apple Inc. | DEVICES, METHODS, AND GRAPHICAL USER INTERFACES FOR PROVIDING HAPTIC FEEDBACK |
-
2019
- 2019-05-07 CN CN201910375637.1A patent/CN111913868B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377119A (zh) * | 2012-04-23 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种非标准控件自动化测试方法和装置 |
CN105808416A (zh) * | 2014-12-27 | 2016-07-27 | 南车株洲电力机车研究所有限公司 | 一种人机图形交互界面的自动化测试方法和系统 |
CN106681919A (zh) * | 2016-12-22 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 一种用户界面自动化测试方法及系统 |
WO2018120721A1 (zh) * | 2016-12-30 | 2018-07-05 | 上海壹账通金融科技有限公司 | 用户界面的测试方法、系统、电子装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于控件路径的跨设备UI自动化测试方法;侯津,顾乃杰等;计算机系统应用;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111913868A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019179326A1 (zh) | 一种应用界面显示方法、装置及移动设备 | |
CN111177013B (zh) | 日志数据获取方法、装置、计算机设备及存储介质 | |
CN108897659B (zh) | 修改日志级别的方法、装置及存储介质 | |
CN113064823B (zh) | 汽车的零部件功能测试方法、装置及计算机存储介质 | |
CN110839128B (zh) | 拍照行为检测方法、装置及存储介质 | |
CN110059686B (zh) | 字符识别方法、装置、设备及可读存储介质 | |
CN110442521B (zh) | 控件单元检测方法及装置 | |
US11386586B2 (en) | Method and electronic device for adding virtual item | |
CN111752666A (zh) | 窗口显示方法、装置和终端 | |
CN111459466B (zh) | 代码生成方法、装置、设备及存储介质 | |
CN110784370B (zh) | 设备测试的方法、装置、电子设备及介质 | |
CN113763228A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111753606A (zh) | 一种智能模型的升级方法及装置 | |
CN111931712B (zh) | 人脸识别方法、装置、抓拍机及系统 | |
CN111797017B (zh) | 存储日志的方法、装置、测试设备及存储介质 | |
CN109783176A (zh) | 切换页面的方法和装置 | |
CN110263695B (zh) | 人脸部位的位置获取方法、装置、电子设备及存储介质 | |
CN112015612B (zh) | 一种获取卡顿信息的方法及装置 | |
CN109107163B (zh) | 模拟按键检测方法、装置、计算机设备及存储介质 | |
CN110222506A (zh) | 快应用检测方法、装置、设备和存储介质 | |
CN111913868B (zh) | 用户界面的测试方法、装置、系统及存储介质 | |
CN112163677B (zh) | 应用机器学习模型的方法、装置及设备 | |
CN113076452A (zh) | 应用分类的方法、装置、设备及计算机可读存储介质 | |
CN112000576A (zh) | 代码数据的检测方法、装置、设备及存储介质 | |
CN111601114A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |