发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种用于插座集群中stun服务器性能测试的方法及系统,用于解决现有技术中对stun性能的测试中存在的测试流程复杂,人工测量缺乏完整性和测试效果差的问题。
为实现上述目的及其他相关目的,本发明提供一种用于插座集群中stun服务器性能测试的方法,应用于由客户端、集群服务器、测试服务器、路由器和智能插座构成的测试环境中,所述用于插座集群中stun服务器性能测试的方法包括:对所述智能插座进行配置:将所述智能插座和所述客户端连接到所述路由器的无线网络并通过所述客户端用于将所述集群服务器内云服务器的云账号与所述智能插座绑定,使得所述智能插座与所述云服务器建立连接;对所述测试服务器进行配置:通过抓包的方式获取所述客户端发送到所述云服务器的开关报文,在所述测试服务器内构造与所述开关报文相同的测试开关报文,同时为所述测试开关报文配置对应的测试参数;对所述集群服务器进行配置使所述集群服务器内的各服务器相互连接配合以根据所述测试开关报文和所述测试参数对集群服务器内的stun服务器的性能进行测试,其中,通过在网关抓包、采用网络封包软件统计分析来获取stun服务器发送通知消息的性能。
作为本发明的一种优选方案,获取stun服务器发送通知消息的性能的具体为:从所述网络封包软件中获取单位时间内stun服务器发送的测试开关报文的数量,根据所述stun服务器发送的测试开关报文的数量获取stun服务器单位时间内可支持的智能插座的数量。
作为本发明的一种优选方案,对所述集群服务器进行配置至少包括:配置所述集群服务器内网关的静态网络地址转换,映射lvs服务器的虚拟ip地址的端口和haproxy服务器的虚拟ip地址的端口;配置所述lvs服务器为stun服务器的负载均衡设备,配置haproxy服务器为jboss服务器的负载均衡设备。
作为本发明的一种优选方案,所述测试参数包括:循环次数、最大并发用户数量以及发送时长;
作为本发明的一种优选方案,所述循环次数为无限次;所述最大并发用户数量的取值范围为300~800;所述发送时长的取值范围为3min~8min。
为实现上述目的,本发明还提供一种用于插座集群中stun服务器性能测试的系统,所述用于插座集群中stun服务器性能测试的系统包括客户端、集群服务器、测试服务器、路由器和智能插座;所述智能插座与所述路由器通过无线网络连接;所述客户端与所述路由器通过无线网络连接,所述客户端用于将所述集群服务器内云服务器的云账号与所述智能插座绑定,使得所述智能插座与所述云服务器建立连接;所述测试服务器与所述客户端相连,用于通过抓包的方式获取所述客户端发送到所述云服务器的开关报文,并构造与所述开关报文相同的测试开关报文,同时为所述测试开关报文配置对应的测试参数;所述集群服务器与所述测试服务器和所述智能插座相连,通过对内部各服务器的配置实现根据所述测试开关报文和所述测试参数对集群服务器内的stun服务器的性能进行测试,其中,通过在网关抓包、采用网络封包软件统计分析来获取stun服务器发送通知消息的性能。
作为本发明的一种优选方案,获取stun服务器发送通知消息的性能的具体为:从所述网络封包软件中获取单位时间内stun服务器发送的测试开关报文的数量,根据所述stun服务器发送的测试开关报文的数量获取stun服务器单位时间内可支持的智能插座的数量。
作为本发明的一种优选方案,在所述集群服务器中对内部各服务器的配置至少包括:配置所述集群服务器内网关的静态网络地址转换,映射lvs服务器的虚拟ip地址的端口和haproxy服务器的虚拟ip地址的端口;配置所述lvs服务器为stun服务器的负载均衡设备,配置haproxy服务器为jboss服务器的负载均衡设备。
作为本发明的一种优选方案,所述测试参数包括:循环次数、最大并发用户数量以及发送时长。
作为本发明的一种优选方案,所述循环次数为无限次;所述最大并发用户数量的取值范围为300~800;所述发送时长的取值范围为3min~8min。
如上所述,本发明的一种用于插座集群中stun服务器性能测试的方法及系统,具有以下有益效果:
1、本发明通过测试服务器构造与所述开关报文相同的测试开关报文,可以模拟客户端发出的开关报文来远程开关实现了对插座集群中stun性能的测试。
2、通过为所述测试开关报文配置对应的测试参数,同时通过在网关抓包、采用网络封包软件统计分析来获取stun服务器发送通知消息的性能,获取集群环境下单位时间内开关的最大数量,可以节约仪器资源,能够使用较少的人力资源和手机资源,来实现多吞吐量测试。
3、本发明实现了一个业务的完整的逻辑链路的测试。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本发明的目的在于提供一种用于插座集群中stun服务器性能测试的方法及系统,用于解决现有技术中对stun性能的测试中存在的测试流程复杂,人工测量缺乏完整性和测试效果差的问题。以下将详细阐述本发明的一种用于插座集群中stun服务器性能测试的方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种用于插座集群中stun服务器性能测试的方法及系统。
本实施例提供一种用于插座集群中stun服务器性能测试的方法,本实施例涉及智能插座集群环境下,针对stun服务器发送通知消息给插座的业务性能测试方法,尤其涉及在人力资源不够,设备不足的情况下,利用loadrunner解决插座集群环境下测试stun性能的问题,对于集群环境stun性能测试,且希望节省人力的企业尤其重要。本实施例主要是通过模拟现实环境中大用户同时使用智能插座来测试stun服务器的发送消息性能。
智能插座的远程开关功能主要是指智能插座在外网环境中通过手机app远程控制家中的插座的开启和关闭功能,而stun服务器的发送通知消息是指stun服务器通知智能插座取向jboss云服务器取命令的报文。具体的智能插座远程开关的业务逻辑如下:
步骤1,手机app发送开报文到云服务器(jboss服务器);jboss服务器是一种为java应用服务器。
步骤2,jboss服务器将对应的app操作命令和客户端信息存入mysql服务器;
步骤3,jboss服务器通知stun服务器查看智能插座在线情况,再让stun服务器再去通知智能插座;
步骤4,stun服务器发送通知消息给智能插座,找云服务器去取app发给智能插座的命令;
步骤5,jboss服务器查看数据库后,把命令发送给智能插座插座;
步骤6,智能插座收到后执行,并把命令执行结果反馈给云服务器;
步骤7,手机app异步来向云服务器取智能插座的执行结果。
这样就完成一个插座开关的业务逻辑,本实施例主要测试是步骤1到步骤4。
具体地,如图1所示,本实施例提供一种用于插座集群中stun服务器性能测试的方法,应用于由客户端、集群服务器、测试服务器、路由器和智能插座构成的测试环境中。在本实施例中,所述测试服务器采用loadrunner服务器。
在本实施例中,集群环境下的集群服务器主要包括:
ameoba服务器是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy服务器。
jboss是一种为java应用服务器,java中文译文为一种可以撰写跨平台应用软件的面向对象的程序设计语言。
lvs服务器,lvs是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
haproxy服务器是提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机。
stun服务器,stun(Simple Traversal of UDP over NATs,NAT的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。其中,NAT(Network Address Translation)为网络地址转换。
Mysql服务器,Mysql是一个关系型数据库管理系统。
Gateway网关,是传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。
具体地,如图1所示,所述用于插座集群中stun服务器性能测试的方法包括以下步骤。
步骤S11,对所述智能插座进行配置:将所述智能插座和所述客户端连接到所述路由器的无线网络并通过所述客户端用于将所述集群服务器内云服务器的云账号与所述智能插座绑定,使得所述智能插座与所述云服务器建立连接。所述客户端可为手机、pad等掌上智能终端。
具体地,对所述智能插座进行配置如下:初始化插座,接通电源,等待开机完成后,按下LED电源按钮,手机搜索插座的ssid,将家用的无线路由器的ssid保存到插座,重启插座就可以连上家用无线路由器,然后用手机连接家用无线路由器,手机通过app(应用)登入云账号,发现插座,并将云账号和插座绑定。此时插座和云服务器就连通,可以远程操作。
步骤S12,对所述测试服务器进行配置:通过抓包的方式获取所述客户端发送到所述云服务器的开关报文,在所述测试服务器内构造与所述开关报文相同的测试开关报文,同时为所述测试开关报文配置对应的测试参数。在本实施例中,所述测试服务器采用loadrunner服务器,即在所述loadrunner服务器内构造与所述开关报文相同的测试开关报文,同时为所述测试开关报文配置对应的测试参数。
具体地,在本实施例中,所述测试参数至少包括:循环次数、最大并发用户数量以及发送时长;其中,所述循环次数为无限次;所述最大并发用户数量的取值范围为300~800;所述发送时长的取值范围为3min~8min。
具体地,在本实施例中,通过抓包,得到手机app发往云服务器的http报文,再用loadrunner服务器编辑脚本构造出相同的http报文,配置循环次数为无限,最大并发用户为500个,发送时长为5分钟,点击开始,观察反馈报文情况。
通过loadrunner服务器模拟客户端app发出的开关报文来远程开关智能插座,解决了按照业务来测试,形成一个逻辑链路,能有效的解决分段测试带来测试不正确,脱离实际业务的问题。
loadrunner服务器可以通过编写一个循环的开关脚本来完成集群环境下单位时间内开关的最大数量,再通过wireshark的IO统计,就可以得到stun服务器的发送消息性能值。
步骤S13,对所述集群服务器进行配置使所述集群服务器内的各服务器相互连接配合以根据所述测试开关报文和所述测试参数对集群服务器内的stun服务器的性能进行测试,其中,通过在网关抓包、采用网络封包软件统计分析来获取stun服务器发送通知消息的性能。
具体地,在本实施例中,对所述集群服务器进行配置至少包括:配置所述集群服务器内网关的静态网络地址转换,映射lvs服务器的虚拟ip地址的端口和haproxy服务器的虚拟ip地址的端口;配置所述lvs服务器为stun服务器的负载均衡设备,配置haproxy服务器为jboss服务器的负载均衡设备。
更进一步地,配置如下:
1、配置网关的静态nat,映射内部的lvs服务器vip地(虚拟ip地址)址3478端口和haproxy服务器vip地址的80端口。
2、配置lvs服务器为stun负载均衡设备、配置haproxy服务器均为jboss负载均衡设备,lvs1服务器和lvs2服务器,haproxy1服务器haproxy2服务器之间实现HA,HA即高可用,主、备切换。
3、配置stun服务器服务,配置jboss服务器相关业务,连通mysql服务器。
4、配置ameoba主服务器和备服务器,配置mysql服务器读写分离,配置mysql主服务器和备服务器,创建相关数据库和表。ameoba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。
在本实施例中,获取stun服务器发送通知消息的性能的具体为:从所述网络封包软件中获取单位时间内stun服务器发送的测试开关报文的数量,根据所述stun服务器发送的测试开关报文的数量获取stun服务器单位时间内可支持的智能插座的数量。
如图2所示,本实施例中的用于插座集群中stun服务器性能测试的方法简单可以通过如下过程进行描述。
1、初始化智能插座,连接Wifi,绑定云账号;
2、配置完集群环境使之能正常工作;
3、loadunner配置,修改loadrunner脚本,构造插座“开”报文,点击开始,观察httpresponse报文情况;
4、在网关进行抓包,再用wireshark软件打开,查看统计中的I/O Graghs,观察单位时间内发送的stun报文为多少,可以判断stun服务器每秒支持插座开关操作的数量。
为实现上述用于插座集群中stun服务器性能测试的方法,本实施例对应提供提供一种用于插座集群中stun服务器性能测试的系统,如图3和图4所示,用于插座集群中stun服务器性能测试的系统1包括客户端11、路由器12、智能插座13、测试服务器14、集群服务器15。
所述智能插座13与所述路由器12通过无线网络连接。所述客户端11与所述路由器12通过无线网络连接,所述客户端11可为手机、pad等掌上智能终端。所述客户端11用于将所述集群服务器15内云服务器的云账号与所述智能插座13绑定,使得所述智能插座13与所述云服务器建立连接。
具体地,对所述智能插座13进行配置如下:初始化插座,接通电源,等待开机完成后,按下LED电源按钮,手机搜索插座的ssid,将家用的无线路由器12的ssid保存到插座,重启插座就可以连上家用无线路由器12,然后用手机连接家用无线路由器12,手机通过app(应用)登入云账号,发现插座,并将云账号和插座绑定。此时插座和云服务器就连通,可以远程操作。
测试服务器14是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。
在本实施例中,所述测试服务器14与所述客户端11相连,用于通过抓包的方式获取所述客户端11发送到所述云服务器的开关报文,并构造与所述开关报文相同的测试开关报文,同时为所述测试开关报文配置对应的测试参数。在本实施例中,所述测试服务器14采用loadrunner服务器,即在所述loadrunner服务器内构造与所述开关报文相同的测试开关报文,同时为所述测试开关报文配置对应的测试参数。
具体地,在本实施例中,所述测试参数包括:循环次数、最大并发用户数量以及发送时长,其中,所述循环次数为无限次;所述最大并发用户数量的取值范围为300~800;所述发送时长的取值范围为3min~8min。
通过loadrunner服务器模拟客户端11app发出的开关报文来远程开关智能插座13,解决了按照业务来测试,形成一个逻辑链路,能有效的解决分段测试带来测试不正确,脱离实际业务的问题。
loadrunner服务器可以通过编写一个循环的开关脚本来完成集群环境下单位时间内开关的最大数量,再通过wireshark的IO统计,就可以得到stun服务器的发送消息性能值。
所述集群服务器15与所述测试服务器14和所述智能插座13相连,通过对内部各服务器的配置实现根据所述测试开关报文和所述测试参数对集群服务器15内的stun服务器的性能进行测试,其中,通过在网关抓包、采用网络封包软件统计分析来获取stun服务器发送通知消息的性能。
在本实施例中,如图4所述,所述集群服务器15包括:
ameoba服务器,是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy服务器。在本实施例中,所述集群服务器15包含两个ameoba服务器,如图4中,所示的ameoba1和ameoba2。
jboss是一种为java应用服务器,java中文译文为一种可以撰写跨平台应用软件的面向对象的程序设计语言。在本实施例中,所述集群服务器15包含两个jboss服务器,如图4中,所示的jboss1和jboss2。
lvs服务器,lvs是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。在本实施例中,所述集群服务器15包含两个lvs服务器,如图4中,所示的lvs1和lvs2。
haproxy服务器是提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机。在本实施例中,所述集群服务器15包含两个haproxy服务器,如图4中,所示的haproxy1和haproxy2。
stun服务器,stun(Simple Traversal of UDP over NATs,NAT的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端11找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。其中,NAT(Network Address Translation)为网络地址转换。在本实施例中,所述集群服务器15包含两个stun服务器,如图4中,所示的stun1和stun2。
Mysql服务器,Mysql是一个关系型数据库管理系统。在本实施例中,所述集群服务器15包含四个Mysql服务器,如图4中,所示的Mysql-w1和Mysql-w2、Mysql-r1和Mysql-r2。
Gateway网关,是传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器12类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。在本实施例中,所述集群服务器15包含两个Gateway网关,如图4中,所示的Gw1和Gw2。
图4中出现的vip意思为虚拟ip地址,vip1意思为虚拟ip地址1,vip2意思为虚拟ip地址2,HA即高可用,主、备切换,LB即为负载均衡。
具体地,在本实施例中,所述集群服务器15中对内部各服务器的配置至少包括:配置所述集群服务器15内网关的静态网络地址转换,映射lvs服务器的虚拟ip地址的端口和haproxy服务器的虚拟ip地址的端口;配置所述lvs服务器为stun服务器的负载均衡设备,配置haproxy服务器为jboss服务器的负载均衡设备。
更进一步地,配置如下:
1、配置网关的静态nat,映射内部的lvs服务器vip地(虚拟ip地址)址3478端口和haproxy服务器vip地址的80端口。
2、配置lvs服务器为stun负载均衡设备、配置haproxy服务器均为jboss负载均衡设备,lvs1服务器和lvs2服务器,haproxy1服务器haproxy2服务器之间实现HA。
3、配置stun服务器服务,配置jboss服务器相关业务,连通mysql服务器。
4、配置ameoba主服务器和备服务器,配置mysql服务器读写分离,配置mysql主服务器和备服务器,创建相关数据库和表。
具体地,在本实施例中,获取stun服务器发送通知消息的性能的具体为:从所述网络封包软件中获取单位时间内stun服务器发送的测试开关报文的数量,根据所述stun服务器发送的测试开关报文的数量获取stun服务器单位时间内可支持的智能插座13的数量。
综上所述,本发明通过测试服务器14构造与所述开关报文相同的测试开关报文,可以模拟客户端11发出的开关报文来远程开关实现了对插座集群中stun性能的测试;通过为所述测试开关报文配置对应的测试参数,同时通过在网关抓包、采用网络封包软件统计分析来获取stun服务器发送通知消息的性能,获取集群环境下单位时间内开关的最大数量,可以节约仪器资源,能够使用较少的人力资源和手机资源,来实现多吞吐量测试;本发明实现了一个业务的完整的逻辑链路的测试。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。