用户界面的测试方法、装置、电子设备及计算机可读介质
技术领域
本公开涉及计算机应用领域,具体而言,本公开涉及一种用户界面的测试方法、装置、电子设备及计算机可读介质。
背景技术
软件产品进行测试时,一些基本的业务功能和流程在每个版本都需要进行测试,对于这些重复的测试工作可采用自动化测试来完成。在图形用户界面(Graphics UserInterface,GUI)应用程序的自动化测试中,测试者根据对测试用例和GUI应用程序界面的分析,编写测试函数通过界面操作工具对界面进行操作来完成整个测试。
然而,在实际应用中,产品界面众多且因为业务需求经常需要更改用户界面,如更改界面元素的名称等,导致编写测试函数的工作量变得非常大,维护困难。
发明内容
提供该发明信息部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明信息部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开实施例提供了一种用户界面的测试方法,包括以下步骤:
获取当前测试界面的界面元素信息;
根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;资源映射表记录有测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系;
在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试。
第二方面,本公开实施例还提供了一种用户界面的测试装置,包括:
获取模块,用于获取当前测试界面的界面元素信息;
加载模块,用于根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;资源映射表记录有测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系;
测试模块,用于在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试。
第三方面,本公开实施例还提供了一种电子设备,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行根据上述任意实施例所提及的用户界面的测试方法。
第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意实施例所提及的用户界面的测试方法。
本公开提供的技术方案带来的有益效果是:
上述实施例提供的用户界面的测试方法、装置、电子设备及计算机可读介质,通过获取当前测试界面的界面元素信息;根据预先设置的界面信息与界面标识之间的信息映射表,确定当前界面对应的界面标识,并加载界面标识对应的资源映射表;在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试,以解决对测试界面的待测试控件进行修改,导致的测试用例中对应的目标测试用例无法定位到该待测试控件的问题,同时避免对逐一修改测试用例对应的目标测试控件,以使得其与测试界面上的待测试控件的标识相一致而导致的费时费力。本技术方案将修改后的待测试控件与测试用例中对应的目标测试控件建立映射关系,当对修改后的待测试控件进行测试时,将测试用例对应的目标测试控件映射到修改后的待测试控件,以通过目标测试控件对待测试控件进行自动化测试,提高了用户界面测试的效率,降低了维护成本。
本公开附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的用户界面的测试方法的应用场景示意图;
图2是本公开实施例提供的用户界面的测试方法的流程图;
图3是本公开实施例提供的用户界面的测试装置的结构示意图;
图4为本公开实施例提供的适用于用户界面测试的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对装置、模块或单元进行区分,并非用于限定这些装置、模块或单元一定为不同的装置、模块或单元,也并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开提供的用户界面的测试方法、装置、电子设备及计算机可读介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
本领域技术人员应当理解,本公开所称的“应用”以及“应用程序”类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。
本领域技术人员应当理解,本公开所称的用户界面、界面、显示页面等泛指能够用于向智能终端发送控制指令的显示界面,例如,可以是Android/IOS/Windows Phone系统的设置页面中的一个选项(或按键,由应用程序或应用添加其中),也可以是从桌面呼出的通知栏或者交互页面中的一个选项,还可以是应用程序或应用的一个活动组件所构造的页面中的一个选项。
为了更好地阐释本公开的技术方案,下面示出本方案的用户界面的测试方法所可以适用的应用环境。图1为一实施例提供的用户界面的测试方法的应用场景示意图,如图1所示,该应用场景包括终端设备10和服务端20,终端设备10和服务端20通过网络、串口等方式进行连接,以使得服务端20可以访问终端设备10,并对终端设备10进行操作。
其中,终端设备10可以为一个或多个,终端设备10上安装有待测试的应用30,如音视频类应用、社交应用和购物类应用等,对应用30的用户界面进行自动化测试。终端设备10可以为手机、平板、笔记本电脑等设备,还可以是手机模拟器等。终端设备10可以适用于不同的操作系统,如iOS、Android等。服务端20可以为计算机等设备,服务端20可以基于不同的测试框架,如Appium测试框架。当然在其他实施例中,还可以通过其他测试框架进行用户界面测试。
图2是本公开实施例提供的用户界面的测试方法的流程图,该用户界面的测试方法可由电子设备,如用户界面的测试设备来执行。
具体的,如图2所示,该用户界面的测试方法可以包括以下步骤:
S110、获取当前测试界面的界面元素信息。
测试人员可以预先针对不同用户界面的测试编写不同的测试程序,为测试界面进行测试。在本公开的实施例中,获取当前测试界面的界面元素信息,该界面元素信息包括界面元素的ID、文本(text)、类型和可见区域等。
可选的,获取当前测试界面的界面元素信息可以通过以下方式实现:捕获当前测试界面的界面元素,提取界面元素的特征信息作为当前测试界面的界面元素信息。其中,特征信息包括:界面元素的ID、文本、类型和可见区域。对于一个界面元素,ID是元素标识,程序通过ID来找到这些界面元素,文本是这个界面元素显示的内容,类型是指界面元素对应的控件类型,可见区域就是界面元素的显示区域,比如在屏幕上的坐标和大小。
在本实施例中,通过识别出当前测试界面的关键字捕获界面元素,该关键字可以是数字、符号、标签或文本等字符。例如,通过getElementById()函数以根据ID以捕获当前测试界面元素,还可以是通过getElementsByTagName()函数以根据标签捕获界面元素,再可以是通过选择器来捕获界面元素。进一步的,解析所捕获到的界面元素,提取界面元素的特征信息,如ID、文本、类型和可见区域等,得到当前测试界面的界面元素信息。
进一步的,将这些界面元素信息保存到预设文件中,这些界面元素信息用于甄别界面的版本。
S120、根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;资源映射表记录有测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系。
在本实施例中,预先设置的信息映射表存储有不同版本界面的界面标识与对应的界面元素信息之间的映射关系,不同版本界面分别对应唯一的界面标识。
例如,当前测试界面为入口界面,入口界面1.0版本对应界面标识为“入口界面_1.0”,当入口界面的版本升级使得一些界面元素信息发生变化,则可通过捕获版本升级后的界面,如入口界面1.5版本上的界面元素,得到对应的界面元素信息,并将这些界面元素信息保存到对应的文件中,为该文件添加唯一的界面标识,如“入口界面_1.5”。
进一步的,可以将这些不同版本界面对应的界面标识均与“入口界面”关联起来,以表征这些界面标识均属于“入口界面”这同一界面,而该界面分别对应有不同版本的界面标识,如“入口界面_1.0”和“入口界面_1.5”等。
在本公开的实施例中,若当前测试界面的各个界面元素信息均对应于信息映射表中的同一界面标识,则将该界面标识确定为当前测试界面对应的界面标识。
在运行用户界面测试程序以对当前测试界面进行测试时,获取当前测试界面的界面元素信息以判断当前测试界面属于哪个版本的界面。根据信息映射表所记载的各界面元素信息与界面标识的映射关系,当获取到的界面元素信息均指向同一界面标识时,则确定该界面标识为当前测试界面的界面标识,而当前测试界面为该界面标识对应的界面版本,此时,加载该界面版本对应的资源映射表。
对于资源映射表记录,在本公开实施例中,资源映射表记录有测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系。由于每个测试用例反映同一控件不同的场景、条件或经由产品的事件流,在本实施例中,测试界面上的待测试控件和测试用例中的目标测试控件相对应,测试界面上的待测试控件与测试用例中的目标测试控件的控件标识可以相同,如测试界面上的待测试控件为“rb_home”,测试用例中的目标测试控件为“rb_home”,测试界面上的待测试控件与测试用例中的目标测试控件的控件标识也可以不同,如测试界面上的待测试控件为“首页”,测试用例中的目标测试控件为“rb_home”。
S130、在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试。
在本实施例中,资源映射表中存储有当前测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系。例如,对应于“按钮A”这一控件在第一版本的测试界面上对应的待测试控件为“rb_home”,其在测试用例上的目标测试控件也为“rb_home”,在第二版本的测试界面上对应的待测试控件修改为“首页”,在公开实施例中,在测试用例上的目标测试控件“rb_home”和第二版本的测试界面上对应的待测试控件“首页”之间建立映射关系。
在相关技术中,在运行当前测试界面的自动化测试,以对当前测试界面上“按钮A”对应的待测试控件进行测试,其在当前测试界面上的待测试控件为“rb_home”,其对应的测试用例上的目标测试控件也为“rb_home”。由于当前测试界面的版本已经更新,此时,同一个“按钮A”在当前测试界面上的待测试控件被更改,如从“rb_home”修改为“首页”。如果运行该测试用例,则测试用例中的目标测试控件“rb_home”无法识别出当前测试界面的待测试控件“首页”,从而无法定位待测试控件“首页”而无法继续对“按钮A”进行测试。
在本实施例中,此时利用资源映射表中的测试用例中的目标测试控件“rb_home”与当前测试界面上的待测试控件“首页”之间的映射关系,更新当前测试界面上的“按钮A”待测试控件与测试用例中的目标测试用例“rb_home”之间的映射关系,使得测试用例中的目标测试用例“rb_home”自动映射到更新后的当前测试界面上的待测试控件“首页”,再通过“首页”定位“按钮A”,继续执行对“按钮A”的测试。
本公开实施例提供的用户界面的测试方法,通过获取当前测试界面的界面元素信息;根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试,从而避免对测试界面上的待测试控件进行修改时,需要逐一修改测试用例,以使得测试用例中的目标测试控件与待测试控件相一致而导致的费时费力,在本实施例中将修改后的待测试控件与测试用例中对应的目标测试控件建立映射关系,当对修改后的待测试控件进行测试时,将测试用例对应的目标测试控件映射到修改后的待测试控件,以通过目标测试控件对待测试控件进行自动化测试,提高了用户界面测试的效率,降低了维护成本。
为了使本技术方案更为清晰,更为便于理解,下面对本技术方案中的具体的实现过程和方式加以详细的描述。
在本公开实施例中,步骤S130中的利用资源映射表更新当前测试界面的待测试控件与控件标识之间的映射关系,可以包括以下步骤:
S1301、获取用户在当前测试界面上选择的待测试控件,利用资源映射表确定与待测试控件对应的目标测试控件。
在进行用户界面测试前,编写自动化测试程序,并保存起来。通过识别出自动化测试程序中的关键字,以确定当前测试界面的待测试控件以及待测试控件的标识。
在本公开实施例中,将在当前测试界面上识别出的待测试控件上显示的文字作为关键字,例如,控件A上的显示文字为“首页”,确定该控件A为待测试控件以及该控件A的标识为“首页”。
加载当前测试界面对应的资源映射表后,从资源映射表中存储的待测试控件与测试用例中的目标测试控件之间的映射关系中,查找出在测试界面上待测试控件的标识对应在测试用例上的目标测试控件的标识。
例如,资源映射表中记录有“首页”→“rb_home”这一映射关系,通过这一映射关系,则测试界面上的待测试控件对应的标识为“首页”时,确定其在测试用例上的目标测试控件对应的标识为“rb_home”。
S1302、从预设用例映射表中查找出与目标测试控件对应的目标测试用例。
其中,预设用例映射表记录有目标测试控件及其对应的至少一个目标测试用例。
在本实施例中,目标测试控件可以对应有一个或多个目标测试用例,以适用于目标测试控件在不同场景下的测试。目标测试控件“rb_home”对应的分别为点击、长按和连击等测试用例。
S1303、执行目标测试用例以对待测试控件进行自动化测试。
由于当前测试界面的资源映射表中记载有“rb_home”→“首页”的映射关系,运行目标测试控件“rb_home”对应的目标测试用例,以对当前测试界面上的待测试控件“首页”进行自动化测试。
如,分别为点击rb_home、长按rb_home和连击rb_home等测试用例,则会翻译成对当前界面上的待测试控件“首页”进行点击首页、长按首页和连击首页等测试操作,从而避免了将每个测试用例中的“rb_home”均修改为“首页”,提高了用户界面测试效率,降低了维护成本。
需要说明的是,在本实施例中,执行本步骤S120之前可以预先设置信息映射表,该信息映射表存储有不同版本界面的界面标识与对应的界面元素信息之间的映射关系。
在本公开实施例中,信息映射表可以通过以下方式获得:
S1001、获取各版本界面的界面元素信息,将同一版本界面的各界面元素信息与同一预先设置的界面标识建立映射关系。
在对同一界面的版本更迭中,有一些界面元素信息可能发生变化,如某一测试控件的控件标识更改了,或删除或新增一些测试控件。在本实施例中,获取各个版本界面的界面元素信息,将这些界面元素信息保存起来。不同版本界面分别具有唯一的界面标识,将同一版本界面的所有界面元素信息与该版本界面对应的界面标识建立映射关系,以使得查询该映射关系便可得到该界面元素信息对应的界面标识,从而确定这些界面元素信息属于哪个版本界面。
例如,一用户界面具有三个版本,第一个版本界面的界面元素信息包括5个界面元素信息,分别为ABCDE,其界面标识为“界面1.0”;第二个版本界面的界面元素信息包括5个界面元素信息,分别为ACDEF,其界面标识为“界面1.5”;第三个版本界面的界面元素信息包括5个界面元素信息,分别为ACDEG,其界面标识为“界面1.8”。
对于第一个版本界面,将界面元素信息ABCDE均与界面标识“界面1.0”建立映射关系;对于第二个版本界面,将界面元素信息ACDEF均与界面标识“界面1.5”建立映射关系;对于第三个版本界面,将界面元素信息ACDEG均与界面标识“界面1.8”建立映射关系。在本示例中,“界面1.0”、“界面1.5”和“界面1.8”为示例性的界面标识,其可以根据实际情况进行命名。
S1002、将每个版本界面的界面元素信息与界面标识之间的映射关系存储到信息映射表。
将每个版本界面的界面元素信息与其对应的界面标识之间的映射关系汇集起来,存储到信息映射表中。当新增加版本界面时,则将新增加的版本界面的界面元素信息与界面标识之间的映射关系添加到信息映射表中,当删除某一版本界面,则从信息映射表中删除该版本界面的界面元素信息与界面标识之间的映射关系。
还需要说明的是,在本实施例中,执行本步骤S120之前可以预先设置资源映射表,该资源映射表存储有不同控件对应的各控件标识之间的映射关系。
在本公开实施例中,资源映射表可以通过以下方式获得:
S2001、获取各界面标识对应的测试界面上的待测试控件,以及待测试控件对应的测试用例。
S2002、在测试用例中提取出与待测试控件对应的目标测试控件,并与待测试控件建立映射关系。
S2003、将映射关系存储在界面标识对应的资源映射表中,以更新资源映射表。
对于同一界面标识的测试界面,具有一个或多个待测试控件,如A、B、C和D,其分别对应的测试用例上的目标测试控件为a、b、c和d,在A和a、B和b、C和c,以及D和d之间建立映射关系,将映射关系存储到该界面标识对应的资源映射表中。当该测试界面新增了某一待测试控件,如E,其对应的测试用例上的目标测试控件为e,则新建E和e之间的映射关系,并将该映射关系添加到该界面标识对应的资源映射表,以更新资源映射表。
在对同一界面的版本更迭中,有一些界面元素信息可能发生变化,如某一测试控件的控件标识发生更改。在本实施例中,获取同一测试控件在不同版本界面上对应的控件标识,如测试控件1,其在不同版本上对应的控件标识分别为A1和A2,即待测试控件的标识A1,在另一版本上修改为A2,而测试用例上的目标测试控件对应的控件标识为a,由于待测试控件A1和测试用例中的目标测试控件a存在映射关系,当A1改为A2后,则在A1和A2之间新建映射关系,以将A2映射到A1,以便于通过A1查找到与待测试控件A2对应的目标测试控件a。
下面对用户界面的测试装置的相关实施例进行详细阐述。
图3是本公开实施例提供的用户界面的测试装置的结构示意图,该用户界面的测试装置可由电子设备,如用户界面的测试设备来执行。
具体的,如图3所示,该用户界面的测试装置100可以包括:获取模块110、加载模块120和测试模块130。
获取模块110,用于获取当前测试界面的界面元素信息;
加载模块120,用于根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;资源映射表记录有测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系;
测试模块130,用于在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试。
本实施例提供的用户界面的测试装置,通过获取当前测试界面的界面元素信息确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试,从而避免对界面元素的控件标识修改时,逐一修改测试用例的费时费力,提高了用户界面测试的效率,降低了维护成本。
在一实施例中,测试模块130包括:确定单元、查找单元和执行单元;
确定单元,用于获取用户在当前测试界面上选择的待测试控件,利用资源映射表确定与待测试控件对应的目标测试控件;
查找单元,用于从预设用例映射表中查找出与目标测试控件对应的目标测试用例;预设用例映射表记录有目标测试控件及其对应的至少一个目标测试用例;
执行单元,用于执行目标测试用例以对待测试控件进行自动化测试。
在一实施例中,该用户界面的测试装置100还包括:资源映射存储模块,其包括:控件获取单元、映射建立单元和映射更新单元;
控件获取单元,用于获取界面标识对应的测试界面上的待测试控件,以及待测试控件对应的测试用例;
映射建立单元,用于在测试用例中提取出与待测试控件对应的目标测试控件,并与待测试控件建立映射关系;
映射更新单元,用于将映射关系存储在界面标识对应的资源映射表中,以更新资源映射表。
在一实施例中,该用户界面的测试装置100还包括:信息映射存储模块,其包括:信息映射单元和信息映射存储单元;
信息映射单元,用于获取各版本界面的界面元素信息,将同一版本界面的各界面元素信息与同一预先设置的界面标识建立映射关系;
信息映射存储单元,用于将每个版本界面的界面元素信息与界面标识之间的映射关系存储到信息映射表。
在一实施例中,加载模块120包括:标识确定单元,用于若当前测试界面的各个界面元素信息均对应于信息映射表中的同一界面标识,则将界面标识确定为当前测试界面对应的界面标识。
在一实施例中,获取模块110用于捕获当前测试界面的界面元素,提取界面元素的特征信息,得到当前测试界面的界面元素信息。
在一实施例中,特征信息包括界面元素的类型和可见区域,以及界面元素的ID和文本内容的至少一者。
上述提供的用户界面的测试装置可用于执行上述任意实施例提供的用户界面的测试方法,具备相应的功能和有益效果。
下面参考图4,图4为本公开实施例提供的适用于用户界面测试的电子设备的结构示意图,其示出了适于用来实现本公开实施例的电子设备700(如图1所示的终端设备)的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
电子设备包括:存储器以及处理器,其中,这里的处理器可以称为下文的处理装置701,存储器可以包括下文中的只读存储器(ROM)702、随机访问存储器(RAM)703以及存储装置708中的至少一项,具体如下所示:
如图4所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,用户终端、服务器可以利用诸如HTTP(Hyper Text TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
获取当前测试界面的界面元素信息;
根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;资源映射表记录有测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系;
在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取模块还可以被描述为“获取当前测试界面的界面元素信息的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述信息的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述信息的任何合适组合。
根据本公开的一个或多个实施例,提供了一种用户界面的测试方法,包括以下步骤:
获取当前测试界面的界面元素信息;
根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;资源映射表记录有测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系;
在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试。
在一种可能的实现方式中,在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试的步骤包括:
获取用户在当前测试界面上选择的待测试控件,利用资源映射表确定与待测试控件对应的目标测试控件;
从预设用例映射表中查找出与目标测试控件对应的目标测试用例;预设用例映射表记录有目标测试控件及其对应的至少一个目标测试用例;
执行目标测试用例以对待测试控件进行自动化测试。
在一种可能的实现方式中,在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中对应的目标测试控件的步骤之前,还包括:
获取界面标识对应的测试界面上的待测试控件,以及待测试控件对应的测试用例;
在测试用例中提取出与待测试控件对应的目标测试控件,并与待测试控件建立映射关系;
将映射关系存储在界面标识对应的资源映射表中,以更新资源映射表。
在一种可能的实现方式中,根据预先设置的界面元素信息与界面标识的信息映射表,确定当前测试界面对应的界面标识的步骤之前,还包括:
获取各版本界面的界面元素信息,将同一版本界面的各界面元素信息与同一预先设置的界面标识建立映射关系;
将每个版本界面的界面元素信息与界面标识之间的映射关系存储到信息映射表。
在一种可能的实现方式中,根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识的步骤包括:
若当前测试界面的各个界面元素信息均对应于信息映射表中的同一界面标识,则将界面标识确定为当前测试界面对应的界面标识。
在一种可能的实现方式中,获取当前测试界面的界面元素信息的步骤包括:
捕获当前测试界面的界面元素,提取界面元素的特征信息,作为当前测试界面的界面元素信息。
在一种可能的实现方式中,特征信息包括界面元素的类型和可见区域,以及界面元素的ID和文本内容的至少一者。
根据本公开的一个或多个实施例,提供了一种用户界面的测试装置,包括:
获取模块,用于获取当前测试界面的界面元素信息;
加载模块,用于根据预先设置的界面元素信息与界面标识之间的信息映射表,确定当前测试界面对应的界面标识,并加载界面标识对应的资源映射表;资源映射表记录有测试界面上的待测试控件与测试用例中的目标测试控件之间的映射关系;
测试模块,用于在资源映射表出查找当前测试界面上的待测试控件对应在测试用例中的目标测试控件,以利用目标测试控件对待测试控件进行自动化测试。
在一种可能的实现方式中,测试模块包括:确定单元、查找单元和执行单元;
确定单元,用于获取用户在当前测试界面上选择的待测试控件,利用资源映射表确定与待测试控件对应的目标测试控件;
查找单元,用于从预设用例映射表中查找出与目标测试控件对应的目标测试用例;预设用例映射表记录有目标测试控件及其对应的至少一个目标测试用例;
执行单元,用于执行目标测试用例以对待测试控件进行自动化测试。
在一种可能的实现方式中,该用户界面的测试装置还包括:资源映射存储模块,其包括:控件获取单元、映射建立单元和映射更新单元;
控件获取单元,用于获取界面标识对应的测试界面上的待测试控件,以及待测试控件对应的测试用例;
映射建立单元,用于在测试用例中提取出与待测试控件对应的目标测试控件,并与待测试控件建立映射关系;
映射更新单元,用于将映射关系存储在界面标识对应的资源映射表中,以更新资源映射表。
在一种可能的实现方式中,该用户界面的测试装置还包括:信息映射存储模块,其包括:信息映射单元和信息映射存储单元;
信息映射单元,用于获取各版本界面的界面元素信息,将同一版本界面的各界面元素信息与同一预先设置的界面标识建立映射关系;
信息映射存储单元,用于将每个版本界面的界面元素信息与界面标识之间的映射关系存储到信息映射表。
在一种可能的实现方式中,加载模块包括:标识确定单元,用于若当前测试界面的各个界面元素信息均对应于信息映射表中的同一界面标识,则将界面标识确定为当前测试界面对应的界面标识。
在一种可能的实现方式中,获取模块用于捕获当前测试界面的界面元素,提取界面元素的特征信息,作为当前测试界面的界面元素信息。
在一种可能的实现方式中,特征信息包括:特征信息包括界面元素的类型和可见区域,以及界面元素的ID和文本内容的至少一者。
根据本公开的一个或多个实施例,提供了一种电子设备,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据所述的用户界面的测试方法。
根据本公开的一个或多个实施例,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现所述的用户界面的测试方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。