测试方法及装置与流程

文档序号:17695782发布日期:2019-05-17 21:30阅读:154来源:国知局
测试方法及装置与流程

本申请涉及计算机技术领域,具体而言,涉及一种测试方法及装置。



背景技术:

搜索功能是绝大多数web系统的必备功能,为了保证搜索功能的正确性,在web系统投入使用之前,测试人员需要对搜索功能进行全面的测试。目前的测试方式为:测试人员模拟真实用户操作,输入各种搜索条件,并对大量的搜索结果进行逐条验证。该方式虽然可以实现对搜索功能的测试,但是会消耗大量的时间成本和人力成本。



技术实现要素:

为了克服现有技术中的上述不足,本申请实施例的目的在于提供一种测试方法及装置,其能够根据预先设置的搜索条件、预设搜索结果对待测试web系统的搜索功能进行自动化测试,可大量减少测试人员的工作量,避免消耗大量的时间成本和人力成本。

第一方面,本申请实施例提供一种测试方法,包括:

控制目标浏览器从包括多个搜索条件的条件数据库中读取一个搜索条件,并将根据读取的搜索条件生成的搜索请求发送给待测试web系统;

接收所述待测试web系统返回的与接收的搜索请求对应的实际搜索结果;

将与读取的搜索条件对应的实际搜索结果与预设搜索结果进行对比,得到对比结果,以完成对待测试web系统搜索功能的测试。

可选地,在本申请实施例中,所述预设搜索结果包括多条第一数据,所述实际搜索结果包括多条第二数据,所述将与读取的搜索条件对应的实际搜索结果和预设搜索结果进行对比,得到对比结果,包括:

获得读取的搜索条件的条件标识;

根据所述条件标识获得与读取的搜索条件对应的预设搜索结果;

将所述实际搜索结果中的每条第二数据与所述预设搜索结果中对应的第一数据进行对比,得到每条第二数据对比正确或对比不正确的对比结果。

可选地,在本申请实施例中,所述将与读取的搜索条件对应的实际搜索结果与预设搜索结果进行对比,得到对比结果之后,所述方法还包括:

判断所述条件数据库中的所有搜索条件是否均被所述目标浏览器读取过;

若否,则跳转至步骤:控制目标浏览器从包括多个搜索条件的条件数据库中读取一个搜索条件,并将根据读取的搜索条件生成的搜索请求发送给待测试web系统。

可选地,在本申请实施例中,所述方法还包括:

将多个浏览器中的每个浏览器依次作为所述目标浏览器,以经不同浏览器对所述待测试web系统的搜索功能进行测试。

可选地,在本申请实施例中,所述方法还包括:

根据接收到的更新操作对所述条件数据库进行更新。

第二方面,本申请实施例还提供一种测试装置,包括:

条件读取模块,用于控制目标浏览器从包括多个搜索条件的条件数据库中读取一个搜索条件,并将根据读取的搜索条件生成的搜索请求发送给待测试web系统;

接收模块,用于接收所述待测试web系统返回的与接收的搜索请求对应的实际搜索结果;

对比模块,用于将与读取的搜索条件对应的实际搜索结果与预设搜索结果进行对比,得到对比结果,以完成对待测试web系统搜索功能的测试。

可选地,在本申请实施例中,所述预设搜索结果包括多条第一数据,所述实际搜索结果包括多条第二数据,所述对比模块将与读取的搜索条件对应的实际搜索结果和预设搜索结果进行对比,得到对比结果的方式包括:

获得读取的搜索条件的条件标识;

根据所述条件标识获得与读取的搜索条件对应的预设搜索结果;

将所述实际搜索结果中的每条第二数据与所述预设搜索结果中对应的第一数据进行对比,得到每条第二数据对比正确或对比不正确的对比结果。

可选地,在本申请实施例中,所述装置还包括:

判断模块,用于判断所述条件数据库中的所有搜索条件是否均被所述目标浏览器读取过;

若否,所述条件读取模块则再次控制目标浏览器从包括多个搜索条件的条件数据库中读取一个搜索条件,并将根据读取的搜索条件生成的搜索请求发送给待测试web系统。

可选地,在本申请实施例中,所述条件读取模块,还用于将多个浏览器中的每个浏览器依次作为所述目标浏览器,以经不同浏览器对所述待测试web系统的搜索功能进行测试。

可选地,在本申请实施例中,所述装置还包括:

更新模块,用于根据接收到的更新操作对所述条件数据库进行更新。

相对于现有技术而言,本申请具有以下有益效果:

本申请实施例提供一种测试方法及装置。首先通过目标浏览器从条件数据库中读取一个搜索条件,生成与该搜索条件对应的搜索请求,并将该搜索请求发送给待测试web系统。然后接收待测试web系统根据接收到的上述搜索请求搜索后返回的实际搜索结果。最后则通过将与读取的搜索条件对应的实际搜索结果和预设搜索结果进行对比,可得到对比结果。通过上述方式,可利用目标浏览器及一个搜索条件对待测试web系统的搜索功能进行一次测试,重复上述过程,即可进行多次测试。由于整个测试过程均为自动化过程,因而可极大地节省人力成本及时间成本,并且可避免在人工对比得到对比结果时由于某些干扰因素的影响导致对比结果的可靠性低,同时由于搜索条件并不是人工测试时随机输入的,因而上述方式还具有搜索条件覆盖度高的特点。

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

附图说明

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

图1是本申请实施例提供的电子设备的方框示意图。

图2是本申请实施例提供的测试方法的流程示意图之一。

图3是本申请实施例提供的测试结果示意图。

图4是本申请实施例提供的测试方法的流程示意图之二。

图5是本申请实施例提供的测试方法的流程示意图之三。

图6是本申请实施例提供的测试装置的方框示意图之一。

图7是本申请实施例提供的测试装置的方框示意图之二。

图标:100-电子设备;110-存储器;120-存储控制器;130-处理器;200-测试装置;205-更新模块;210-条件读取模块;220-接收模块;230-对比模块;240-判断模块。

具体实施方式

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

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

由于web(网页)系统的搜索功能的使用频率非常高,因此在web系统投入使用之前,需要对搜索功能进行全部测试。在本申请发明人提出本申请实施例中的技术方案之前,目前一般是采用人工测试的方式。然而人工测试时是由测试人员当时随机输入搜索条件,测试人员并不会充分考虑到各种情况下使用的搜索条件,因此测试中使用的搜索条件会存在覆盖度不够的情况。在得到与人工输入的搜索条件对应的实际搜索结果中,也是通过人工逐条对比的方式,测试人员的工作量巨大,在这种情况下,再加上其它干扰因素的影响,无法保证人工对比得到的对比结果的正确性。

针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得到的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应是发明人在本申请过程中对本申请做出的贡献。

请参照图1,图1是本申请实施例提供的电子设备100的方框示意图。本申请实施例中所述电子设备100可以是,但不限于,电脑、服务器等。如图1所示,所述电子设备100包括:存储器110、存储控制器120、处理器130以及测试装置200。

所述存储器110、存储控制器120及处理器130各元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有测试装置200,所述测试装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器130通过运行存储在存储器110内的软件程序以及模块,如本申请实施例中的测试装置200,从而执行各种功能应用以及数据处理,即实现本申请实施例中的测试方法。

其中,所述存储器110可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述处理器130以及其他可能的组件对存储器110的访问可在所述存储控制器120的控制下进行。

所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

可以理解,图1所示的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

在本实施例的实施方式中,用于进行测试的电子设备100与待测试web系统所在的设备可以为同一个设备,也可以为不同的设备。

请参照图2,图2是本申请实施例提供的测试方法的流程示意图之一。所述方法应用于所述电子设备100。该电子设备100中存储有条件数据库及至少一个浏览器。下面对测试方法的具体流程进行详细阐述。

步骤s110,控制目标浏览器从包括多个搜索条件的条件数据库中读取一个搜索条件,并将根据读取的搜索条件生成的搜索请求发送给待测试web系统。

在本实施例中,所述电子设备100中可存储有浏览器参数化后的文件,在需要使用某种浏览器时,可使用webdriver进行调用。使得整个自动化测试过程直接在浏览器中运行,就像真实用户所做的一样,从终端用户的角度进行测试。在开始测试时,可控制选定的浏览器(即目标浏览器)从预先生成的条件数据库中读取一个搜索条件,然后该目标浏览器根据读取的搜索条件生成搜索请求,并将该搜索请求发送给待测试web系统。其中,webdriver是一个用来进行web自动化测试的工具。

可选地,也可以直接读取一个搜索条件,然后该搜索条件发送给目标浏览器,目标浏览器再将根据该搜索条件生成的搜索请求发送给待测试web系统。

可选地,在本实施例的实施方式中,本次被读取的搜索条件可以是在与该目标浏览器对应的情况下,未被读取过的搜索条件;也可以是在与该目标浏览对应的情况下,已经被读取过的搜索条件。优选地,为避免通过同一个浏览器同一个搜索条件对待测试web系统测试多次,本次被读取的搜索条件是在与该目标浏览器对应的情况下,未被读取过的搜索条件。

可选地,作为一种实施方式,所述搜索条件数据库可以是excel表,在进行测试时,该excel表中的搜索条件则作为搜索功能的输入源。由此,通过将测试脚本和数据(即搜索条件)分离,可对整个测试的组织和执行进行灵活的管理和配置,同时增强了测试脚本的复用性。

步骤s120,接收所述待测试web系统返回的与接收的搜索请求对应的实际搜索结果。

在本实施例中,待测试web系统在接收到所述搜索请求后,根据该搜索请求在自身包括的大量数据中搜索与该搜索请对应的数据,并将与该搜索请求对应的数据作为实际搜索结果返回。在这个过程中,web系统使用了自身的搜索功能。

步骤s130,将与读取的搜索条件对应的实际搜索结果与预设搜索结果进行对比,得到对比结果,以完成对待测试web系统搜索功能的测试。

在本实施例中,在读取搜索条件后,可获得与该搜索条件对应的预设搜索结果。然后在接收到与读取的搜索条件对应的实际搜索结果后,可通过对比实际搜索结果及预设搜索结果得到对比结果。即,得到了本次通过目标浏览器及读取的搜索条件对web系统的搜索功能测试的测试结果。由于该结果是自动对比得到的,因此相对人工对比得到结果的方式而言,可以保证结果的准确性。其中,预设搜索结果为设计搜索条件时,预计会得到的搜索结果。

在本实施例的一种实施方式中,与每个搜索条件对应的预设搜索结果可以存储在条件数据库中,且与对应的搜索条件为一一对应的关系。在读取搜索条件时,可同时读取对应的预设搜索结果,便于进行结果对比。预设搜索结果中可包括多条第一数据,实际搜索结果中可包括多条第二数据,所述对比结果包括每条第二数据对比正确或对比不正确的对比结果。通过将第一数据、第二数据进行逐条比对,得到每条第二数据对比正确或不正确的对比结果。比如,有第一数据1、2、3,第二数据1、2、3,则将第一数据1与第二数据1进行比对,将第一数据2与第二数据2进行比对,将第一数据3与第二数据3进行比对。

在本实施例的另一种实施方式中,还可以将与每个搜索条件对应的预设搜索结果存储在结果数据库中,条件数据库及结果数据库中可保证有条件标识。在读取搜索条件时,可同时获得读取的搜索条件的条件标识,然后根据该搜索条件标识在所述结果数据库中进行查找,得到与读取的搜索条件对应的预设搜索结果。所述预设搜索结果包括多条第一数据,所述实际搜索结果包括多条第二数据。通过将第一数据、第二数据进行逐条比对,得到每条第二数据对比正确或不正确的对比结果。

其中,在实际搜索结果的页数较多时,单条第二数据中可包括多个分支数据,这种情况下,实际搜索结果中包括叠加符号,即某条第二数据中实际包括多条数据。在比对时,需要将该第二数据中的所有信息与对应的第一数据进行比对。作为示例,针对于某个搜索条件测试后得到的测试结果可如图3所示。

通过步骤s110~步骤s130,可完成一次通过目标浏览器基于一个搜索条件对web系统的搜索功能的测试。重复步骤s110~步骤s130,即可对web系统的搜索功能进行多次测试。由于所述条件数据库中包括大量的测试人员针对各种情况设置的搜索条件,因此本方案中使用的搜索条件具有多样性的特点。

作为一种实施方式,上述测试可采用python+selenium实现。python是一门拥有强大的可扩展性、可移植性、支持面向对象编程、易维护的高级编程语言。selenium基于javascript并结合其webdriver来模拟用户的真实操作,具有很好的处理ajax的能力,可运行于任何支持javascript的浏览器上。脚本可使用python语言编写,也可以使用其它编程语言编写,由于python语言具有轻便、快捷易上手的特点,在测试任务时间紧、任务重的情况下更方便使用,因而本实施方式中采用python语言。

本方案采用了数据驱动及模块化驱动的设计方式,可以对测试脚本的组织和执行进行灵活的管理和配置。数据驱动实现了数据(即搜索条件)与脚本的分离,增强了脚本的复用性,可直接读取条件数据库中存放的搜索条件,作为搜索功能的输入源。模块化驱动是针对多种必要操作,封装成单独的脚本文件,对于用例本身只需调用脚本文件即可,比如,登录模块,通过调用该登录模块可直接登录到web系统,向web系统发送搜索请求。本方案对浏览器进行参数化后,使用webdriver进行调用。整个自动化测试过程直接在浏览器中运行,就像真实用户所做的一样,从终端用户的角度进行测试。

本方案将繁琐的人工输入搜索条件并对比得到对比结果的过程,转换为自动化的方式进行,可极大地减少测试人员的工作量,降低时间成本及人力成本。并且便于使用大量的搜索条件对web系统的搜索功能进行测试,极大地增加了该功能的可靠性。

请参照图4,图4是本申请实施例提供的测试方法的流程示意图之二。在步骤s130之后,所述方法还可以包括步骤s140。

步骤s140,判断所述条件数据库中的所有搜索条件是否均被所述目标浏览器读取过。

在本实施例中,在使用同一个浏览器的情况下,在使用一个搜索条件完成一次测试后,可判断此时条件数据库中的搜索条件是否都被读取过。若是,表示已经通过一个浏览器及所有的搜索条件对web系统的搜索功能进行了测试,即完成了一次完整的测试,在这种情况下,可不再使用该浏览器及条件数据库中的搜索条件对搜索功能进行测试。若否,表示未完成一次完整的测试,在这种情况下,则可以跳转至步骤s110,以完成一次完整的测试。可选地,跳转至步骤s110,再次读取的搜索条件为对应上述浏览器时未读取过的搜索条件。

作为一种实施方式,所述条件数据库中的所有搜索条件按照一定顺序存储,在读取搜索条件时,按照该顺序进行读取。由此,若到达末尾,则表示所有搜索条件都被读取过;若未到达末尾,则表示有部分搜索条件未被读取。通过该方式可快速判断在针对某个浏览器的情况下,是否所有的搜索条件都被读取过。

在本实施例中,为保证web系统的搜索功能与多种浏览器均适配,所述电子设备100中存储多种浏览器的参数化文件。所述方法还可以包括:将多个浏览器中的每个浏览器依次作为所述目标浏览器,以经不同浏览器对所述待测试web系统的搜索功能进行测试。可选地,在完成一次完整的测试后,更换浏览器,再次重复步骤s110~步骤s140。

请参照图5,图5是本申请实施例提供的测试方法的流程示意图之三。所述方法还可以包括步骤s105。

步骤s105,根据接收到的更新操作对所述条件数据库进行更新。

在本实施例中,还可以根据实际需要对所述条件数据库进行更新,以增加或修改搜索条件,从而完善所述条件数据库。因而本实施例中使用的搜索条件具有可变性,同时由于条件数据库中包括大量搜索条件,并且可对搜索条件进行更新,因此本实施例中使用的搜索条件还具有多样性。对应地,在对搜索条件进行更新后,对应更新预设搜索结果。由于数据与脚本分离,因此在对搜索条件进行更新后,不需要对脚本本身进行较大的改动,可进一步减少测试人员的工作量。

请参照图6,图6是本申请实施例提供的测试装置200的方框示意图之一。所述测试装置200可以包括条件读取模块210、接收模块220及对比模块230。

所述条件读取模块210,用于控制目标浏览器从包括多个搜索条件的条件数据库中读取一个搜索条件,并将根据读取的搜索条件生成的搜索请求发送给待测试web系统。

在本实施例中,所述条件读取模块210用于执行图2中的步骤s110,关于所述条件读取模块210的具体描述可以参照图2中步骤s110的描述。

所述接收模块220,用于接收所述待测试web系统返回的与接收的搜索请求对应的实际搜索结果。

在本实施例中,所述接收模块220用于执行图2中的步骤s120,关于所述接收模块220的具体描述可以参照图2中步骤s120的描述。

所述对比模块230,用于将与读取的搜索条件对应的实际搜索结果与预设搜索结果进行对比,得到对比结果,以完成对待测试web系统搜索功能的测试。

在本实施例中,所述预设搜索结果包括多条第一数据,所述实际搜索结果包括多条第二数据,所述对比模块230将与读取的搜索条件对应的实际搜索结果和预设搜索结果进行对比,得到对比结果的方式包括:

获得读取的搜索条件的条件标识;

根据所述条件标识获得与读取的搜索条件对应的预设搜索结果;

将所述实际搜索结果中的每条第二数据与所述预设搜索结果中对应的第一数据进行对比,得到每条第二数据对比正确或对比不正确的对比结果。

在本实施例中,所述对比模块230用于执行图2中的步骤s130,关于所述对比模块230的具体描述可以参照图2中步骤s130的描述。

请参照图7,图7是本申请实施例提供的测试装置200的方框示意图之二。所述测试装置200还可以包括判断模块240。

所述判断模块240,用于判断所述条件数据库中的所有搜索条件是否均被所述目标浏览器读取过。

若否,所述条件读取模块210则再次控制目标浏览器从包括多个搜索条件的条件数据库中读取一个搜索条件,并将根据读取的搜索条件生成的搜索请求发送给待测试web系统。

在本实施例中,所述判断模块240用于执行图4中的步骤s140,关于所述判断模块240的具体描述可以参照图4中步骤s140的描述。

在本实施例中,所述条件读取模块210,还用于将多个浏览器中的每个浏览器依次作为所述目标浏览器,以经不同浏览器对所述待测试web系统的搜索功能进行测试。

请再次参照图7,所述测试装置200还可以包括更新模块205。

所述更新模块205,用于根据接收到的更新操作对所述条件数据库进行更新。

在本实施例中,所述更新模块205用于执行图5中的步骤s105,关于所述更新模块205的具体描述可以参照图5中步骤s105的描述。

本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有可执行计算机指令,所述可执行计算机指令被处理器执行时实现所述的测试方法。

本领域的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

综上所述,本申请实施例提供一种测试方法及装置。首先通过目标浏览器从条件数据库中读取一个搜索条件,生成与该搜索条件对应的搜索请求,并将该搜索请求发送给待测试web系统。然后接收待测试web系统根据接收到的上述搜索请求搜索后返回的实际搜索结果。最后则通过将与读取的搜索条件对应的实际搜索结果和预设搜索结果进行对比,可得到对比结果。通过上述方式,可利用目标浏览器及一个搜索条件对待测试web系统的搜索功能进行一次测试,重复上述过程,即可进行多次测试。由于整个测试过程均为自动化过程,因而可极大地节省人力成本及时间成本,并且可避免在人工对比得到对比结果时由于某些干扰因素的影响导致对比结果的可靠性低,同时由于搜索条件并不是人工测试时随机输入的,因而上述方式还具有搜索条件覆盖度高的特点。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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