一种跨语言的服务器性能测试方法

文档序号:7866735阅读:260来源:国知局
专利名称:一种跨语言的服务器性能测试方法
技术领域
本发明涉及一种服务器测试方法,特别是涉及一种跨语言的服务器性能测试方法。
背景技术
目前现有的服务器性能测试方法,多数针对网页端或游戏端的测试,其原理是通过模拟客户端与服务端的的协议,进行高并发的压力或长时间的连接进行测试。在测试时, 由于测试机要同时进行高并发/长时间的测试,同时需要对测试结果进行保存、整理显示性能的即时状态等。故测试脚本一般是简单而高效的,实行简单的发送/接收,以尽量减少测试时对测试机的性能压力。测试语言也是使用直接接触底层的语言如C这样的过程语言,极少使用面向对象的JAVA/C++。
但随着科技的发展,这些原始的测试方法,逐步暴露出一些缺陷第一、无法解析一些新型的编码传输方式,如Protocol Buffers这些字符流的数据格式规范,gzip这样的压缩规范;第二、在不同环境下的加密传输存在困难。如在android中开发工程师自己书写的加密方式,通常会引用到JAVA的公共库/类,在其他语言中通常找不到对应的包,这导致模拟生成数据困难;第三、若客户端返回内容是经过加密/编码,验证结果也是很困难的;第四、若全面使用面向对象的高级语言(JAVA/C++等)进性能测试,由于测试过程中使用很多的公共库,很有可能导致测试机无法实现高并发,测试不了服务器的最高性能,这样测试结果就没任何意义。
这些缺陷暴露出测试机与测试脚本的性能矛盾测试机器一般性能不是非常好 (相比服务器),且面向对象编程占用大量的资源,故为了能测试出服务器的性能,不会全面使用面向对象编程;而随着科技的发展,大量加密/编码的数据传输方式产生,要求测试时使用面向对象的方法进行解析/解码数据。发明内容
本发明的目的在于克服现有技术的不足,提供一种跨语言的服务器性能测试方法,以最大限度地使用基础过程语言进行测试,只使用高级对象语言进行预处理,尽量少在测试循环中的变量生成,以达到减少测试机压力,并且实现加密/编码功能的目的。
为了达到上述目的,本发明采用的技术方案是,一种跨语言的服务器性能测试方法,应用于服务器性能测试,包括以下步骤步骤1、引入封装好的过程函数类,引入加密/编码函数;步骤2、预定义一个存储返回的数据的字符串;步骤3、预定义解码后的存储用的容器,此容器可以保存解码后的内容;步骤4、获取测试数据,将所有测试数据存储于一个数组内,命名为原始数据组;步骤5、判断是否对原始数据进行加密/编码;步骤6、若需要加密/编码,使用加密/编码算法对原始数据组的所有数据进行编码,存储于一个新的数组,命名为测试数据组,若不编码,则直接使用原始数据组;步骤7、预处理完成,开始循环压力测试;步骤8、若无需加密,则随机抽取一个原始数据组的成员作为测试数据;若需加密,则随机抽取一个测试数组的成员作为测试数据;步骤9、发送测试信息;步骤10、将返回的内容保存于字符串;步骤11、若需要对返回内容解码,则调用解码函数,并·将解码完后的内容存储于容器; 步骤12、根据是否需解码,通过获取字符串/容器的内容,判定本次测试是否通过; 步骤13、调用即时信息收集函数,保存即时信息;步骤14、判断是否测试结束,若未结束则跳转至步骤8 ;步骤15、若测试结束,停止脚本测试。
进一步的,步骤I之前还包括对过程语言函数进行封装。
进一步的,所述的过程语言函数包括传输/接收数据函数及即时信息收集函数。
进一步的,所述的即时信息包括点击数、吞吐量、网络流量及测试错误信息。
与现有技术相比,本发明的有益效果是解决了编码/加密的传输问题;使用面向对象的编程,具有良好的扩充性;将所有的测试数据进行了预处理,在初始化时编译好测试数据。大量简化了循环过程中的脚本,减轻了测试机因使用面向对象语言而产生的压力;循环过程中使用过程语言的类,具有简单迅捷的特性。不仅减轻了测试机的负担,同时也大大降低了测试脚本出错的可能性。


图1为本发明的方法流程图。
具体实施方式
本发明的主旨在于克服现有技术的不足,提供一种跨语言的服务器性能测试方法,解决测试机与测试脚本性能间的矛盾。本发明使用高级对象语言(JAVA/C++)进行数据的编码/加密的预处理;在需要进行发送/接收数据时,调用过程语言书写的库函数进行发送/接收,使用过程语言的函数进行即时数据的整理、显示。通过这种方式,以最大限度地使用基础过程语言进行测试,只使用高级对象语言进行预处理,尽量少在测试循环中的变量生成,以达到减少测试机压力,并且实现加密/编码功能的目的。下面结合实施例参照附图进行详细说明,以便对本发明的技术特征及优点进行更深入的诠释。
为了实现本方法,需要先得到的基础过程语言封装的类,并在高级语言的脚本中调用。其中,需要的封装过程语言函数如下传输/接收数据的函数;收集即时信息的函数, 包含点击数、吞吐量、网络流量、错误数等等。通过引入这些已封装的类,并从开发处得到加密/编码的算法类,在高级语言中引入,便可实现跨语言的性能测试。
本发明的方法流程图如图1所示,一种跨语言的服务器性能测试方法,应用于服务器性能测试,包括以下步骤步骤1、引入封装好的过程函数类,引入加密/编码函数;步骤2、预定义一个存储返回的数据的字符串;
步骤3、预定义解码后的存储用的容器,此容器可以保存解码后的内容;
步骤4、获取测试数据,将所有测试数据存储于一个数组内,命名为原始数据组;
步骤5、判断是否对原始数据进行加密/编码;
步骤6、若需要加密/编码,使用加密/编码算法对原始数据组的所有数据进行编码,存储于一个新的数组,命名为测试数据组,若不编码,则直接使用原始数据组; 步骤7、预处理完成,开始循环压力测试;
步骤8、若无需加密,则随机抽取一个原始数据组的成员作为测试数据;若需加密,则随机抽取一个测试数组的成员作为测试数据;
步骤9、发送测试信息;
步骤10、将服务器返回的数据保存于字符串,此数据为二进制的字符流;
步骤11、若需要对返回内容解码,则调用解码函数,并将解码完后的内容存储于容器; 步骤12、根据是否需解码,通过获取字符串/容器的内容,判定本次测试是否通过; 步骤13、调用即时信息收集函数,保存即时信息;
步骤14、判断是否测试结束,若未结束则跳转至步骤8 ;
步骤15、若测试结束,停止脚本测试。进一步的,步骤I之前还包括对过程语言函数进行封装。进一步的,所述的过程语言函数包括传输/接收数据函数及即时信息收集函数。进一步的,所述的即时信息包括点击数、吞吐量、网络流量及测试错误信息。本发明解决了编码/加密的传输问题;使用面向对象的编程,具有良好的扩充性;将所有的测试数据进行了预处理,在初始化时编译好测试数据。大量简化了循环过程中的脚本,减轻了测试机因使用面向对象语言而产生的压力;循环过程中使用过程语言的类,具有简单迅捷的特性。不仅减轻了测试机的负担,同时也大大降低了测试脚本出错的可能性。以上内容是结合具体的优选方式对本发明所作的进一步详细说明,不应认定本发明的具体实施只局限于以上说明。对于本技术领域的技术人员而言,在不脱离本发明构思的前提下,还可以作出若干简单推演或替换,均应视为由本发明所提交的权利要求确定的保护范围之内。
权利要求
1.一种跨语言的服务器性能测试方法,应用于服务器性能测试,包括以下步骤步骤1、引入封装好的过程函数类,引入加密/编码函数;步骤2、预定义一个存储返回的数据的字符串;步骤3、预定义解码后的存储用的容器,此容器可以保存解码后的内容;步骤4、获取测试数据,将所有测试数据存储于一个数组内,命名为原始数据组;步骤5、判断是否对原始数据进行加密/编码;步骤6、若需要加密/编码,使用加密/编码算法对原始数据组的所有数据进行编码,存储于一个新的数组,命名为测试数据组,若不编码,则直接使用原始数据组;步骤7、预处理完成,开始循环压力测试;步骤8、若无需加密,则随机抽取一个原始数据组的成员作为测试数据;若需加密,则随机抽取一个测试数组的成员作为测试数据;步骤9、发送测试信息;步骤10、将服务器返回的数据保存于字符串,此数据为二进制的字符流;步骤11、若需要对返回内容解码,则调用解码函数,并将解码完后的内容存储于容器; 步骤12、根据是否需解码,通过获取字符串/容器的内容,判定本次测试是否通过; 步骤13、调用即时信息收集函数,保存即时信息;步骤14、判断是否测试结束,若未结束则跳转至步骤8 ;步骤15、若测试结束,停止脚本测试。
2.根据权利要求1所述的跨语言的服务器性能测试方法,其特征在于步骤I之前还包括对过程语言函数进行封装。
3.根据权利要求2所述的跨语言的服务器性能测试方法,其特征在于所述的过程语言函数包括传输/接收数据函数及即时信息收集函数。
4.根据权利要求3所述的跨语言的服务器性能测试方法,其特征在于所述的即时信息包括点击数、吞吐量、网络流量及测试错误信息。
全文摘要
本发明公开了一种跨语言的服务器性能测试方法,应用于服务器性能测试,解决测试机与测试脚本性能间的矛盾。使用高级对象语言进行数据的编码/加密的预处理;在需要进行发送/接收数据时,调用过程语言书写的库函数进行发送/接收,使用过程语言的函数进行即时数据的整理、显示。通过这种方式,以最大限度地使用基础过程语言进行测试,只使用高级对象语言进行预处理,尽量少在测试循环中的变量生成,以达到减少测试机压力,并且实现加密/编码功能的目的。
文档编号H04L12/26GK103023717SQ20121048998
公开日2013年4月3日 申请日期2012年11月27日 优先权日2012年11月27日
发明者林斌 申请人:广东欧珀移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1