DNS服务器压力测试方法、电子设备及可读存储介质与流程

文档序号:29976526发布日期:2022-05-11 12:11阅读:224来源:国知局
DNS服务器压力测试方法、电子设备及可读存储介质与流程
dns服务器压力测试方法、电子设备及可读存储介质
技术领域
1.本技术涉及计算机网络技术领域,尤其涉及一种dns服务器压力测试方法、电子设备及可读存储介质。


背景技术:

2.随着计算机网络技术的不断发展,能够实现域名和相对应的ip地址之间转换的dns(domain name system,域名解析系统)服务器在整个网络中的作用愈发重要,与此同时,对于dns服务器的性能要求也越来越高,目前,通常情况下通过单一的客户端向需要进行压力测试的dns服务器发送压力测试请求,进而完成对dns服务器性能的测试,但是,由于此压力测试方法受限于单台测试服务器的cpu性能以及单一服务器的网络带宽,导致对dns服务器的压力测试结果偏小,所以,当前dns服务器压力测试的准确性低。


技术实现要素:

3.本技术的主要目的在于提供一种dns服务器压力测试方法、电子设备及可读存储介质,旨在解决现有技术中dns服务器压力测试的准确性低的技术问题。
4.为实现上述目的,本技术提供一种dns服务器压力测试方法,应用于压测总节点,所述压测总节点与压测分节点通信连接,所述dns服务器压力测试方法包括:获取待测试dns服务器的压测参数,其中,所述压测参数包括压测地址范围和压测域名总量;依据所述压测地址范围,选取至少一个所述压测分节点作为目标压测分节点;向各所述目标压测分节点发送携带所述压测域名总量的压测请求,以供各所述目标压测分节点依据所述压测域名总量,分别对所述待测试dns服务器进行压力测试;通过收集各所述目标压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
5.可选地,所述依据所述压测地址范围,选取至少一个所述压测分节点作为目标压测分节点的步骤包括:依据所述压测地址范围的主机位地址范围,在预设地址映射表中查询对应的目标压测地址;将所述目标压测地址对应的压测分节点作为所述目标压测分节点。
6.可选地,在所述依据所述压测地址范围的主机位地址范围,在预设地址映射表中查询对应的目标压测地址的步骤之前,所述dns服务器压力测试方法还包括:获取各压测分节点对应的主机位地址和对应的压测分节点地址;依据各所述主机位地址以及各所述目标压测地址之间的一一对应关系,建立预设地址映射表。
7.可选地,所述目标压测分节点包括第一目标压测分节点和第二目标压测分节点,所述通过收集各所述目标压测分节点的压测成功结果,确定所述待测试dns服务器对应的
服务器压测结果的步骤包括:判断至少一个所述第一目标压测分节点发送的压测成功结果共同对应的压测成功总值是否小于预设压测成功阈值;若小于,则继续接收至少一个所述第二目标压测分节点发送的压测成功结果;若不小于,则收集各所述第一目标压测分节点对应的压测域名地址,并依据所述压测域名地址,确定所述待测试dns服务器对应的服务器压测结果。
8.可选地,在所述获取待测试dns服务器的压测参数的步骤之前,所述dns服务器压力测试方法还包括:获取预设数量的常用域名,并将各所述常用域名存储至预设压测域名文件;将所述预设压测域名文件发送至各所述压测分节点。
9.为实现上述目的,本技术还提供一种dns服务器压力测试方法,应用于压测分节点,所述压测分节点与压测总节点通信连接,所述dns服务器压力测试方法包括:若接收到所述压测总节点发送的压测请求,则依据所述压测请求携带的压测域名总量,对待测试dns服务器进行压力测试,得到压测结果;若判定所述压测结果为压测成功结果,则将所述压测成功结果发送至所述压测总节点,以供所述压测总节点通过收集具体压测任务对应的压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
10.可选地,所述依据所述压测请求携带的压测域名总量,对待测试dns服务器进行压力测试的步骤包括:依据所述压测域名域名总量,从预设压测域名文件中选取对应数量的压测域名;将各所述压测域名发送至所述待测试dns服务器,以供所述待测试dns服务器将各所述压测域名解析为对应的压测域名地址。
11.在所述依据所述压测域名总量,从预设压测域名文件中选取对应数量的压测域名的步骤之前,所述dns服务器压力测试方法还包括:接收所述压测总节点发送的预设压测域名文件。
12.为实现上述目的,本技术还提供一种dns服务器压力测试装置,应用于压测总节点,所述压测总节点与压测分节点通信连接,所述dns服务器压力测试装置包括:获取模块,用于获取待测试dns服务器的压测参数,其中,所述压测参数包括压测地址范围和压测域名总量;选取模块,用于依据所述压测地址范围,选取至少一个所述压测分节点作为目标压测分节点;第一发送模块,用于向各所述目标压测分节点发送携带所述压测域名总量的压测请求,以供各所述目标压测分节点依据所述压测域名总量,分别对所述待测试dns服务器进行压力测试;收集模块,用于通过收集各所述目标压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
13.可选地,所述选取模块还用于:依据所述压测地址范围的主机位地址范围,在预设地址映射表中查询对应的目标压测地址;
将所述目标压测地址对应的压测分节点作为所述目标压测分节点。
14.可选地,所述选取模块还用于:获取各压测分节点对应的主机位地址和对应的压测分节点地址;依据各所述主机位地址以及各所述目标压测地址之间的一一对应关系,建立预设地址映射表。
15.可选地,所述目标压测分节点包括第一目标压测分节点和第二目标压测分节点,所述收集模块还用于:判断至少一个所述第一目标压测分节点发送的压测成功结果共同对应的压测成功总值是否小于预设压测成功阈值;若小于,则继续接收至少一个所述第二目标压测分节点发送的压测成功结果;若不小于,则收集各所述第一目标压测分节点对应的压测域名地址,并依据所述压测域名地址,确定所述待测试dns服务器对应的服务器压测结果。
16.可选地,所述dns服务器压力测试装置还用于:获取预设数量的常用域名,并将各所述常用域名存储至预设压测域名文件;将所述预设压测域名文件发送至各所述压测分节点。
17.为实现上述目的,本技术还提供一种dns服务器压力测试装置,应用于压测分节点,所述压测分节点与压测总节点通信连接,所述dns服务器压力测试装置包括:压力测试模块,若接收到所述压测总节点发送的压测请求,则依据所述压测请求携带的压测域名总量,对待测试dns服务器进行压力测试,得到压测结果;第二发送模块,若判定所述压测结果为压测成功结果,则将所述压测成功结果发送至所述压测总节点,以供所述压测总节点通过收集具体压测任务对应的压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
18.可选地,所述压力测试模块还用于:依据所述压测域名域名总量,从预设压测域名文件中选取对应数量的压测域名;将各所述压测域名发送至所述待测试dns服务器,以供所述待测试dns服务器将各所述压测域名解析为对应的压测域名地址。
19.可选地,所述压力测试模块还用于:接收所述压测总节点发送的预设压测域名文件。
20.本技术还提供一种电子设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述dns服务器压力测试方法的程序,所述dns服务器压力测试方法的程序被处理器执行时可实现如上述的dns服务器压力测试方法的步骤。
21.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现dns服务器压力测试方法的程序,所述dns服务器压力测试方法的程序被处理器执行时实现如上述的dns服务器压力测试方法的步骤。
22.本技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的dns服务器压力测试方法的步骤。
23.本技术提供了一种dns服务器压力测试方法、电子设备及可读存储介质,应用于压测总节点,所述压测总节点与压测分节点通信连接,也即,获取待测试dns服务器的压测参数,其中,所述压测参数包括压测地址范围和压测域名总量;进而依据所述压测地址范围,
选取至少一个所述压测分节点作为目标压测分节点,也即,通过压测地址范围确定此次压力测试中的多个单节点测试服务器;进而向各所述目标压测分节点发送携带所述压测域名总量的压测请求,以供各所述目标压测分节点依据所述压测域名总量,分别对所述待测试dns服务器进行压力测试;通过收集各所述目标压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。由于压测总节点与压测分节点通信连接,也即,可将压测总节点和压测分节点作为同一测试集群中的测试节点,即可实现通过多个单节点客户端同一时间对目标dns服务器测试,进而压测总节点汇总后得到最终测试结果的目的,也即,实现了对目标dns服务器进行并发测试的目的,与此同时,由于各节点客户端的cpu性能和网络带宽均不受限,进而能够更加全面地测试目标dns服务器的性能,实现了分布式测试dns服务器的目的,所以克服了现有技术中受限于单台测试服务器的cpu性能以及网络带宽而导致对dns服务器的压力测试结果偏小的技术缺陷,所以,提升了对dns服务器进行压力测试的准确性。
附图说明
24.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
25.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
26.图1为本技术dns服务器压力测试方法第一实施例的流程示意图;图2为本技术dns服务器压力测试方法第二实施例的流程示意图;图3为本技术dns服务器压力测试方法压力测试集群的压测示意图;图4为本技术实施例中dns服务器压力测试方法涉及的硬件运行环境的设备结构示意图。
27.本技术目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
28.为使本技术的上述目的、特征和优点能够更加明显易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本技术保护的范围。
29.实施例一首先,应当理解的是,dns服务器为保存有该网络中所有主机的域名和对应ip地址,并具有将域名转换为ip地址功能的服务器,其中,域名只对应一个ip地址,一个ip地址可对应多个域名,在进行dns服务器的压力测试的过程中,通常情况下由单节点客户端借助dnsperf(dns performance,dns压力测试)等压力测试软件对dns服务器进行压力测试,以测试dns服务器的性能,也即,单节点客户端预先设置由常见的域名构成的域名集,进而通过dnsperf将域名发送至dns服务器,进而dns服务器将域名解析为对应的ip地址后,将成功
解析的ip地址反馈至单节点客户端,进而根据成功解析的ip地址确定dns服务器的qps(query per second,每秒查询率),最终根据qps评估dns服务器的性能,但是,可能受限于单节点客户端的cpu性能以及受限于单一服务器的网络带宽,也即,对于不同的测试客户端来说,最终得到的qps不相同,进而导致对dns服务器的测试准确性不高,所以,当前亟需一种既能解决单个测试服务器测试能力有限,又能解决单个服务器网络带宽受限的问题的方法。
30.本技术实施例提供一种dns服务器压力测试方法,应用于压测总节点,所述压测总节点与压测分节点通信连接,在本技术dns服务器压力测试方法的第一实施例中,参照图1,所述dns服务器压力测试方法包括:步骤s10,获取待测试dns服务器的压测参数,其中,所述压测参数包括压测地址范围和压测域名总量;在本实施例中,需要说明的是,为了实现多个服务器并发测试dns服务器的目的,参照图2,图2为表示dns服务器压力测试方法压力测试集群的压测示意图,其中,master节点为压测总节点,slaver节点为压测分节点,dns系统为待测试dns服务器,为了确保压测结果的准确性,压测节点选择若干台跨3大运营商和多个地域的服务器作为测试服务器构建该压力测试集群,压测总节点可以为任意一个测试服务器,当选定任一测试服务器作为压测总节点之后,其它节点均作为压测分节点,其中,压测总节点用于向压测分节点发送测试任务以及统计压测结果,压测分节点用于向dns服务器发送压力测试请求。
31.另外地,需要说明的是,在进行压力测试前,需对压测总节点和压测分节点进行相应的预处理,其中,压测总节点安装自动化运维工具,例如ansible和chef等,压测分节点安装压力测试工具,例如dnsperf和dnsblast等,以供压测总节点发起总控命令后,各压测分节点通过dnsperf压测工具对dns服务器进行压力测试,各压测分节点收到dns服务器的反馈结果后,将反馈结果发送至压测总节点,进而压测总节点统计此次分布式测试的结果,进而完成对dns服务器的性能。
32.另外地,需要说明的是,所述待测试dns服务器为需要进行压力测试的dns服务器,所述压测总节点为压力测试集群中安装有自动化运维工具的测试服务器,具体数量为一个,所述压测分节点为压力测试集群中安装有压测工具的测试服务器,具体数量为一个或多个,所述压测参数用于表征压力测试过程中相关测试数据,也即,压测关联数据,具体包括压测地址范围和压测域名总量,所述压测地址范围为压测分节点数据,具体可以为压测分节点总量数和用于表征压测分节点身份的数据,所述压测域名总量为压测流量数据,具体可以为压测请求总量。
33.另外地,需要说明的是,所述压测总节点与压测分节点通信连接具体可以为所述压测总节点与各压测分节点均通信连接,具体可以为压测总节点通过自动化运维工具配置压测分节点的ip地址以及对应的用户名密码建立通信连接的方式。
34.作为一种示例,步骤s10包括:获取用户输入的待测试dns服务器服务器的压测关联数据,其中,所述压测关联数据包括压测地址范围和压测流量数据,例如,假设压力测试集群中设置有1个压测总节点以及100个压测分节点,用户输入的压测分节点数据中的压测分节点总量数为30个,压测流量数据为1万个,则依据压测分节点数据确定100个压测分节点中用于此次压力测试任务的30个压测分节点,对于此次压力测试任务的每个压测分节
点,均接收所述压测流量数据。
35.其中,在所述获取待测试dns服务器的压测参数的步骤之前,所述dns服务器压力测试方法还包括:步骤a10,获取预设数量的常用域名,并将各所述常用域名存储至预设压测域名文件;步骤a20,将所述预设压测域名文件发送至各所述压测分节点。
36.在本实施例中,需要说明的是,对于服务器来说,都具有着唯一的ip地址,但是,由于ip地址为一串数字,极难被用户记忆,进而产生了域名这一字符型标识,以构成一套地址转换系统,倘若要访问某一台互联网的服务器又只能通过ip地址实现,所以,此时需要将域名重新转换为ip地址,而这恰恰是dns服务器的价值所在,其保存有一张域名与之相对应的ip地址的表,能够解析域名,对于压力测试集群中的压测节点来说,其域名与ip地址的转换均可通过待测试dns服务器实现,进而当压测分节点向待测试dns服务器发送域名解析请求时,待测试dns服务器能够返回域名对应的ip地址。
37.另外地,需要说明的是,在测试dns服务器的过程中,通常通过常见的域名构成的域名集去评估dns服务器的性能,所以,所述常用域名为常见的域名,具体可以为常见的网站域名,例如,网站域名的格式可以为www.xxx.com,所述压测域名文件为常见域名集。
38.作为一种示例,步骤a10至步骤a20包括:获取预设数量的常见的域名,并将所述常见的域名保存至常见域名集;将所述常见域名集发送至各所述压测分节点。将所述常见域名集作为压测数据集,当执行某次压测任务时,用户在压测总节点输入的压测流量数据,由于各压测分节点均有压测总节点发送的常见域名集,进而各压测分节点可从常见域名集中选择对应数量的域名进行压力测试,例如,假设常见域名集中存在100万个域名,压测流量数据指定依据其中的10万个域名进行压力测试,进而参与此次压测任务的压测分节点则从100万个域名中随机挑选10万个域名作为压测域名,进而完成压力测试。
39.步骤s20,依据所述压测地址范围,选取至少一个所述压测分节点作为目标压测分节点;步骤s30,向各所述目标压测分节点发送携带所述压测域名总量的压测请求,以供各所述目标压测分节点依据所述压测域名总量,分别对所述待测试dns服务器进行压力测试。
40.在本实施例中,需要说明的是,所述压测请求为域名解析请求,也即,将压测域名总量中的压测域名解析为对应的ip地址,所述目标压测分节点为具体压测任务对应的压测分节点,具体可以为压力测试集群中部分压测分节点或压力测试集群中全部压测分节点,由于网络原因的限制,压测分节点向待测试dns服务器发送的压测域名并非能够完全解析成功,也即,存在解析不成功的情况,例如,假设压测分节点发送至待测试dns服务器的压测域名为1万个,可能待测试dns服务器仅返回9990个压测域名对应的ip地址。
41.作为一种示例,步骤s20至步骤s30包括:依据所述压测分节点数据,选取至少一个所述压测分节点作为目标压测分节点;向各所述目标压测分节点发送携带所述压测流量数据的域名解析请求,以供各所述目标压测分节点依据所述压测流量数据,分别对所述待测试dns服务器进行压力测试。由于至少一个压测分节点作为此次压测任务的测试服务器,进而各压测分节点均可通过常用域名集中的压测域名,对待测试dns服务器进行压力测试,并
且由于压测域名为压测分节点在常见域名集中随机选择而成,进而在突破单节点测试的能力极限的同时,降低了压测数据以及网络带宽等其它因素对测试结果的影响,所以,提升了对dns服务器进行压力测试的准确性。
42.其中,所述依据所述压测地址范围,选取至少一个所述压测分节点作为目标压测分节点的步骤包括:步骤b10,依据所述压测地址范围的主机位地址范围,在预设地址映射表中查询对应的目标压测地址;步骤b20,将所述目标压测地址对应的压测分节点作为所述目标压测分节点。
43.在本实施例中,需要说明的是,所述目标压测地址用于表征目标压测分节点的ip地址,所述预设地址映射表用于存储压测分节点和压测分节点对应的ip地址的映射关系,ip地址由网络类型+网络范围+网络位+主机位构成,对于压力测试集群中的压测节点来说,其隶属于同一网段,所以,其ip地址除主机位之外均一致,例如,在一种可实施的方式中,压测总节点的ip地址的格式可以为abc.def.g.0,压测分节点的ip地址的格式可以为abc.def.g.1、abc.def.g.2和abc.def.g.3等。
44.另外地,需要说明的是,所述压测分节点数据包括主机位地址范围和主机位地址,所主机位地址范围用于确定此次压测任务中具体的压测分节点个数,所述主机位地址用于表征压测分节点的主机位,用于确定此次压测任务中具体的压测分节点,例如,假设压力测试集群中所有的压测节点的ip地址为连续的,且压测总节点的ip地址abc.def.g.1,用户输入的压测地址范围为abc.def.g.[1-20],则表明此次压测任务中的压测分节点个数为20个,主机位地址分别是1、2、3和20。
[0045]
作为一种示例,步骤b10至步骤b20包括:依据ip地址范围参数中的起始主机位地址和结束主机位地址之间的差值,确定所述压测分节点的具体个数,以所述起始主机位地址为索引,查询预设地址映射表中对应的起始目标压测地址,其中,所述起始主机位地址用于表征首个目标压测分节点的主机位,所述结束主机位地址用于表征最后一个压测分节点的主机位,所述起始目标压测地址用于表征首个目标压测分节点的ip地址,例如,假设预设地址映射表中压测分节点的ip地址连续,ip地址范围参数中的起始主机位地址为1,ip地址范围参数中的起始主机位地址为20,则通过二者之间的差值确定有20个压测分节点作为目标压测分节点,进而根据的起始目标压测地址abc.def.g.1,依次得到abc.def.g.1、abc.def.g.2、abc.def.g.3...abc.def.g.20;将所述目标压测地址对应的压测分节点作为所述目标压测分节点。
[0046]
在另一种实施方式中,若预设地址映射表中压测分节点的ip地址不连续,则需以ip地址范围参数的各主机位地址为索引,一一查询预设地址映射表,得到目标压测地址,进而将各所述目标压测地址对应的压测分节点作为目标压测分节点。
[0047]
其中,在所述依据所述压测地址范围的主机位地址范围,在预设地址映射表中查询对应的目标压测地址的步骤之前,所述dns服务器压力测试方法还包括:步骤c10,获取各压测分节点对应的主机位地址和对应的压测分节点地址;步骤c20,依据各所述主机位地址以及各所述目标压测地址之间的一一对应关系,建立预设地址映射表。
[0048]
在本实施例中,需要说明的是,所述压测分节点地址用于表征压力测试集群中压
测分节点的ip地址,所述主机位地址用于表征压力测试集群中压测分节点的主机位,由于各压测分节点的ip地址为唯一的,进而各压测分节点的主机位地址也是唯一的。
[0049]
作为一种示例,步骤c10至步骤c20的步骤包括:获取各压测分节点对应的主机位和对应的ip地址;依据各所述主机位以及各所述ip地址之间的一一对应关系,建立预设地址映射表。
[0050]
步骤s40,通过收集各所述目标压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
[0051]
在本实施例中,需要说明的是,所述压测结果用于表征压测分节点发送的压测流量数据的解析结果,具体包压测成功结果和压测失败结果,所述压测成功结果用于表征目标压测分节点接收到待测试dns服务器对压测流量数据解析后返回的ip地址,所述压测失败结果用于表征目标压测分节点未接收到待测试dns服务器对压测流量数据解析后返回的ip地址或目标压测分节点未收到压测总节点发送的压测请求,也即,当压测分节点收到待测试dns服务器对压测流量数据中任一压测域名解析后返回的ip地址,则认为目标压测分节点接收的压测结果为压测成功结果,所述待测试dns服务器的服务器测试结果用于表征待测试dns服务器的性能测试结果,所述收集的方式可以为收集各目标压测分节点的依据压测流量数据,发送解析请求至待测试服务器并得到响应的总量,例如,假设压测流量数据为4万个域名,目标压测分节点包括a、b、c和d,则a、b、c和d均发送1万个域名的解析请求,其中,a的压测结果为压测失败结果,b、c和d的解析成功的域名分别为9999、9998和9995,则a节点可能未收到压测请求或者未接收到待测试dns服务器对压测流量数据解析后返回的ip地址,那么在收集时会将a所接收的1万个域名的解析请求进行剔除,也即,实际压测流量数据为3万个,进而累加得到29992个域名解析数,将29992处于预先设定的测试时间,即可得到目标压测结果。
[0052]
作为一种示例,步骤s40包括:将各所述目标压测分节点中的解析成功的域名进行累加,得到总域名解析数,依据所述总域名解析数和预设测试时间之间的比值,确定目标压测结果。
[0053]
其中,所述目标压测分节点包括第一目标压测分节点和第二目标压测分节点,所述通过收集各所述目标压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果的步骤包括:步骤d10,判断至少一个所述第一目标压测分节点发送的压测成功结果共同对应的压测成功总值是否小于预设压测成功阈值;步骤d20,若小于,则继续接收至少一个所述第二目标压测分节点发送的压测成功结果;步骤d30,若不小于,则收集各所述第一目标压测分节点对应的压测域名地址,并依据所述压测域名地址,确定所述待测试dns服务器对应的服务器压测结果。
[0054]
在本实施例中,需要说明的是,由于目标压测分节点在向待测试dns服务器发送解析请求后,待测试dns服务器会将解析结果返回至目标压测分节点,但是,各目标压测分节点接收解析结果的时间并不完全一致,当目标压测分节点收到解析结果后便将结果发送至压测总节点,所以,对于压测总节点来说,需要设置一个解析结果返回阈值,也即当向压测总节点返回解析结果的目标压测分节点达到该解析结果返回阈值,则根据这些解析结果评
估dns服务器的性能,例如,假设目标压测分节点共有100个,可设置当收到90个目标压测分节点发送的解析结果时,则根据该90个目标压测分节点发送的解析结果,评估dns服务器的性能,所以,所述压测成功总值用于表征所述压测总节点接收的压测成功结果的数量,具体可以为10、20以及30等等,所述压测成功阈值用于触发计算目标压测结果,另外地,需要说明的是,压测总节点在接收已压测成功的目标压测分节点发送的压测结果时,会依据时间戳依次接收,并且当收集到的压测成功结果累计到一定值时,将不再接收其它目标压测分节点发送的压测成功结果,例如,假设目标压测分节点共有100个,其中,压测成功的目标压测分节点有99个,可设置当收到90个目标压测分节点发送压测成功结果后,便不再接收时间戳靠后的另外9个目标压测分节点发送的压测成功结果,所述第一目标压测分节点用于表征已将压测成功结果发送至压测总节点的目标压测分节点,所述第二目标压测分节点用于表征还未将压测成功结果发送至压测总结点的目标压测分节点。
[0055]
作为一种示例,步骤d10至步骤d30包括:判断至少一个所述第一目标压测分节点发送的压测成功结果共同对应的压测成功总值是否小于预设压测成功阈值;若各所述第一目标压测分节点发送的压测成功结果共同对应的压测成功总值小于预设压测成功阈值,则继续接收至少一个所述第二目标压测分节点发送的压测成功结果;若各所述第一目标压测分节点发送的压测成功结果共同对应的压测成功总值不小于预设压测成功阈值,则收集各所述第一目标压测分节点对应的ip地址,并依据收集后ip地址数和预设测试时间之间的比值,确定目标压测结果。
[0056]
本技术实施例提供了一种dns服务器压力测试方法,应用于压测总节点,所述压测总节点与压测分节点通信连接,也即,获取待测试dns服务器的压测参数,其中,所述压测参数包括压测地址范围和压测域名总量;进而依据所述压测地址范围,选取至少一个所述压测分节点作为目标压测分节点,也即,通过压测地址范围确定此次压力测试中的多个单节点客户端;进而向各所述目标压测分节点发送携带所述压测域名总量的压测请求,以供各所述目标压测分节点依据所述压测域名总量,分别对所述待测试dns服务器进行压力测试;通过收集各所述目标压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。由于压测总节点与压测分节点通信连接,也即,可将压测总节点和压测分节点作为同一测试集群中的测试节点,即可实现通过多个单节点客户端同一时间对目标dns服务器测试,进而压测总节点汇总后得到最终测试结果的目的,也即,实现了对目标dns服务器进行并发测试的目的,与此同时,由于各节点客户端的cpu性能和网络带宽均不受限,进而能够更加全面地测试目标dns服务器的性能,实现了分布式测试dns服务器的目的,所以克服了现有技术中受限于单台测试服务器的cpu性能以及网络带宽而导致对dns服务器的压力测试结果偏小的技术缺陷,所以,提升了对dns服务器进行压力测试的准确性。
[0057]
实施例二进一步地,参照图3,在本技术另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,本技术还提供一种dns服务器压力测试方法,应用于压测分节点,所述压测分节点与压测总节点通信连接,所述dns服务器压力测试方法包括:步骤e10,若接收到所述压测总节点发送的压测请求,则依据所述压测请求携带的压测域名总量,对待测试dns服务器进行压力测试,得到压测结果;
步骤e20,若判定所述压测结果为压测成功结果,则将所述压测成功结果发送至所述压测总节点,以供所述压测总节点通过收集具体压测任务对应的压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果;作为一种示例,步骤e10至步骤e20包括:若接收到所述压测总节点发送的压测请求,则依据所述压测请求携带的压测流量数据,对待测试dns服务器进行压力测试,得到压测结果,其中,所述压测结果包括压测成功结果和压测失败结果;若判定所述压测结果为压测成功结果,则将所述压测成功结果发送至所述压测总节点,以供所述压测总节点通过收集具体压测任务对应的压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果,若所述压测结果为压测失败结果,则不将所述失败结果发送至所述压测总节点,其中,所述压测子节点以是否接收到待测试dns服务器发送的对压测流量数据解析后的ip地址为依据,判断压测结果的类型,若接收到待测试dns服务器发送的对压测流量数据解析后的至少一个ip地址,则判定压测结果为压测成功结果,反之则为压测失败结果。
[0058]
其中,所述依据所述压测请求携带的压测域名总量,对待测试dns服务器进行压力测试的步骤包括:步骤f10,依据所述压测域名总量,从预设压测域名文件中选取对应数量的压测域名;步骤f20,将各所述压测域名发送至所述待测试dns服务器,以供所述待测试dns服务器将各所述压测域名解析为对应的压测域名地址;在本实施例中,需要说明的是,所述压测域名总量用于表征所述压测流量数据的大小,具体可以为100、200以及300等等,例如,假设所述预设压测域名文件中共有30万个常用域名,所述压测域名总量为5万个,则说明压测流量数据为5万个,也即,所述目标压测分节点向所述待测试dns服务器发送的解析请求为5万次。
[0059]
作为一种示例,步骤f10至步骤f20包括:依据所述压测域名总量,从预设压测域名文件中选取对应数量的压测域名,其中,所述选取的方式可以为随机选取的方式;将各所述压测域名发送至所述待测试dns服务器,以供所述待测试dns服务器将各所述压测域名解析为对应的压测域名地址。
[0060]
其中,在所述依据所述压测域名总量,从预设压测域名文件中选取对应数量的压测域名的步骤之前,所述dns服务器压力测试方法还包括:步骤g10,接收所述压测总节点发送的预设压测域名文件。
[0061]
作为一种示例,步骤g10包括:接收所述压测总节点发送的用于进行压力测试的常见域名集。
[0062]
本技术实施例提供了一种dns服务器压力测试方法,应用于压测分节点,所述压测分节点与压测总节点通信连接,也即,若接收到所述压测总节点发送的压测请求,则依据所述压测请求携带的压测域名总量,对待测试dns服务器进行压力测试,得到压测结果;若判定所述压测结果为压测成功结果,则将所述压测成功结果发送至所述压测总节点,以供所述压测总节点通过收集具体压测任务对应的压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。相比于通过单一测试节点对目标dns服务器测试进行压力测试的技术手段,本方法可将压测总节点和压测分节点作为同一测试集群中的测试节点,即可实现通过多个单节点客户端同一时间对目标dns服务器测试,进而压测总节点汇总后
得到最终测试结果的目的,所以能够更加全面地测试目标dns服务器的性能,克服了现有技术中受限于单台测试服务器的cpu性能以及网络带宽而导致对dns服务器的压力测试结果偏小的技术缺陷,所以,提升了对dns服务器进行压力测试的准确性。
[0063]
实施例三本技术实施例还提供一种dns服务器压力测试装置,应用于压测总节点,所述压测总节点与压测分节点通信连接,所述dns服务器压力测试装置包括:获取模块,用于获取待测试dns服务器的压测参数,其中,所述压测参数包括压测地址范围和压测域名总量;选取模块,用于依据所述压测地址范围,选取至少一个所述压测分节点作为目标压测分节点;第一发送模块,用于向各所述目标压测分节点发送携带所述压测域名总量的压测请求,以供各所述目标压测分节点依据所述压测域名总量,分别对所述待测试dns服务器进行压力测试;收集模块,用于通过收集各所述目标压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
[0064]
可选地,所述选取模块还用于:依据所述压测地址范围的主机位地址范围,在预设地址映射表中查询对应的目标压测地址;将所述目标压测地址对应的压测分节点作为所述目标压测分节点。
[0065]
可选地,所述选取模块还用于:获取各压测分节点对应的主机位地址和对应的压测分节点地址;依据各所述主机位地址以及各所述目标压测地址之间的一一对应关系,建立预设地址映射表。
[0066]
可选地,所述目标压测分节点包括第一目标压测分节点和第二目标压测分节点,所述收集模块还用于:判断至少一个所述第一目标压测分节点发送的压测成功结果共同对应的压测成功总值是否小于预设压测成功阈值;若小于,则继续接收至少一个所述第二目标压测分节点发送的压测成功结果;若不小于,则收集各所述第一目标压测分节点对应的压测域名地址,并依据所述压测域名地址,确定所述待测试dns服务器对应的服务器压测结果。
[0067]
可选地,所述dns服务器压力测试装置还用于:获取预设数量的常用域名,并将各所述常用域名存储至预设压测域名文件;将所述预设压测域名文件发送至各所述压测分节点。
[0068]
本技术提供的dns服务器压力测试装置,采用上述实施例一中的dns服务器压力测试方法,解决了dns服务器压力测试的准确性低的技术问题。与现有技术相比,本技术实施例提供的dns服务器压力测试装置的有益效果与上述实施例提供的dns服务器压力测试方法的有益效果相同,且该dns服务器压力测试装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
[0069]
实施例四
本技术实施例还提供一种dns服务器压力测试装置,应用于压测分节点,所述压测分节点与压测总节点通信连接,所述dns服务器压力测试装置包括:压力测试模块,若接收到所述压测总节点发送的压测请求,则依据所述压测请求携带的压测域名总量,对待测试dns服务器进行压力测试,得到压测结果;第二发送模块,若判定所述压测结果为压测成功结果,则将所述压测成功结果发送至所述压测总节点,以供所述压测总节点通过收集具体压测任务对应的压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
[0070]
可选地,所述压力测试模块还用于:依据所述压测域名总量,从预设压测域名文件中选取对应数量的压测域名;将各所述压测域名发送至所述待测试dns服务器,以供所述待测试dns服务器将各所述压测域名解析为对应的压测域名地址。
[0071]
可选地,所述压力测试模块还用于:接收所述压测总节点发送的预设压测域名文件。
[0072]
本技术提供的dns服务器压力测试装置,采用上述实施例二中的dns服务器压力测试方法,解决了dns服务器压力测试的准确性低的技术问题。与现有技术相比,本技术实施例提供的dns服务器压力测试装置的有益效果与上述实施例提供的dns服务器压力测试方法的有益效果相同,且该dns服务器压力测试装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
[0073]
实施例五本技术实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一或实施例二中的dns服务器压力测试方法。
[0074]
下面参考图4,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0075]
如图4所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(rom)中的程序或者从存储装置加载到随机访问存储器(ram)中的程序而执行各种适当的动作和处理。在ram中,还存储有电子设备操作所需的各种程序和数据。处理装置、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。
[0076]
通常,以下系统可以连接至i/o接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
[0077]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机
软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从rom被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
[0078]
本技术提供的电子设备,采用上述实施例中的dns服务器压力测试方法,解决了dns服务器压力测试的准确性低的技术问题。与现有技术相比,本技术实施例提供的电子设备的有益效果与上述实施例提供的dns服务器压力测试方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
[0079]
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0080]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
[0081]
实施例六本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的dns服务器压力测试方法。
[0082]
本技术实施例提供的计算机可读存储介质例如可以是u盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0083]
上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
[0084]
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:获取待测试dns服务器的压测参数,其中,所述压测参数包括压测地址范围和压测域名总量;依据所述压测地址范围,选取至少一个所述压测分节点作为目标压测分节点;向各所述目标压测分节点发送携带所述压测域名总量的压测请求,以供各所述目标压测分节点依据所述压测域名总量,分别对所述待测试dns服务器进行压力测试;通过收集各所述目标压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
[0085]
或者若接收到所述压测总节点发送的压测请求,则依据所述压测请求携带的压测域名总量,对待测试dns服务器进行压力测试,得到压测结果;若判定所述压测结果为压测成功结果,则将所述压测成功结果发送至所述压测总节点,以供所述压测总节点通过收集
具体压测任务对应的压测分节点的压测结果,确定所述待测试dns服务器对应的服务器压测结果。
[0086]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0087]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0088]
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
[0089]
本技术提供的计算机可读存储介质,存储有用于执行上述dns服务器压力测试方法的计算机可读程序指令,解决了dns服务器压力测试的准确性低的技术问题。与现有技术相比,本技术实施例提供的计算机可读存储介质的有益效果与上述实施例提供的dns服务器压力测试方法的有益效果相同,在此不做赘述。
[0090]
实施例七本技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的dns服务器压力测试方法的步骤。
[0091]
本技术提供的计算机程序产品解决了dns服务器压力测试的准确性低的技术问题。与现有技术相比,本技术实施例提供的计算机程序产品的有益效果与上述实施例提供的dns服务器压力测试方法的有益效果相同,在此不做赘述。
[0092]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利处理范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1