一种软件测试方法及系统的制作方法
【技术领域】
[0001]本申请涉及互联网技术领域,更具体地说,涉及一种软件测试方法及系统。
【背景技术】
[0002]在软件项目中,为了保证上线的软件能够正常工作,均需要在测试环境中模拟压力,测试软件的性能。
[0003]然而,即便是通过了上线前的压力测试的软件,其在实际生产环境中也可能会出现故障,例如访问缓慢等异常。造成这种情况的原因主要是现场复杂的网络拓扑结构,不同网络节点间通信链路可能出现问题,软件系统的功能也可能会出现故障。
[0004]因此,如何能够准确找出问题所在,成为技术人员亟待解决的一种问题。
【发明内容】
[0005]有鉴于此,本申请提供了一种软件测试方法及系统,用于提供一种软件测试方案,以确定生产环境中软件故障的问题所在。
[0006]为了实现上述目的,现提出的方案如下:
[0007]一种软件测试方法,应用于网络拓扑结构中,该网络拓扑结构包括若干个网络节点、应用服务器及数据服务器,该方法包括:
[0008]若干个网络节点中的至少一个网络节点向所述应用服务器发送第一请求,同时记录当前时间点为第一时间点;
[0009]所述应用服务器响应所述第一请求,向所述数据服务器发送第二请求,同时记录当前时间点为第二时间点;
[0010]所述应用服务器接收所述数据服务器反馈的应答信息,同时记录当前时间点为第三时间点;
[0011]所述网络节点接收所述应用服务器发送的所述应答信息,同时记录当前时间点为第四时间点,其中所述第四时间点与所述第一时间点的差值为总响应时间,所述第三时间点与所述第二时间点的差值为数据库响应时间,所述总响应时间与所述数据库响应时间用于分析故障问题。
[0012]优选地,所述网络节点向所述应用服务器发送第一请求,包括:
[0013]所述网络节点按照预置的采样频率和用户数,向所述应用服务器发送第一请求。
[0014]优选地,还包括:
[0015]所述应用服务器将所述第二时间点和所述第三时间点发送至所述网络节点;
[0016]所述网络节点计算所述第三时间点与所述第二时间点的差值,并确定为数据库响应时间;
[0017]所述网络节点判断所述数据库响应时间是否超过预置的数据库响应时间阈值,若是,则确定故障点位于所述应用服务器、所述数据服务器或二者间的通信链路上。
[0018]—种软件测试系统,包括:
[0019]若干个网络节点、应用服务器和数据服务器;
[0020]其中,至少一个网络节点向所述应用服务器发送第一请求,同时记录当前时间点为第一时间点;
[0021]所述应用服务器响应所述第一请求,向所述数据服务器发送第二请求,同时记录当前时间点为第二时间点;
[0022]所述应用服务器接收所述数据服务器反馈的应答信息,同时记录当前时间点为第三时间点;
[0023]所述网络节点接收所述应用服务器发送的所述应答信息,同时记录当前时间点为第四时间点,其中所述第四时间点与所述第一时间点的差值为总响应时间,所述第三时间点与所述第二时间点的差值为数据库响应时间,所述总响应时间与所述数据库响应时间用于分析故障问题。
[0024]优选地,所述网络节点包括:
[0025]第一网络节点子单元,用于按照预置的采样频率和用户数,向所述应用服务器发送第一请求。
[0026]优选地,所述应用服务器还用于将所述第二时间点和所述第三时间点发送至所述网络节点;
[0027]所述网络节点还用于计算所述第三时间点与所述第二时间点的差值,并确定为数据库响应时间,判断所述数据库响应时间是否超过预置的数据库响应时间阈值,若是,则确定故障点位于所述应用服务器、所述数据服务器或二者间的通信链路上。
[0028]从上述的技术方案可以看出,本申请实施例提供的软件测试方法应用于网络拓扑结构中,该网络拓扑结构包括若干个网络节点、应用服务器及数据服务器,其中至少一个网络节点向应用服务器发送第一请求,同时记录当前时间点为第一时间点,应用服务器响应第一请求,向数据服务器发送第二请求,同时记录当前时间点为第二时间点,应用服务器在接收到数据服务器反馈的应答信息时,记录当前时间点为第三时间点,同时将应答信息反馈给网络节点,网络节点在收到应答信息时记录当前时间点为第四时间点。由第四时间点和第一时间点的差值可以确定总响应时间,由第三时间点和第二时间点的差值可以确定数据库响应时间。在实际应用中,可以通过对多个网络节点执行上述过程,得到各个网络节点的总响应时间和数据库响应时间,进而根据这些结果确定故障点。
【附图说明】
[0029]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0030]图1为本申请实施例公开的一种软件测试方法流程图;
[0031]图2为本申请实施例公开的另一种软件测试方法流程图;
[0032]图3为本申请实施例公开的一种软件测试系统结构示意图;
[0033]图4为本申请实施例公开的一种网络节点结构示意图。
【具体实施方式】
[0034]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0035]本实施例公开了一种软件测试方案,应用于网络拓扑结构中,该网络拓扑结构包括若干个网络节点、应用服务器和数据服务器。其中,各个网络节点直接或间接地访问应用服务器,由应用服务器根据网络节点的请求,从数据服务器中获取相应的数据,并将数据返回给网络节点。
[0036]参见图1,图1为本申请实施例公开的一种软件测试方法流程图。
[0037]如图1所示,该方法包括:
[0038]步骤S100、若干个网络节点中的至少一个网络节点向应用服务器发送第一请求,同时记录当前时间点为第一时间点;
[0039]实际操作中,可以按照一定的策略选取一个网络节点,由该网络节点向应用服务器发送第一请求,同时记录当前时间点为第一时间点。
[0040]这里,发送的第一请求可以是任意一个包含访问数据库的业务请求。
[0041]在发送第一请求时,网络节点同时记录当前的时间,记为第一时间点。
[0042]步骤S110、所述应用服务器响应所述第一请求,向数据服务器发送第二请求,同时记录当前时间点为第二时间点;
[0043]具体地,应用服务器收到第一请求后会向数据服务器发送第二请求,并且在发送第二请求的同时记录当前时间,记为第二时间点。
[0044]应用服务器向数据服务器发送的第二请求根据第一请求的内容而定,当第一请求是登录数据服务器时,第一请求内必然携带有用户登录信息,则第二请求可以是包含用户登录信息的登录请求;当第一请求是请求获取某条数据时,则第二请求可以是包含用户所要请求数据标识的数据获取请求。
[0045]步骤S120、所述应用服务器接收所述数据服务器反馈的应答信息,同时记录当前时间点为第三时间点;
[0046]具体地,数据服务器收到应用服务器发送的第二请求后,根据请求查询数据库,并将查询到的结果作为应答信息反馈给应用服务器。应用服务器在收到数据服务器反馈的应答信息时,同时记录当前时间,记为第三时间点。
[0047]应用服务器在收到应答信息之后,会将应答信息返回给网络节点。
[0048]步骤S130、所述网络节点接收所述应用服务器发送的所述应答信息,同时记录当前时间点为第四时间点。
[0049]其中所述第四时间点与所述第一时间点的差值为总响应时间,所述第三时间点与所述第二时间点的差值为数据库响应时间,所述总响应时间与所述数据库响应时间用于分析故障问题。
[0050]通过在网络节点执行上述流程,可以得到该网络节点的总响应时间和数据库响应时间,总响应时间减去数据库响应时间即为系统响应时间。也即,本申请方案可以确定出一次数据请求过程中,系统响应时间和数据库响应时间。
[0051]通过对多个网络节点执行上述过程,可以得到各个网络节点的总响应时间和数据库响应时间。本领域技术人员可以根据这些结果确定出故障问题所在。
[0052]举例如,假设在某个网络节点测试得到的数据库响应时间超过正常的数据库响应时间,则可以直接确定问题出现在应用服务器访问数据服务器的过程中,进而通过查询数据服务器的性能报告或者查询位于应用服务器和数据服务器间的隔离装置的日志,可以确定问题所在。
[0053]当然,如果在某个网络节点测试得到的数据库响应时间正常,而总响应时间超标的话,则说明问题出现在当前网络节点与应用服务器之间的通信链路上,因此可以按照向应用服务器逼近的方式,对不同网络节点进行测试,得到各个网络节点的总响应时间,直至发现某个网络节点测试的总响应时间正常时,则可以确定问题出现在该网络节点与上一级网络节点之间的链路上。
[0054]可选的,为了模拟实际场景,在对某个网络节点进行测试时,可以设置采样频率和用户数。采样频率为单个用户向应用服务器发送第一请求的频率,而用户数指的是使用同一网络节点向应用服务器发送请求的用户数目。
[0055]参见图2,图2为本申请实施例公开的另一种软件测试方法流程图。
[0056]如图2所示,该方法包括:
[0057]步骤S200、若干个网络节点中的至少一个网络节点向应用服务器发送第一请求,同时记录当前时间点为第一时间点;
[0058]实际操作中,可以按照一定的策略选取一个网络节点,由该网络节点向应用服务器发送第一请求,同时记录当前时间点为第一时间点。
[0059]这里,发送的第一请求可以是任意一个包含访问数据库的业务请求。
[0060]在发送第一请求时,网络节点同时记录当前的时间,记为第一时间点。
[