发明内容
本发明的主要目的在于提供一种实时处理系统的测试方法和装置,以解决现有技术中实时处理系统的测试请求所涵盖的用户访问场景不全面的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种实时处理系统的测试方法。
根据本发明的测试方法包括:获取用于测试第一系统的测试请求;获取接收到测试请求的第一时刻所对应的日志信息,其中,日志信息为记录的用户终端向第二系统发送的请求信息;基于日志信息生成用于测试第一系统的测试数据;使用测试数据对第一系统进行测试,并获取测试结果,其中,第一系统与第二系统对数据的处理逻辑相同。
进一步地,在获取接收到测试请求的第一时刻所对应的日志信息之前,测试方法还包括:实时记录用户终端向第二系统发送的请求参数、请求地址和用户终端的属性信息,其中,请求参数为用户终端请求第二系统返回数据的关键词信息;保存请求参数、请求地址和用户终端的属性信息得到请求信息;保存预设时间段内得到的请求信息,生成日志信息;基于日志信息生成用于测试第一系统的测试数据包括:通过预设函数将请求参数、请求地址和用户终端的属性信息构造成测试数据。
进一步地,获取接收到测试请求的第一时刻所对应的日志信息包括:获取与第一时刻所属的第一时间段间隔一个或多个预设时间段的第二时间段,其中,第二时间段的时间早于第一时间段;读取第二时间段的日志信息。
进一步地,用户终端的属性信息包括下述数据中的至少之一:用户终端的浏览器信息、用户终端的操作系统以及用户终端的IP地址所在的时区;请求信息中还包括:第二系统的服务器端接收到用户终端请求第二系统返回数据的请求的时间。
进一步地,在获取测试结果之后,测试方法还包括:判断测试结果与测试数据的预设结果是否一致;若测试结果与测试数据的预设结果不一致,则生成异常提示信息。
为了实现上述目的,根据本发明的另一方面,提供了一种实时处理系统的测试装置。
根据本发明的测试装置包括:第一获取模块,用于获取用于测试第一系统的测试请求;第二获取模块,用于获取接收到测试请求的第一时刻所对应的日志信息,其中,日志信息为记录的用户终端向第二系统发送的请求信息;第一生成模块,用于基于日志信息生成用于测试第一系统的测试数据;测试模块,用于使用测试数据对第一系统进行测试,并获取测试结果,其中,第一系统与第二系统对数据的处理逻辑相同。
进一步地,测试装置还包括:记录模块,用于在获取接收到测试请求的第一时刻所对应的日志信息之前,实时记录用户终端向第二系统发送的请求参数、请求地址和用户终端的属性信息,其中,请求参数为用户终端请求第二系统返回数据的关键词信息;第一保存模块,用于保存请求参数、请求地址和用户终端的属性信息得到请求信息;第二保存模块,用于保存预设时间段内得到的请求信息,生成日志信息;第一生成模块包括:构造模块,用于通过预设函数将请求参数、请求地址和用户终端的属性信息构造成测试数据。
进一步地,第二获取模块包括:获取子模块,用于获取与第一时刻所属的第一时间段间隔一个或多个预设时间段的第二时间段,其中,第二时间段的时间早于第一时间段;读取模块,用于读取第二时间段的日志信息。
进一步地,用户终端的属性信息包括下述数据中的至少之一:用户终端的浏览器信息、用户终端的操作系统以及用户终端的IP地址所在的时区;请求信息中还包括:第二系统的服务器端接收到用户终端请求第二系统返回数据的请求的时间。
进一步地,测试装置还包括:判断模块,用于在获取测试结果之后,判断测试结果与测试数据的预设结果是否一致;第二生成模块,用于在测试结果与测试数据的预设结果不一致的情况下,生成异常提示信息。
采用本发明实施例,在获取接收到测试请求的第一时刻所对应的日志信息之后,基于该记录有用户终端向第二系统发送的请求信息的日志信息,生成用于测试第一系统的测试数据,然后使用该测试数据测试第一系统并获取测试结果。在上述实施例中,基于用户终端访问第二系统的真实访问数据生成测试数据,并对与第二系统的数据处理逻辑相同的第一系统进行测试,该真实访问数据覆盖的访问场景较多且符合用户终端访问实时处理系统的实际情况,可以真实全面的反映用户终端在访问第二系统的实际情况,无需测试工程师手动构造测试请求,避免了由于手动构造测试请求导致遗漏用户访问场景的问题。通过本发明实施例,解决了现有技术中实时处理系统的测试请求所涵盖的用户访问场景不全面的问题,达到了使用真实访问数据真实全面地测试实时处理系统的效果。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
如图1所示,该测试方法包括如下的步骤S102至步骤S108:
步骤S102,获取用于测试第一系统的测试请求。
步骤S104,获取接收到测试请求的第一时刻所对应的日志信息。
其中,日志信息为记录的用户终端向第二系统发送的请求信息。
步骤S106,基于日志信息生成用于测试第一系统的测试数据。
步骤S108,使用测试数据对第一系统进行测试,并获取测试结果。
其中,第一系统与第二系统对数据的处理逻辑相同。
采用本发明实施例,在获取接收到测试请求的第一时刻所对应的日志信息之后,基于该记录有用户终端向第二系统发送的请求信息的日志信息,生成用于测试第一系统的测试数据,然后使用该测试数据测试第一系统并获取测试结果。在上述实施例中,基于用户终端访问第二系统的真实访问数据生成测试数据,并对与第二系统的数据处理逻辑相同的第一系统进行测试,该真实访问数据覆盖的访问场景较多且符合用户终端访问实时处理系统的实际情况,可以真实全面的反映用户终端在访问第二系统的实际情况,无需测试工程师手动构造测试请求,避免了由于手动构造测试请求导致遗漏用户访问场景的问题。通过本发明实施例,解决了现有技术中实时处理系统的测试请求所涵盖的用户访问场景不全面的问题,达到了使用真实访问数据真实全面地测试实时处理系统的效果。
其中,上述的第一系统和第二系统均为实时处理系统,如电商网站系统、新闻查询系统等;第一系统可以是第二系统的升级版或者改进版,第一系统与第二系统的版面可以不同,对数据的处理算法可以不同,但是第一系统和第二系统的数据处理逻辑相同或相似。
在本发明上述实施例中的记录的用户终端向第二系统发送的请求信息可以为访问第二系统的请求信息。
根据本发明上述实施例,在获取接收到测试请求的第一时刻所对应的日志信息之前,测试方法还可以包括:实时记录用户终端向第二系统发送的请求参数、请求地址和用户终端的属性信息,其中,请求参数为用户终端请求第二系统返回数据的关键词信息;保存请求参数、请求地址和用户终端的属性信息得到请求信息;保存预设时间段内得到的请求信息,生成日志信息;基于日志信息生成用于测试第一系统的测试数据可以包括:通过预设函数将请求参数、请求地址和用户终端的属性信息构造成测试数据。
具体地,在获取日志信息之前,实时记录用户终端访问第二系统的真实访问数据,该真实访问数据可以包括上述实施例中的用户终端向第二系统发送的请求参数、请求地址和用户终端的属性信息;在保存该真实访问数据得到请求信息之后,保存预设时间段内得到的请求信息,以生成日志信息,该日志信息中携带有其所属时间段的时间。在得到日志信息之后,通过应用程序中的预设函数,可以将请求参数、请求地址和用户终端的属性信息构造成测试数据。
上述的请求参数可以包括用户终端向第二系统发送的HTTP请求的参数;请求地址可以为用户终端访问第二系统的IP地址(即Internet Protocol Address,互联网协议地址);预设时间段可以是一小时。
其中,HTTP即HTTP-Hypertext Transfer Protocol,超文本传送协议,定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
进一步地,用户终端的属性信息可以包括下述数据中的至少之一:用户终端的浏览器信息、用户终端的操作系统以及用户终端的IP地址所在的时区;请求信息中还可以包括:第二系统的服务器端接收到用户终端请求第二系统返回数据的请求的时间。
具体地,可以通过第二系统的服务器日志记录功能记录用户终端访问第二系统时的线上请求的请求信息得到记录结果,该线上请求的请求信息可以包括第二系统的服务器端接收到线上请求的时间、用户终端请求第二系统返回的数据以及用户终端的HTTP Header中的信息(如,上述实施例中的浏览器信息、用户终端的操作系统以及用户终端的IP地址所在的时区)等,每隔一小时(即上述实施例中的预设时间段)将记录的该小时内的记录结果生成日志信息。
上述的HTTP Header即HTTP头域,其中包含HTTP请求与响应的操作参数,如HTTP请求的方法、URL、协议版本、HTTP请求修饰符以及客户信息和内容等。
例如,用户终端访问第二系统(如电商网站)时,用户终端发送的访问请求中携带有请求第二系统返回的商品的请求参数(如,加湿器)、请求访问的目标URL地址、访问请求的协议版本、购买商品的买家信息、用户终端的IP地址以及该IP地址所在的时区等,第二系统的服务器日志记录功能记录该实施例中的访问请求的请求信息,每隔一小时将该小时内记录的请求信息生成日志信息,然后可以将该日志信息通过应用程序中的预设函数构造成测试数据,以测试第一系统。
需要进一步说明的是,由于IP地址是唯一的,因此该实施例中的用户终端的IP地址无法通过预设函数构造成测试数据,但是对于IP地址这一参数对测试结果的影响,可以用添加其他参数的方法实现,如,在构造的测试数据中加入地理位置信息,在该实施例中,若买家所在的城市为北京,那么地理位置信息即为北京。
通过本发明的上述实施例,用户终端访问第二系统的真实访问数据可以真实全面地反映用户终端对第二系统的访问情况,实时记录该真实访问数据并将其保存以得到请求信息,从而可以利用在预设时间段内的请求信息生成日志信息,并使用该日志信息构造测试数据,可以使测试数据能够真实全面的反映用户终端的访问场景,利用已有系统的真实访问数据测试与已有系统的数据处理逻辑相同或相似的待测试的实时处理系统,无需测试工程师手动构造测试请求,避免了由于手动构造测试请求所导致的用户访问场景不全面的问题。
根据本发明上述的实施例,获取接收到测试请求的第一时刻所对应的日志信息可以包括:获取与第一时刻所属的第一时间段间隔一个或多个预设时间段的第二时间段,其中,第二时间段的时间早于第一时间段;读取第二时间段的日志信息。
具体地,在获取接收到测试请求的第一时刻所属的第一时间段之后,获取早于该第一时间段一个或多个预设时间段的第二时间段,然后读取该第二时间段对应日志信息。
例如,每一小时(即上述实施例中的预设时间段)生成一个日志信息,若接收到测试请求的第一时刻为9:30,则第一时刻所述的第一时间段为9:00-10:00,那么可以读取间隔一个预设时间段的日志信息,即读取8:00-9:00这一时间段(即上述实施例中的第二时间段)的日志信息;在一个可选的实施例中,还可以读取间隔两个预设时间段的日志信息,即读取7:00-8:00这一时间段(即上述实施例中的第二时间段)的日志信息。
根据本发明上述实施例,在获取测试结果之后,测试方法还可以包括:判断测试结果与测试数据的预设结果是否一致;若测试结果与测试数据的预设结果不一致,则生成异常提示信息。
具体地,在获取测试结果之后,判断测试结果与该测试数据的预设结果是否一致,并在测试结果与测试数据的预设结果不一致的情况下,生成异常提示信息,以提示测试人员第一系统的测试结果存在错误或异常。
例如,若上述实施例中的第一系统为新闻网站系统A,第二系统为新闻网站系统B,该新闻网站系统A是新闻网站系统B的升级版本,在使用第二系统访问娱乐新闻时,用户终端打开娱乐新闻网页的等待时间为1秒,在对第一系统进行同样的测试(即访问娱乐新闻)时,利用日志信息中保存的用户终端访问第二系统的真实访问数据构造测试数据,使用该测试数据访问第一系统时,打开娱乐新闻网页的等待时间变为5秒,而测试数据的预设结果为不超过1秒,那么可以判断出测试结果与测试数据的预设结果不一致,并生成对应的异常提示信息,该异常提示信息可以为提示用户终端访问娱乐新闻的访问体验变差的信息。
通过本发明上述实施例,通过判断该测试结果与测试数据的预设结果是否一致,并在测试结果与测试数据的预设结果不一致的情况下生成异常提示信息,可以提示测试人员测试结果存在错误或者异常,便于测试人员及时针对该错误或者异常对第一系统的代码进行检测并修改。
下面结合图2详细介绍本发明上述实施例,如图2所示的测试方法可以包括如下步骤:
步骤S202,记录线上请求的数据得到记录结果。
其中,线上请求的数据可以包括第二系统的服务器端接收到线上请求的时间、用户终端请求第二系统返回的数据以及用户终端的HTTP Header中的信息(如,上述实施例中的浏览器信息、用户终端的操作系统以及用户终端的IP地址所在的时区)等。
该实施例中的线上请求为用户终端访问第二系统时的请求。
步骤S204,将每小时的记录结果生成一个日志文件。
该实施例中的每小时即为上述实施例中的预设时间段。
步骤S206,读取接收到测试请求的当前时段上一个小时的日志文件。
步骤S208,将日志信息构造成测试数据,并将测试数据发送到待测试的实时处理系统。
其中,待测试的实时处理系统为上述实施例中的第一系统;第二系统与第一系统的数据处理逻辑相同。
通过本发明上述实施例,可以使用记录有真实访问数据的日志信息构造测试数据,以测试待测试的实时处理系统,在不影响线上的第二系统的情况下,达到了使用真实访问数据对实时处理系统进行伪实时测试的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图3是根据本发明实施例的实时处理系统的测试装置的示意图。如图3所示,该测试装置可以包括:第一获取模块10,用于获取用于测试第一系统的测试请求;第二获取模块30,用于获取接收到测试请求的第一时刻所对应的日志信息,其中,日志信息为记录的用户终端向第二系统发送的请求信息;第一生成模块50,用于基于日志信息生成用于测试第一系统的测试数据;测试模块70,用于使用测试数据对第一系统进行测试,并获取测试结果,其中,第一系统与第二系统对数据的处理逻辑相同。
采用本发明实施例,在第二获取模块获取接收到测试请求的第一时刻所对应的日志信息之后,第一生成模块基于该记录有用户终端向第二系统发送的请求信息的日志信息,生成用于测试第一系统的测试数据,然后测试模块使用该测试数据测试第一系统并获取测试结果。在上述实施例中,基于用户终端访问第二系统的真实访问数据生成测试数据,并对与第二系统的数据处理逻辑相同的第一系统进行测试,该真实访问数据覆盖的访问场景较多且符合用户终端访问实时处理系统的实际情况,可以真实全面的反映用户终端在访问第二系统的实际情况,无需测试工程师手动构造测试请求,避免了由于手动构造测试请求导致遗漏用户访问场景的问题。通过本发明实施例,解决了现有技术中实时处理系统的测试请求所涵盖的用户访问场景不全面的问题,达到了使用真实访问数据真实全面地测试实时处理系统的效果。
其中,上述的第一系统和第二系统均为实时处理系统,如电商网站系统、新闻查询系统等;第一系统可以是第二系统的升级版或者改进版,第一系统与第二系统的版面可以不同,对数据的处理算法可以不同,但是第一系统和第二系统的数据处理逻辑相同或相似。
在本发明上述实施例中的记录的用户终端向第二系统发送的请求信息可以为访问第二系统的请求信息。
根据本发明上述实施例,测试装置还可以包括:记录模块,用于在获取接收到测试请求的第一时刻所对应的日志信息之前,实时记录用户终端向第二系统发送的请求参数、请求地址和用户终端的属性信息,其中,请求参数为用户终端请求第二系统返回数据的关键词信息;第一保存模块,用于保存请求参数、请求地址和用户终端的属性信息得到请求信息;第二保存模块,用于保存预设时间段内得到的请求信息,生成日志信息;第一生成模块10可以包括:构造模块,用于通过预设函数将请求参数、请求地址和用户终端的属性信息构造成测试数据。
具体地,在获取日志信息之前,实时记录用户终端访问第二系统的真实访问数据,该真实访问数据可以包括上述实施例中的用户终端向第二系统发送的请求参数、请求地址和用户终端的属性信息;在保存该真实访问数据得到请求信息之后,保存预设时间段内得到的请求信息,以生成日志信息,该日志信息中携带有其所属时间段的时间。在得到日志信息之后,通过应用程序中的预设函数,可以将请求参数、请求地址和用户终端的属性信息构造成测试数据。
上述的请求参数可以包括用户终端向第二系统发送的HTTP请求的参数;请求地址可以为用户终端访问第二系统的IP地址(即Internet Protocol Address,互联网协议地址);预设时间段可以是一小时。
其中,HTTP即HTTP-Hypertext Transfer Protocol,超文本传送协议,定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
进一步地,用户终端的属性信息可以包括下述数据中的至少之一:用户终端的浏览器信息、用户终端的操作系统以及用户终端的IP地址所在的时区;请求信息中还包括:第二系统的服务器端接收到用户终端请求第二系统返回数据的请求的时间。
具体地,可以通过第二系统的服务器日志记录功能记录用户终端访问第二系统时的线上请求的请求信息得到记录结果,该线上请求的请求信息可以包括第二系统的服务器端接收到线上请求的时间、用户终端请求第二系统返回的数据以及用户终端的HTTP Header中的信息(如,上述实施例中的浏览器信息、用户终端的操作系统以及用户终端的IP地址所在的时区)等,每隔一小时(即上述实施例中的预设时间段)将记录的该小时内的记录结果生成日志信息。
上述的HTTP Header即HTTP头域,其中包含HTTP请求与响应的操作参数,如HTTP请求的方法、URL、协议版本、HTTP请求修饰符以及客户信息和内容等。
通过本发明的上述实施例,用户终端访问第二系统的真实访问数据可以真实全面地反映用户终端对第二系统的访问情况,实时记录该真实访问数据并将其保存以得到请求信息,从而可以利用在预设时间段内的请求信息生成日志信息,并使用该日志信息构造测试数据,可以使测试数据能够真实全面的反映用户终端的访问场景,利用已有系统的真实访问数据测试与已有系统的数据处理逻辑相同或相似的待测试的实时处理系统,无需测试工程师手动构造测试请求,避免了由于手动构造测试请求所导致的用户访问场景不全面的问题。
根据本发明上述的实施例,第二获取模块30可以包括:获取子模块,用于获取与第一时刻所属的第一时间段间隔预设时间段的第二时间段,其中,第二时间段的时间早于第一时间段;读取模块,用于读取第二时间段的日志信息。
具体地,在获取接收到测试请求的第一时刻所属的第一时间段之后,获取早于该第一时间段一个或多个预设时间段的第二时间段,然后读取该第二时间段对应的日志信息。
根据本发明上述实施例,测试装置还可以包括:判断模块,用于在获取测试结果之后,判断测试结果与测试数据的预设结果是否一致;第二生成模块,用于在测试结果与测试数据的预设结果不一致的情况下,生成异常提示信息。
具体地,在获取测试结果之后,判断测试结果与该测试数据的预设结果是否一致,并在测试结果与测试数据的预设结果不一致的情况下,生成异常提示信息,以提示测试人员第一系统的测试结果存在错误或异常。
通过本发明上述实施例,通过判断该测试结果与测试数据的预设结果是否一致,并在测试结果与测试数据的预设结果不一致的情况下生成异常提示信息,可以提示测试人员测试结果存在错误或者异常,便于测试人员及时针对该错误或者异常对第一系统的代码进行检测并修改。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
从以上的描述中,可以看出,本发明实现了如下技术效果:
采用本发明实施例,在获取接收到测试请求的第一时刻所对应的日志信息之后,基于该记录有用户终端向第二系统发送的请求信息的日志信息,生成用于测试第一系统的测试数据,然后使用该测试数据测试第一系统并获取测试结果。在上述实施例中,基于用户终端访问第二系统的真实访问数据生成测试数据,并对与第二系统的数据处理逻辑相同的第一系统进行测试,该真实访问数据覆盖的访问场景较多且符合用户终端访问实时处理系统的实际情况,可以真实全面的反映用户终端在访问第二系统的实际情况,无需测试工程师手动构造测试请求,避免了由于手动构造测试请求导致遗漏用户访问场景的问题。通过本发明实施例,解决了现有技术中实时处理系统的测试请求所涵盖的用户访问场景不全面的问题,达到了使用真实访问数据真实全面地测试实时处理系统的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。