界面测试方法及装置与流程

文档序号:11407040阅读:150来源:国知局
界面测试方法及装置与流程

本发明涉及软件测试技术领域,具体而言,涉及一种界面测试方法及装置。



背景技术:

软件测试即在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试是伴随着软件的产生而产生的。随着互联网加时代的到来,软件测试的市场需求也越来越大,人工测试显然已经满足不了市场的需求。由此自动化测试悄然兴起。当前的自动化测试大致分为跨平台和不跨平台两类,其中不跨平台的自动化测试需要针对不同的平台设计不同自动化测试框架,显然造价成本极高,时间消耗极大;跨平台的自动化测试框架在实现中需要依赖第三方的数据驱动框架,导致自动化测试的实现成本及维护成本增加。维护难度加大。



技术实现要素:

本发明的目的在于提供一种界面测试方法,用以改善上述问题。

本发明的另一目的在于提供一种界面测试装置,用以改善上述问题。

为了实现上述目的,本发明实施例采用的技术方案如下:

本发明实施例提供一种界面测试方法,应用于与测试终端通信连接的测试主机,所述测试主机中安装一自动测试框架,所述测试终端中运行有待测试的客户端,所述自动测试框架包括预设置的数据获取函数,所述界面测试方法包括:通过所述数据获取函数获取所述客户端的业务需求;对所述客户端的待测试界面进行检测,获得所述待测试界面的页面元素及所述页面元素对应的定位数据;根据所述业务需求及所述页面元素,生成测试用例;基于所述测试用例及所述定位数据对所述待测试界面上的页面元素进行功能测试,得到所述待测试界面的测试结果;根据测试结果生成所述测试报告。

本发明还提供一种界面测试装置,应用于与测试终端通信连接的测试主机,所述测试主机中安装一自动测试框架,所述测试终端中运行有待测试的客户端,所述自动测试框架包括预设置的数据获取函数,所述装置包括:数据获取模块,用于通过所述数据获取函数获取所述客户端的业务需求;页面元素检测模块,用于对所述客户端的待测试界面进行检测,以获得所述待测试界面的页面元素及所述页面元素对应的定位数据;测试用例组装模块,用于根据所述业务需求及所述页面元素,生成测试用例;测试执行模块,用于基于所述测试用例及所述定位数据对所述待测试界面上的页面元素进行功能测试,得到所述待测试界面的测试结果;报告生成模块,用于根据测试结果生成所述测试报告。

与现有技术相比,本发明提供的一种界面测试方法及装置。应用于与测试终端通信连接的测试主机,所述测试主机中安装一自动测试框架,所述测试终端中运行有待测试的客户端,所述自动测试框架包括预设置的数据获取函数。所述方法包括:通过所述数据获取函数获取所述客户端的业务需求;对所述客户端的待测试界面进行检测,获得所述待测试界面的页面元素及所述页面元素对应的定位数据;基于所述测试用例及所述定位数据对所述待测试界面上的页面元素进行功能测试,得到所述待测试界面的测试结果。从而使跨平台的自动化测试不再借助第三方程序。降低人力资源的消耗,也降低了后期维护成本。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的测试主机的方框示意图。

图2为本发明较佳实施例提供的界面测试方法的步骤流程图。

图3为图2中步骤s103的子步骤流程图。

图4为图2中步骤s104的子步骤流程图。

图5为本发明较佳实施例提供的界面测试装置的功能模块示意图。

图6为图5中测试用例组装模块的功能子模块示意图。

图7为图5中测试执行模块的功能子模块示意图。

图标:100-测试主机;111-存储器;112-处理器;113-通信单元;114-显示单元;200-界面测试装置;201-数据获取模块;202-页面元素检测模块;203-测试用例组装模块;2031-获取子模块;2032-组装子模块;204-测试执行模块;2041-定位子模块;2042-执行子模块;2043-接收子模块;2044-比较子模块;205-报告生成模块;300-自动测试框架。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

图1示出本发明较佳实施例提供的测试主机100的方框示意图。所述测试主机100包括界面测试装置200、自动测试框架300、存储器111、处理器112、通信单元113及显示单元114。

所述存储器111、处理器112、通信单元113及显示单元114各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述界面测试装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述测试主机100的操作系统(operatingsystem,os)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块,例如所述界面测试装置200及自动测试框架300所包括的软件功能模块及计算机程序等。

其中,所述存储器111可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器111用于存储程序或者数据。所述通信单元113用于建立所述测试主机100与其它通信终端之间的通信连接,以实现测试主机100与其他通信终端的数据交互。

显示单元114用于在所述测试主机100与测试员之间提供一个交互界面(例如用户操作界面)或用于显示图像数据。在本实施例中,所述显示单元114可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。

应当理解的是,图1所示的结构仅为测试主机100的结构示意图,所述测试主机100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

第一实施例

请参考图2,图2示出本发明实施例提供了的一种界面测试方法的流程图。界面测试方法应用于与测试终端(图未标)连接的测试主机100。可选地,测试终端与测试主机100可以是电性连接,也可以是通过通信单元113通信连接。所述测试主机100中安装的自动测试框架300包括预设置的数据获取驱动。需要说明的是,数据获取驱动包括被封装的数据获取函数。所述测试终端中运行有待测试的客户端,即待测试的测试包。所述方法包括以下步骤:

步骤s101,通过所述数据获取函数获取测试终端的终端状态信息、终端基本信息、所述客户端基本信息及客户端的业务需求。

在本实施例中,通过调用数据获取驱动的程序接口进而使用数据获取函数从测试终端获取对应数据。需要说明的是,终端状态信息可以,但不限于包括测试终端与测试主机100之间的连接状态、连接方式、终端电量状态信息等;终端基本信息可以但不限于是测试终端的版本、型号、厂家等信息;客户端基本信息可以,但不限于包括客户端的版本、适用环境、编写语言等;客户端的业务需求可以包括客户端界面所需实现的功能等。可选的,数据获取驱动的程序接口可以是通过预先封装的readconfig类及init类而获得的程序调用接口。可选地,init类中包括connect_phone、get_devicename、get_android_version、start_server等获取终端基本信息和客户端基本信息的函数。readconfig类包括getconfigvalue用于获取客户端相关信息(客户端相关信息包括客户端业务需求、客户端原代码等)的函数及getcmdvalue用于获取终端状态信息的函数。可选地,当测试终端接入测试主机100时,测试主机100自动调用init类及readconfig类的程序接口以获得测试终端的终端状态信息、终端基本信息、所述客户端基本信息及客户端的业务需求。

步骤s102,对所述客户端的待测试界面进行检测,获得所述待测试界面的页面元素及所述页面元素对应的定位数据。

在本实施例中,页面元素可以但不限于包括待测试后界面中的输入控件或、触控键、滑动控件、文字、图片、音频、动画、视频等。定位数据可以但不限于是页面元素的id、名称、类名、xpath和层级样式表(cascadingstylesheets,css)。每个页面元素所对应的定位数据在客户端的程序编写时就已经定义。获取所述页面元素对应的定位数据可以包括页面元素的id、名称、类名、xpath和css中至少一种。可选地,可以通过从获得的客户端对应程序中获取所述待测试界面的页面元素及所述页面元素对应的定位数据。

步骤s103,根据所述业务需求及所述页面元素,生成测试用例。

在本实施例中,测试用例可以是根据客户端的业务需求而生产的一组测试输入、执行条件以及预期结果。需要说明的是预期结果为客户端处于执行条件的情况下,响应测试输入,而获得的执行结果可以满足程序员的预期。请参照图3,所述步骤s103包括以下子步骤:

子步骤s1031,根据所述页面元素获取所述页面元素对应的预设绑定事件。

在本实施例中,客户端的程序编写时会定义页面元素在对应的预设的绑定事件,绑定事件即页面元素需要执行的动作,例如,滑动元素执行滑动事件、输入窗口用于执行输入字符事件等。

子步骤s1032,依照所述业务需求,排列所述页面元素执行对应的预设绑定事件的顺序,以生成所述测试用例。

在本实施例中,排列页面元素执行对应绑定事件顺序,以生成测试输入及构建执行条件。可选地,可以预先封装好每个页面元素对应的绑定事件,以获得事件执行调用接口。按照页面元素执行绑定事件的顺序依次设置调用事件执行调用接口的顺序。

步骤s104,基于所述测试用例及所述定位数据对所述待测试界面上的页面元素进行功能测试,得到所述待测试界面的测试结果。

在本实施例中,对页面元素进行功能测试即按照测试用例中的是测试输入对应页面元素执行绑定事件。例如,调用unittest.testsuite容器实现用例加载和执行。当执行完毕后测试终端反馈的执行结果与测试用例中的预期结果相同则测试结果为测试成功;反之不同,则测试结果为测试失败。请参照图4,所述步骤s104包括以下子步骤:

子步骤s1041,按照所述测试用例中所述页面元素执行对应的绑定事件的顺序,依次根据所述页面元素对应的所述定位数据,利用所述页面元素定位函数,定位对应的所述页面元素。

在本实施例中,自动测试框架300中包括预先封装了的页面元素定位函数。按照页面元素执行对应的绑定事件的顺序,依次根据页面元素对应的所述定位数据,调用页面元素定位函数封装后的程序接口,对客户端的界面中的页面元素进行定位。可选地,当同一个时间点只需一个页面元素执行对应的绑定事件时,页面元素定位函数可以是id定位函数、name定位函数、classname定位函数、xpath定位函数和css定位函数中至少一个;同一个时间点多个页面元素需要同时执行对应的绑定事件时,页面元素定位函数也可以是ids定位函数、names定位函数等,以方便对多个元素进行定位操作。

子步骤s1042,依次控制被定位的所述页面元素遍历执行对应的绑定事件。

在本实施例中,定位到一个页面元素则控制被定位的页面元素执行其对应的绑定事件,直到所述测试用例中最后一个所述页面元素对应的事件执行完毕。

子步骤s1043,接收所述测试终端反馈的执行结果。

在本实施例中,执行结果可以是客户端执行完测试用例后执行的状态数据及客户端执行完测试用例后执行结果的界面图像。例如,执行完发送信息的测试用例后,如果发送成功则执行状态数据为发送信息成功报文;执行完发送信息的测试用例后,如果发送失败,则执行状态数据为发送信息出错报文。可选地,可以但不限于是通过工作日志或其他与测试终端通信连接的终端的反馈结果获得。测试终端执行完毕后将执行结果反馈给测试主机100。

子步骤s1044,比较所述执行结果与所述业务需求,以获得所述测试结果。

在本实施例中,测试主机100将执行结果与测试用例中的预设结果相比对。可选的,可以通过比较预设结果中的执行状态数据与执行结果中的执行状态数据是否相同及比较执行结果中的界面图像与预设结果的界面图像是否相同。

步骤s105,根据测试结果生成所述测试报告。

在本实施例中,根据测试结果、所述测试终端的终端状态信息、终端基本信息及所述客户端基本信息,生成所述测试报告。可选地,当测试结果为测试失败时,根据接收到的所述测试终端截取的所述客户端的执行结果界面图像、测试失败的状态数据、所述测试终端的终端状态信息、终端基本信息及所述客户端基本信息生成所述测试报告;当测试结果为测试成功时,根据测试成功的状态数据、所述测试终端的终端状态信息、终端基本信息及所述客户端基本信息生成所述测试报告。例如,所有测试用例运行的数据都会放入result\date\xxx中,例运行的数据包括测试包的基本信息,用例名称,执行状态,测试结果和测试失败时的所述客户端的执行结果界面图像,并通过调用htmltestrunner生成html格式的测试报告。并由显示单元114显示。

测试报告生成之后,当再次进行测试时,检测到待测试客户端的基本信息与上一次测试的客户端不同时,在获得测试员的输入的确认指令后,还包括步骤卸载所述测试终端的终端状态信息、终端基本信息及所述客户端基本信息。

第二实施例

请参考图5,是本发明较佳实施例提供的界面测试装置200的功能模块示意图。界面测试装置200应用于与测试终端通信连接的测试主机100,所述测试主机100中安装一自动测试框架300,所述测试终端中运行有待测试的客户端,所述自动测试框架300包括预设置的数据获取函数。界面测试装置200包括数据获取模块201、页面元素检测模块202、测试用例组装模块203、测试执行模块204及报告生成模块205。

数据获取模块201,用于通过所述数据获取函数获取测试终端的终端状态信息、终端基本信息、所述客户端基本信息及客户端的业务需求。

在本发明实施例中,步骤s101可以由数据获取模块201执行。

页面元素检测模块202,用于对所述客户端的待测试界面进行检测,以获得所述待测试界面的页面元素及所述页面元素对应的定位数据。

在本发明实施例中,步骤s102可以由页面元素检测模块202执行。

测试用例组装模块203,用于根据所述业务需求及所述页面元素,生成测试用例。

在本发明实施例中,步骤s103可以由测试用例组装模块203执行。如图6所示,测试用例组装模块203还包括以下子模块:

获取子模块2031,根据所述页面元素获取所述页面元素对应的预设绑定事件。

在本发明实施例中,子步骤s1031可以由获取子模块2031执行。

组装子模块2032,用于依照所述业务需求,排列所述页面元素执行对应的预设绑定事件的顺序,以生成所述测试用例。

在本发明实施例中,子步骤s1032可以由组装子模块2032执行。

测试执行模块204,用于基于所述测试用例及所述定位数据对所述待测试界面上的页面元素进行功能测试,得到所述待测试界面的测试结果。

在本发明实施例中,步骤s104可以由测试执行模块204执行。如图7所示,测试执行模块204包括以下功能子模块:

定位子模块2041,用于按照所述测试用例中所述页面元素执行对应的绑定事件的顺序,依次根据所述页面元素对应的所述定位数据,利用所述页面元素定位函数,定位对应的所述页面元素。

在本发明实施例中,子步骤s1041可以由定位子模块2041执行。

执行子模块2042,用于依次控制被定位的所述页面元素遍历执行对应的绑定事件。

在本发明实施例中,子步骤s1042可以由执行子模块2042执行。

接收子模块2043,用于接收所述测试终端反馈的执行结果。

在本发明实施例中,子步骤s1043可以由接收子模块2043执行。

比较子模块2044,用于比较所述执行结果与所述业务需求,以获得所述测试结果。

在本发明实施例中,子步骤s1044可以由比较子模块2044执行。

报告生成模块205,用于根据测试结果生成所述测试报告。

在本发明实施例中,步骤s105可以由报告生成模块205执行。

综上所述,本发明提供的本发明提供的一种界面测试方法及装置。应用于与测试终端通信连接的测试主机,所述测试主机中安装一自动测试框架,所述测试终端中运行有待测试的客户端,所述自动测试框架包括预设置的数据获取函数。所述方法包括:通过所述数据获取函数获取所述客户端的业务需求;对所述客户端的待测试界面进行检测,获得所述待测试界面的页面元素及所述页面元素对应的定位数据;基于所述测试用例及所述定位数据对所述待测试界面上的页面元素进行功能测试,得到所述待测试界面的测试结果。从而使跨平台的自动化测试不再借助第三方程序。降低人力资源的消耗,也降低了后期维护成本。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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