一种界面测试方法、装置、设备及存储介质与流程

文档序号:25279782发布日期:2021-06-01 17:25阅读:92来源:国知局
一种界面测试方法、装置、设备及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种界面测试方法、装置、设备及存储介质。



背景技术:

随着计算机技术的飞速发展,计算机软件的规模和复杂度均有大幅提升。为了保证软件产品的最终质量,在软件开发的过程中,需要对软件产品进行测试以达到质量控制的目标。

日常软件研发过程中,因不同语言具有不同的字符特性,软件切换语言后语句的长短会发生改变,带来大量的界面展示问题。相关的技术方案中,软件切换语言的适配测试工作往往需要大量人工来检测,主要是通过人工检查或者获取控件文本内容,来检查判断软件切换语言后界面内容展示是否正常。

相关技术中,软件切换语言的适配测试的测试效率低、测试成本高。因此,需要提供更可靠或更有效的方案。



技术实现要素:

本申请提供了一种界面测试方法、装置、设备及存储介质,能够有效提升界面测试效率,降低测试成本。

根据本申请的一个方面,提供了一种界面测试方法,所述方法包括:

确定待测试界面对应的界面图像;

获取对所述界面图像进行文字识别处理得到的识别文本内容;

获取所述界面图像中界面元素对应的目标文本内容;

基于所述识别文本内容与所述目标文本内容之间的差异,得到所述待测试界面的测试结果。

根据本申请的一个方面,提供了一种界面测试装置,所述装置包括:

图像确定模块,用于确定待测试界面对应的界面图像;

识别文本获取模块,用于获取对所述界面图像进行文字识别处理得到的识别文本内容;

目标文本获取模块,用于获取所述界面图像中界面元素对应的目标文本内容;

结果生成模块,用于基于所述识别文本内容与所述目标文本内容之间的差异,得到所述待测试界面的测试结果。

根据本申请的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述界面测试方法。

根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述界面测试方法。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述界面测试方面的各种可选实现方式中提供的方法。

本申请提供的界面测试方法、装置、设备及存储介质,具有如下技术效果:

通过获取待测试界面的文本识别内容以及待测试界面中各元素实际配置的目标文本内容,用以检查比对界面展示情况和实际配置情况,进而根据两者之间的差异确定待测试界面的测试结果,以达到自动检查的目的。本申请实施例提供的技术方案能够像用户真实看到界面一样,准确发现界面展示存在的问题,减少漏测,体现“所见即所得”的测试思想。并且能通过自动化的方式,缩减测试人力成本,提升测试效率。

附图说明

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

图1是本申请实施例提供的一种实施环境的示意图;

图2是本申请实施例提供的一种界面测试方法的流程示意图;

图3示例性示出了一种界面图像的示意图;

图4示例性示出了一种界面图像的示意图;

图5是本申请实施例提供的另一种界面测试方法的流程示意图;

图6示例性示出了一种界面图像的示意图;

图7示例性示出了一种语言压缩包文件的示意图;

图8示例性示出了一种界面图像的示意图;

图9示例性示出了一种界面图像的示意图;

图10是本申请一个实施例提供的界面测试装置的框图;

图11是本申请实施例提供的一种实现界面测试方法的计算机设备的硬件结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。

多语言测试,是指应用在多个使用不同语言的国家发布,则必须对多种语言支持的一种场景测试。例如,在应用市场上发布一个应用程序以提供给全球用户下载,那么就需要支持英语、泰语、韩语、阿拉伯语等等不同国家的语言。

光学字符识别(opticalcharacterrecognition,ocr),是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。除了ocr以外,通常还有另外两个相关的专有名词——dar和str。其中,dar(documentanalysisandrecognition,文档图像分析和识别)是文档图像处理领域的一个更宽泛的概念;str(scenetextrecognition,场景文字识别)主要针对自然场景中文字的检测与识别,是ocr的一个重要分支。基于深度学习的ocr方法将一些繁杂的流程分成两个主要步骤,一个是文本检测(主要用于定位文本的位置),另一个是文本识别(主要用于识别文本的具体内容)。

文字检测,例如先对图像设置特征金字塔,然后使用滑动窗口进行扫描,之后进入手动提取特征阶段(swt、mser、hog等),再通过滑动窗口提取分类,最后汇总为文本区域。文本检测也衍生出了独有的方法,但都在物体检测的框架体系之内,主要包含:基于候选框(anchor)的文本检测、基于语义分割(segmentation)的文本检测,以及基于两种方法的混合方法(hybrid)。基于候选框的方式是首先预生成若干候选框,然后回归坐标和分类,最后经过nms得到最终的检测结果。基于语义分割的基本方式是通过fpn直接进行像素级别的语义分割,然后进行后处理得到相关的坐标即可。

文字识别的目标是对定位好的文字区域进行识别,主要解决的是将一串文字图片转录为对应的字符的问题。

自动化测试,一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。自动化测试要解决的最主要问题之一就是成本问题。从最早提出自动化测试的思想,到自动化测试技术发展到第四代,其问题核心点就在成本上,这个成本可以是时间成本,也可以是人力成本。将ai引入自动化测试,也是想有效地解决自动化测试中的成本问题。

本申请技术方案涉及人工智能技术领域和云技术领域,下面对此进行介绍说明。

ai(artificialintelligence,人工智能)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

计算机视觉技术(computervision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。

请参考图1,其示出了本申请一个实施例提供的一种实施环境的示意图。该实施环境中包括至少一个计算机设备,如终端120、网络140和服务器160。

终端120可以是智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmentedreality,ar)/虚拟现实(virtualreality,vr)设备、智能可穿戴设备等类型的电子设备。本申请实施例中电子设备上运行的操作系统可以包括但不限于安卓系统、ios系统、linux、windows等。终端120可以是需要进行界面测试的终端。

服务器160可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器(云计算服务中心)。终端120可以通过网络140与服务器160相连。网络140可以是有线网络或无线网络。可选地,服务器160用于为终端120提供后台服务。可选地,服务器160是用于为终端120提供界面测试服务。

可选地,服务器160同时为多个终端120提供后台服务。终端120以及服务器160可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

以下介绍本申请提供的界面测试方法,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或设备执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

请参考图2,其示出了本申请实施例提供的一种界面测试方法的流程示意图。该方法可以包括以下几个步骤(210~240)。

步骤210,确定待测试界面对应的界面图像。

待测试界面是指目标应用中等待测试的应用界面。目标应用是与待测试界面对应的应用。

界面图像是指待测试界面中部分或者全部图像。界面图像可以是任意形状,例如三角形、矩形、六边形等,本申请实施例对界面图像的形状不作限定,可根据实际测试需求选定界面图像的形状。可选地,通过截取待测试界面,生成界面图像。可选地,界面图像包括屏幕截图。其中,可以以像素为单位对待测试界面进行截取或者裁剪,界面图像的大小可根据实际需求确定,界面图像的大小可以是固定尺寸,也可以是任意尺寸。

在一种可能的实施方式中,界面图像为待测试界面中包括文本内容的部分图像,此种方式下,对待测试界面的整个屏幕图像进行文本检测,确定待测试界面中各文本的位置,基于各文本的位置对待测试界面进行截取,得到待测试界面对应的至少一个界面图像,每个界面图像中包括至少一个文本。上述截取过程中,可以只对包含文本内容的部分进行截取,以减小界面图像的尺寸,降低测试计算量,即待测试界面中包含文本内容的区域才是本申请的界面检测方法感兴趣的区域。可选地,对一个待测试界面可截取出多个界面图像,各界面图像中的文本内容可以是重复的,也可以不重复。针对界面图像进行界面测试,可以提升检测速度,也可以提升检测准确性,降低版面分析难度,使得识别出的文本更容易排列且易于保证排列的准确性。

可选地,通过调用pil(pythonimaginglibrary,python图像处理库)截取待测试界面,生成界面图像。在一种可能的实施方式中,先确定截取顶点在待测试界面中的坐标,然后根据截取顶点的坐标值对待测试界面进行截取。在一种可能的实施方式中,先确定裁剪范围,然后根据裁剪范围对待测试界面进行截取。

可选地,对待测试界面进行图像分割处理,确定待测试界面对应的界面图像。

步骤220,获取对界面图像进行文字识别处理得到的识别文本内容。

对界面图像进行文字识别处理,得到文字识别结果。上述文字识别结果是指界面图像经过文字识别处理后得到的识别结果,文字识别结果包括但不限于从界面图像中识别出的文本内容、文本位置、文本样式等信息。

获取文字识别结果中的文本内容,得到界面图像对应的识别文本内容。

根据识别文本内容的位置信息,以及界面图像中界面元素的位置信息,确定文字识别结果中的文本内容与界面图像中界面元素之间的对应关系。

根据界面图像中各界面元素的位置信息,对各界面元素在文字识别结果中对应的文本内容进行排列拼接,得到识别文本内容。

在一种可能的实施方式中,识别文本内容还可以是各界面元素对应的文本,未经过上述拼接过程,各文本之间是独立的,便于后续步骤中以界面元素为单位逐一对比。

一种可能的实施方式中,上述文字识别处理过程如下。

1、图像输入:对于不同的图像来说,因为有着不同的格式和压缩方式,所以需要使用不同的方法进行解码。

2、图像预处理:主要包括二值化、去噪声、倾斜较正等图像预处理方法。通常,屏幕图像一般都是彩色图像,彩色图像所含信息量巨大,常含有很多与文字无关的信息,所以对于图像的内容,需要进行简单的前景与背景分离,即先对彩色图像进行处理,使图像只包含前景信息与背景信息。简单地将前景信息定义为黑色,背景信息定义为白色,得到界面图像对应的二值化图。对于不同场景下的文字,其图像噪声也是不同的,需要根据噪声的特征进行去噪。很多情况下,获得的文字都是比较随意的,不可避免地会产生倾斜,这就需要在识别之前先对相关的内容进行校正。

3、版面分析:对图像中文本分段落、分行的过程,称为版面分析。由于实际文档的多样性、复杂性,目前还没有一个固定、统一的切割模型。

4、字符切割:因为需要对每个字做识别,所以需要将版式的文字切割成一个个单字,以用于后续识别器的识别。

5、字符识别:该研究在比较早的时期就有模板匹配,后来以特征提取为主。文字的位移,笔画的粗细、断笔、粘连、旋转等因素极大地增加了特征提取的难度。

6、版面恢复:人们希望识别后的文字,仍然像原图片那样排列着,保持段落、位置和顺序都不变地进行输出。

步骤230,获取界面图像中界面元素对应的目标文本内容。

从目标应用的语言配置文件中查找界面图像中界面元素对应的存储文本,根据界面元素对应的存储文本生成目标文本内容,目标文本内容为各界面元素应该在界面中加载显示的内容,目标应用是待检测界面对应的应用。例如,界面元素为文本显示框,语言配置文件中记录了该文本显示框显示的文本内容是什么,即语言配置文件中存储着该文本显示框对应的存储文本。目标文本内容包括各界面元素对应的存储文本,在形式上,目标文本内容既可以是多条存储文本,也可以是各界面元素对应的存储文件经过拼接后得到的一条文本记录。

界面元素是指界面中显示的对象,例如文本框、输入框、选项、图标等。在应用中,界面元素都有其自身的显示位置,可以通俗理解为界面元素都是按照固定点位在界面中显示的,并且界面元素在应用中都有相对唯一的标识名称。

在一种可能的实施方式中,步骤230可通过如下步骤(231-233)去实现。

步骤231,获取目标应用的语言配置文件。

语言配置文件用于存储目标应用在各语言下的文本配置信息。

步骤232,从语言配置文件中获取与待测试界面所使用语言对应的语言配置文档。

语言配置文档存于语言配置文件中,语言配置文档用于存储目标应用在语言配置文档对应的语言下的文本配置信息。

步骤233,在语言配置文档中查找得到与界面图像中各界面元素的标识对应的存储文本。

步骤240,基于识别文本内容与目标文本内容之间的差异,得到待测试界面的测试结果。

识别文本内容是对待测试界面进行文字识别得到的文本,而目标文本内容是待测试界面应该加显示的文本。便于理解,这里将前者比作实际值,后者比作期望值,期望值表征待测试界面应该去显示的内容,而实际值表征待测试界面实际的文本显示情况,可通过将两者进行比较来判定待测试界面中文本显示情况。若实际值与期望值之间有差异(不一致)或者差异大于最大差异范围,则说明待测试界面中的文本显示出现问题,未能够按照预设的加载内容去显示,或者是按照预设的加载内容显示后出现了文本重叠等显示问题;若实际值与期望值无差异(一致),则证明待检测界面中的文本是正常显示的,用户看到的内容就是界面应该加载的内容。

在一种可能的实施方式中,上述步骤240可通过如下步骤(241-243)实现。

步骤241,将识别文本内容与目标文本内容进行对比处理。

步骤242,若识别文本内容与目标文本内容的对比结果为相同,则记录测试结果为正常。

步骤243,若识别文本内容与目标文本内容的对比结果为不同,则记录测试结果为异常。

可选地,遍历界面图像中各界面元素,将界面元素对应的识别文本内容与其对应的目标文本内容进行对比,得到各界面元素的对比结果,直至各界面元素遍历完成,基于各界面元素的对比结果生成界面图像的对比结果。

在一种可能的实施方式中,上述步骤240之间还存在以下步骤。

步骤250,对界面图像中界面元素对应的目标文本内容进行拼接处理,得到拼接文本内容。

可选地,根据界面图像中各界面的元素的排列位置,对界面图像中界面元素对应的目标文本内容进行拼接处理,得到拼接文本内容。

相应的,上述步骤240还可通过如下步骤(241-243)实现。

步骤241,将识别文本内容与拼接文本内容进行对比处理。

步骤242,若识别文本内容与拼接文本内容的对比结果为相同,则记录测试结果为正常。

步骤243,若识别文本内容与拼接文本内容的对比结果为不同,则记录测试结果为异常。

可根据测试结果确定出界面图像中异常显示的根源,例如,可快速定位界面图像中显示有重叠的界面元素,进而导致识别得到的文本与存储的文本内容不一致。

在一个示例中,如图3所示,其示例性示出了一种界面图像的示意图。图3(a)是在目标应用切换语言为英语后的界面图像,其中包括文本显示框31以及文本编辑展示控件32。语言为英语时,文本显示框31的属性信息可参考图3(b),其示出了文本显示框31对应的显示文本为“displayname(显示名称)”。同样,语言为英语时,文本编辑展示控件32的属性信息可参考图3(c),其示出了文本编辑展示控件32对应的显示文本为“testingissointeresting(测试很有趣)”。若对图3(a)进行文字识别处理,可得到相应的识别文本内容为“displaynametestingissointeresting(显示名称测试很有趣)”,与文本显示框31以及文本编辑展示控件32对应的存储文本一致,此对比结果可说明图3(a)中文本显示框31以及文本编辑展示控件32均为正常显示,图3(a)也证明了这一点。

在另一个示例中,如图4所示,其示例性示出了一种界面图像的示意图。图4(a)是上述图3(a)在目标应用切换语言为西班牙语后的界面图像,其中包括文本显示框31以及文本编辑展示控件32。语言为西班牙语时,文本显示框31的属性信息可参考图4(b),其示出了文本显示框31对应的显示文本为“nombreparamostrar(显示名称)”。同样,语言为西班牙语时,文本编辑展示控件32的属性信息可参考图4(c),其示出了文本编辑展示控件32对应的显示文本为“testingissointeresting(测试很有趣)”。因文本编辑展示控件32中显示的内容是用户自行定义编辑的,所以在目标应用进行语言切换前后,文本编辑展示控件32中显示的内容是不会发生改变的;而文本显示框31中显示的内容是目标应用中设定好的,用于向用户展示目标应用中的功能信息等,方便用户使用,所以在目标应用切换语言时,其文本内容也会切换为相应的语言下的文本内容。从图4(a)中的区域41可以清楚地看到,文本显示框31中显示的内容与文本编辑展示控件32中显示的内容发生了重叠,此种情况便可通过本申请实施例提供的界面测试方法,对图4(a)进行文字识别处理得到相应的识别文本内容“nombreparamostrartingissointeresting(显示名xxx很有趣,mostrarting并不是正确的西班牙语词汇,是由于“mostrar(显示)”和“testing(测试)”重叠而识别出的错误结果,这里用xxx替代翻译)”,再将图4(a)中文本显示框31以及文本编辑展示控件32对应的识别文本内容,与文本显示框31以及文本编辑展示控件32各自属性信息中存储的文本内容进行对比,从不一致的对比结果便可确定文本显示框31与文本编辑展示控件32之间存在异常显示问题,并生测试结果进行记录。

综上所述,本申请实施例提供的技术方案,通过获取待测试界面的文本识别内容以及待测试界面中各元素实际配置的目标文本内容,用以检查比对界面展示情况和实际配置情况,进而根据两者之间的差异确定待测试界面的测试结果,以达到自动检查的目的。本申请实施例提供的技术方案能够像用户真实看到界面一样,准确发现界面展示存在的问题,减少漏测,体现“所见即所得”的测试思想。并且能通过自动化的方式,缩减测试人力成本,提升测试效率。

请参考图5,其示出了本申请实施例提供的另一种界面测试方法的流程示意图。该方法可以包括以下几个步骤(501~513)。

步骤501,获取待测试界面中的界面元素组合。

上述界面元素组合包括至少一个界面元素。可按照预设的分组规则对界面元素进行分组,仅将有可能出现文本重叠显示问题的界面元素分在一组进行检测,减少测试的计算量。可选地,上述分组规则也可是智能生成的,可根据待测试界面的版面样式自行设定。

步骤502,获取界面元素组合中界面元素的位置信息。

步骤503,根据位置信息,在待测试界面中截取界面图像。

步骤504,发送文字识别请求。

文字识别请求包括界面图像。

步骤505,接收界面图像对应的文字识别结果。

步骤506,从文字识别结果中提取得到识别文本内容。

可选地,通过正则表达式对文字识别结果中文本内容部分进行提取,拼接为字符串,生成最终参与对比的实际值,即得到识别文本内容。

上述步骤504-506为上文实施例中步骤220的一种实施方式,待测试流程自动执行进入被测业务界面(待测试界面)后,利用预设的设备截图方法保存业务界面图片,然后通过接口向服务器或者本地设备中另外的应用服务,发送携带有识别图像的文字识别请求进行ocr识别,待相应设备识别后返回识别结果。可选地,通过接口服务地址调用相应的文字识别处理服务,文字识别请求中除携带需要识别的界面图像之外,还包括测试业务名称以及测试业务接口等信息。上述设备截图方法包括通过方法参数截取全部屏幕图像或者截取自定义范围的屏幕图像,上述方法参数的一种定义方式为(left,upper,right,lower),其中left(左)、right(右)分别指距离最左侧像素的距离,upper(上)、lower(下)分别指距离最上侧像素的距离,实际上也可理解为确定截取图像对角线上的两个顶点的点坐标。

在一个示例中,如图6所示,其示例性示出了一种界面图像的示意图。其中,图6(a)-图6(b)是不同语言下截取待检测界面得到的界面图像,其中包括三个操作控件,图6(a)为西班牙语,图6(b)为法语,图6(c)为德语,图6(d)为葡萄牙语,图6(e)为英语。通过对上述图6(a)-图6(b)进行文字识别处理得到结果分别是“inicionavegarsiguiendo(主页浏览跟随)”、“accueilnaviguersuivi(主页浏览跟随)”、“startseitedurchsuchenfolgend(主页浏览跟随)”、“paginainicialprocucrarseguindo(主页浏览跟随)”、“homebrowsefollowing(主页浏览跟随)”。可见,图6(a)-图6(b)各自的识别文字内容与图6(a)-图6(b)中显示的文本内容一致。

步骤507,发送文本配置信息的获取请求。

文本配置信息用于表征目标应用对应的界面中所加载显示的文本内容,目标应用是待检测界面对应的应用。

向业务管理端的接口发送文本配置信息的获取请求,获取请求中包括相应的请求参数,请求参数用于表征请求内容。例如,请求参数中可以包括客户端信息(如web,android,ios,h5等)、发布版本信息(如语言版本号,默认为最新的语言版本号)以及格式信息(返回文件格式的格式,如json、xlsx等,默认json)。

步骤508,接收文本配置信息。

通常情况下,产品人员可通过业务管理端配置应用中各界面中各界面元素对应的不同语言的语言内容,并可通过语言压缩包的形式上传至业务管理端,也可通过表格语言包的形式上传至管理端。目标应用在登录时会从业务管理端拉取最新语言包,每次用户在设置中切换语言的时候也会请求更新语言包,并在短时间等待后,完成切换。

业务管理端接收上述文本配置信息的请求后会返回记录有文本配置信息的语言压缩包,该语言压缩包中可以包括目标应用在各语言下的文本配置信息。在一个示例中,如图7所示,其示例性示出了一种语言压缩包文件的示意图。其中,语言压缩包文件夹70中包括各语言的语言配置文件夹,如图7示出的语言1的语言配置文件夹71、语言2的语言配置文件夹72、语言3的语言配置文件夹73、语言4的语言配置文件夹74、语言5的语言配置文件夹75以及语言6的语言配置文件夹76。

步骤509,根据界面图像中界面元素的标识信息,从文本配置信息中获取目标文本内容。

可选地,对上述语言压缩包进行解压缩处理。解压缩后,获取目标语言的对应的语言文件夹下的语言配置文档(json格式),从该语言配置文档中获取界面元素对应的文本内容值。获取界面元素对应的文本内容值后,继续拼接用户自定义设置的文本内容,生成最终参与比对的目标文本内容。可选地,用户自定义设置的文本内容不会随着目标应用的语言切换而改变。

在一种实施方式中,自动化测试脚本通过封装的存储文本获取方法,从业务管理端(为目标应用提供后台服务的服务器)直接获取界面元素对应的存储文本内容,由业务管理端从语言压缩包中的目标语言的语言配置文档中获取对应界面元素的文本内容值。上述步骤中涉及的请求业务接口因为各个产品实现方案不同,不具有共性,可根据实际情况实现,本申请实施例对此不作限制。

同时,上述步骤507-508为上文实施例中步骤230的一种实施方式。

可选地,上述步骤504-506与步骤507-508在测试流程上为并行处理关系,无先后顺序,计算机设备可并行处理,提升测试速度。

步骤510,对界面图像中界面元素对应的目标文本内容进行拼接处理,得到拼接文本内容。

步骤511,将识别文本内容与拼接文本内容进行对比处理。

步骤512,若识别文本内容与拼接文本内容的对比结果为相同,则记录测试结果为正常。

步骤513,若识别文本内容与拼接文本内容的对比结果为不同,则记录测试结果为异常。

最终通过判断比对上述两种文本内容来达到自动检查目的。

此外,为了排除是文字识别不准确的原因,可修改某一界面元素的文本内容使界面正常显示,以作为对比项。在一个示例中,如图8所示,其示例性示出了一种界面图像的示意图。图8(a)是将上文实施例中图4(a)中文本编辑展示控件32的文本内容进行修改得到的界面图像(语言仍为西班牙语)。此时,文本显示框31的属性信息可参考图8(b),其示出了文本显示框31对应的显示文本为“nombreparamostrar(显示名称)”。同样,文本编辑展示控件32的属性信息可参考图8(c),其示出了文本编辑展示控件32对应的显示文本为“testingveryhappy(测试很开心)”。最终对图3(a)、图4(a)以及图8(a)分别按照本申请实施例提供的界面测试方法进行自动化测试,通过将识别文本内容与拼接文本内容自动对比,得到的测试结果如表1所示。

表1

在一种可能的实施方式中,通过本申请实施例提供的检测方法,还可能发现一些平时功能测试中没有注意到的问题,例如在将待检测界面设置为某种语言时,会出现图标与文本重叠的情况。在一个示例中,如图9所示,其示例性示出了一种界面图像的示意图。其中,文本显示框91中显示的文本内容(法语)被图标92遮挡住了。此种情况下,图9的识别文本内容为“…porte-monna502…(门xxx502,monna不是完整的法语词汇,是由于“monnaie(货币)”被图标92遮挡后识别出的错误结果,这里用xxxx替代翻译)”,而图9对应的拼接文本内容为“…porte-monnaie502…(钱包502)”。可见,相比于拼接文本内容,识别文本内容中缺少“ie”两个字母。根据图9可知,拼接文本内容与识别文本内容不一致的原因在于,“ie”两个字母被图标92遮挡住了。

在一种可能的实施方式中,待测试界面对应的目标应用包括多个应用界面,若要对目标应用中的各个界面进行测试,可按照顺序对各界面进行自动循环检测,比如进行如下步骤。

步骤10,遍历各待检测界面。

步骤20,在遍历至任一个待检测界面的情况下,从确定待测试界面对应的界面图像的步骤(步骤210)开始执行。

步骤30,在各待检测界面均遍历完成的情况下,得到各待测试界面的测试结果。

在一种可能的实施方式中,待测试界面对应的目标应用包括多种语言,待检测界面包括多个应用界面。若要对目标应用在各语言下的各个界面进行测试,可按照顺序对各语言下的各个界面进行自动循环检测,比如进行如下步骤:

步骤40,遍历各语言。

在遍历测试各语言前,设置待测语言的种类,生成待测语言集合。对待测语言集合中的各语言按顺序进行遍历;此外还需确定待测设备以及待测试应用(即目标应用);最后启动待测应用进程,开始遍历各语言。例如,在设置启动代码时,可定义要测试的语言列表,其中包括待测语言及其顺序。比如,language(语言)=[’语言1’,’语言2’,’语言3’,’语言4’,’语言5’],language便是要测试的语言列表。可选地,测试流程可以同时对不同的待测设备执行,兼容范围更广泛。

步骤50,设置目标语言为待测应用的使用语言。

目标语言是指待测试语言集合中任一语言。

步骤60,在遍历至任一种语言的情况下,将目标应用中应用界面对应的语言切换至目标语言。

步骤70,从遍历各待检测界面的步骤开始执行。

步骤80,在各语言均遍历完成的情况下,得到各待测试界面在各语言下的测试结果。

步骤90,基于各待测试界面在各语言下的测试结果,生成目标应用的多语言切换测试记录。

综上所述,本申请实施例提供的技术方案,通过界面元素的位置确定出待检测界面中需要进行测试的区域,然后再获取确定出的图像区域的识别文本内容以及拼接文本内容,进而将两者进行比对得出待测试界面的测试结果,在达到自动检查的目的的同时,有效减少测试计算量,提升界面测试效率。

另外,本申请实施例提供的技术方案,能够循环遍历测试目标应用在不同语种下的各个界面,有效提升软件切换语言的适配测试效率,大幅降低测试人工成本。能够快速找出软件切换语言时,因各语言间字符与语法的差异带来的文本重叠问题以及版面显示异常问题的位置。

请参考图10,其示出了本申请一个实施例提供的界面测试装置的框图。该装置具有实现上述界面测试方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置1000可以包括:图像确定模块1010、识别文本获取模块1020、目标文本获取模块1030以及结果生成模块1040。

图像确定模块1010,用于确定待测试界面对应的界面图像。

识别文本获取模块1020,用于获取对所述界面图像进行文字识别处理得到的识别文本内容。

目标文本获取模块1030,用于获取所述界面图像中界面元素对应的目标文本内容。

结果生成模块1040,用于基于所述识别文本内容与所述目标文本内容之间的差异,得到所述待测试界面的测试结果。

在示例性实施例中,所述识别文本获取模块1020包括:

识别请求发送单元,用于发送文字识别请求,所述文字识别请求包括所述界面图像。

识别结果接收单元,用于接收所述界面图像对应的文字识别结果。

识别文本提取单元,用于从所述文字识别结果中提取得到所述识别文本内容。

在示例性实施例中,所述目标文本获取模块1030包括:

文本请求发送单元,用于发送文本配置信息的获取请求,所述文本配置信息用于表征目标应用对应的界面中所加载显示的文本内容,所述目标应用是所述待检测界面对应的应用。

文本配置接收单元,用于接收所述文本配置信息。

文本内容获取单元,用于根据所述界面图像中界面元素的标识信息,从所述文本配置信息中获取所述目标文本内容。

在示例性实施例中,所述结果生成模块1040包括:

文本内容对比单元,用于将所述识别文本内容与所述目标文本内容进行对比处理。

测试结果记录单元,用于若所述识别文本内容与所述目标文本内容的对比结果为相同,则记录测试结果为正常;若所述识别文本内容与所述目标文本内容的对比结果为不同,则记录测试结果为异常。

在示例性实施例中,所述装置1000还包括:

文本拼接模块,用于对所述界面图像中界面元素对应的目标文本内容进行拼接处理,得到拼接文本内容。

所述文本内容对比单元,还用于将所述识别文本内容与所述拼接文本内容进行对比处理。

所述测试结果记录单元,还用于若所述识别文本内容与所述拼接文本内容的对比结果为相同,则记录测试结果为正常;若所述识别文本内容与所述拼接文本内容的对比结果为不同,则记录测试结果为异常。

在示例性实施例中,所述装置1000还包括:

元素组合获取模块,用于获取所述待测试界面中的界面元素组合,所述界面元素组合包括至少一个界面元素。

元素位置获取模块,用于获取所述界面元素组合中界面元素的位置信息;

所述图像确定模块,还用于:

根据所述位置信息,在所述待测试界面中截取所述界面图像。

在示例性实施例中,所述待检测界面包括多个应用界面,所述装置1000还包括:

界面遍历模块,用于遍历各待检测界面。

所述图像确定模块1010,还用于在遍历至任一个待检测界面的情况下,从所述确定待测试界面对应的界面图像的步骤开始执行。

所述结果生成模块1040,还用于在所述各待检测界面均遍历完成的情况下,得到所述各待测试界面的测试结果。

在示例性实施例中,所述待测试界面对应的目标应用包括多种语言,装置1000还包括:

语言遍历模块,用于遍历各语言。

语言切换模块,用于在遍历至任一种语言的情况下,将所述目标应用中应用界面对应的语言切换至所述目标语言。

界面遍历模块,用于从所述遍历各待检测界面的步骤开始执行;

所述结果生成模块1040,还用于在所述各语言均遍历完成的情况下,得到所述各待测试界面在所述各语言下的测试结果。

记录生成模块,用于基于所述各待测试界面在所述各语言下的测试结果,生成所述目标应用的多语言切换测试记录。

综上所述,本申请实施例提供的技术方案,通过获取待测试界面的文本识别内容以及待测试界面中各元素实际配置的目标文本内容,用以检查比对界面展示情况和实际配置情况,进而根据两者之间的差异确定待测试界面的测试结果,以达到自动检查的目的。本申请实施例提供的技术方案能够像用户真实看到界面一样,准确发现界面展示存在的问题,减少漏测,体现“所见即所得”的测试思想。并且能通过自动化的方式,缩减测试人力成本,提升测试效率。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述界面测试方法。存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。

图11是本申请实施例提供的一种实现界面测试方法的计算机设备的硬件结构框图。如图11所示,该计算机设备1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1110(处理器1110可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器1130,一个或一个以上存储应用程序1123或数据1122的存储介质1120(例如一个或一个以上海量存储设备)。其中,存储器1130和存储介质1120可以是短暂存储或持久存储。存储在存储介质1120的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器1110可以设置为与存储介质1120通信,在计算机设备1100上执行存储介质1120中的一系列指令操作。计算机设备1100还可以包括一个或一个以上电源1160,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1140,和/或,一个或一个以上操作系统1121,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

输入输出接口1140可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机设备1100的通信供应商提供的无线网络。在一个实例中,输入输出接口1140包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1140可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机设备1100还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。

在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时以实现上述界面测试方法。

可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、固态硬盘(ssd,solidstatedrives)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。其中,随机存取记忆体可以包括电阻式随机存取记忆体(reram,resistancerandomaccessmemory)和动态随机存取存储器(dram,dynamicrandomaccessmemory)。

在示例性实施例中,还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述界面测试方面的各种可选实现方式中提供的方法。

由上述本申请提供的界面测试方法、装置、服务器或存储介质的实施例可见,本申请中通过获取待测试界面的文本识别内容以及待测试界面中各元素实际配置的目标文本内容,用以检查比对界面展示情况和实际配置情况,进而根据两者之间的差异确定待测试界面的测试结果,以达到自动检查的目的。本申请实施例提供的技术方案能够像用户真实看到界面一样,准确发现界面展示存在的问题,减少漏测,体现“所见即所得”的测试思想。并且能通过自动化的方式,缩减测试人力成本,提升测试效率。

另外,本申请实施例提供的技术方案,能够循环遍历测试目标应用在不同语种下的各个界面,有效提升软件切换语言的适配测试效率,大幅降低测试人工成本。能够快速找出软件切换语言时,因各语言间字符与语法的差异带来的文本重叠问题以及版面显示异常问题的位置。

需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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

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