CN105915529A - 一种报文生成方法及装置 - Google Patents

一种报文生成方法及装置 Download PDF

Info

Publication number
CN105915529A
CN105915529A CN201610334503.1A CN201610334503A CN105915529A CN 105915529 A CN105915529 A CN 105915529A CN 201610334503 A CN201610334503 A CN 201610334503A CN 105915529 A CN105915529 A CN 105915529A
Authority
CN
China
Prior art keywords
data
server
protocol type
stress test
configuration file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610334503.1A
Other languages
English (en)
Other versions
CN105915529B (zh
Inventor
姚文迪
丁玲
宋琪
罗诗尧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weimeng Chuangke Network Technology China Co Ltd
Original Assignee
Weimeng Chuangke Network Technology China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Weimeng Chuangke Network Technology China Co Ltd filed Critical Weimeng Chuangke Network Technology China Co Ltd
Priority to CN201610334503.1A priority Critical patent/CN105915529B/zh
Publication of CN105915529A publication Critical patent/CN105915529A/zh
Application granted granted Critical
Publication of CN105915529B publication Critical patent/CN105915529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种报文生成方法,用以解决现有技术中无法对非常规协议类型的服务器进行压力测试的问题。该方法包括:确定待测试服务器的网络协议类型;所述服务器的网络协议类型为服务器与客户端进行交互时使用的通信协议的类型;当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的非常规协议类型时,调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,得到待发送报文。本申请还公开了一种报文生成装置。

Description

一种报文生成方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种报文生成方法及装置。
背景技术
随着互联网技术的飞速发展,网民的数量越来越多,对互联网中服务器的负载能力的要求也越来越高。比如,当服务器的并发用户数量较大时,服务器需要有较强的负载能力,当服务器中的并发用户数量超过服务器的负载能力时,可能会出现服务器宕机等情况,从而导致用户的体验较差。
开发人员可以通过对服务器进行压力测试来测试服务器的最大负载能力,所述压力测试指给服务器施加大负载(大数据量、并发用户数量较大等),并观察服务器在大负载时的操作行为,从而有效地判断服务器是否具有良好的容错能力和可恢复能力,以便获得服务器所能承受的最大负载。
对服务器进行压力测试是通过压力测试工具来进行的。所述压力测试工具可以模拟用户通过客户端对服务器的访问行为,向服务器发起大量的并发请求,同时检测服务器的资源使用情况,以及服务器的运行情况。由于服务器和客户端之间一般是通过服务器和客户端预先约定好的应用层协议进行数据交互的,即客户端在向服务器发起请求时,是通过向服务器发送报文的方式进行的。所述报文,为根据服务器与客户端预先约定的网络协议生成的、数据格式与所述约定的网络协议的数据格式相符的数据。
同样,压力测试工具在进行压力测试时,也是以向服务器发送报文的方式向服务器发起请求的。由于提供不同服务的服务器与客户端之间进行交互时使用的应用层协议的类型往往不同,那么,在对服务器进行压力测试时,压力测试工具向被测试服务器发送的报文的数据格式,需要与被测试服务器的应用层协议要求的数据格式相同。
现有技术中,压力测试工具在对服务器进行压力测试时,会通过自带的数据处理算法,对配置文件中的数据进行解析,然后对的解析得到的数据进行数据封装,得到待发送报文,然后利用所述待发送报文对服务器进行压力测试。所述配置文件为预先准备的、用于向压力测试工具提供压力测试时所使用的测试参数的文件。
在对服务器进行压力测试时,需要预先准备与待测试服务器的协议类型相匹配的配置文件。配置文件和能够成功对配置文件进行解析的算法之间存在一一映射关系,即若与不同的配置文件分别匹配的协议类型不同,则能够成功对所述不同的配置文件进行解析的算法也不同。
现有技术中,压力测试工具只能通过自带的算法对配置文件中的数据进行处理,因此最终所生成的报文的协议类型只能是压力测试工具自带的算法所支持的协议类型。所述自带的算法,是指压力测试工具在被发布时,由压力测试工具的开发商设置在压力测试工具中的算法。利用该些算法,能够实现对与HTTP协议、WebDAV协议、SOAP协议、LDAP协议和XMPP协议相匹配的配置文件的成功解析。为便于描述,一般将自带的算法所支持的协议类型称为常规协议类型,将自带的算法不支持的协议类型称为非常规协议类型。当服务器的应用层协议不属于所述常规协议类型时,压力测试工具便无法对其进行压力测试。即,现有技术中,无法对非常规协议类型的服务器进行压力测试,所述非常规协议类型的服务器为与客户端进行交互时使用的应用层通信协议的类型为非常规协议类型的服务器。
发明内容
本申请实施例提供一种报文生成方法,用以解决现有技术中无法对非常规协议类型的服务器进行压力测试的问题。
本申请实施例还提供一种报文生成装置,用以解决现有技术中无法对非常规协议类型的服务器进行压力测试的问题。
本申请实施例采用下述技术方案:
一种报文生成方法,包括:
确定待测试服务器的网络协议类型;所述服务器的网络协议类型为服务器与客户端进行交互时使用的通信协议的类型;
当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的非常规协议类型时,调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,得到待发送报文;所述配置文件,为用于对所述待测试服务器进行压力测试所使用的配置文件;
所述非常规算法,包括:用于对与所述非常规算法匹配的配置文件中的数据进行解析的解析算法,以及利用对配置文件进行解析得到的数据合成相应的待发送报文的合成算法。
一种报文生成装置,其特征在于,包括:
网络协议类型确定单元,用于确定待测试服务器的网络协议类型;所述服务器的网络协议类型为服务器与客户端进行交互时使用的通信协议的类型;
报文确定单元,用于当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的非常规协议类型时,调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,得到待发送报文;所述配置文件,为用于对所述待测试服务器进行压力测试所使用的配置文件;
所述非常规算法,包括:用于对与所述非常规算法匹配的配置文件中的数据进行解析的解析算法,以及利用对配置文件进行解析得到的数据合成相应的待发送报文的合成算法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对非常规网络协议类型的配置文件进行解析,并利用解析得到的数据合成待发送报文,进而可以利用合成的待发送报文进行压力测试,解决了现有技术中无法对非常规协议类型的服务器进行压力测试的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例1提供的一种报文生成方法的实现流程示意图;
图2a为本申请实施例2提供的用于定义协议类型的代码的示意图;
图2b为本申请实施例2提供的用于定义被测服务器地址的代码的示意图;
图2c为本申请实施例2提供的用于定义测试时wesync协议报文中用户信息的代码的示意图;
图2d为本申请实施例2提供的用于定义测试时wesync协议报文中代理信息数据的代码的示意图;
图2e为本申请实施例2提供的用于定义wesync协议报文中请求数据的代码的示意图;
图3为本申请实施例2提供的一种报文生成方法的实现流程示意图;
图4为本申请实施例3提供的一种报文生成装置的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
为解决现有技术中无法对非常规协议类型的服务器进行压力测试的问题,本申请实施例1提供一种报文生成方法。本申请实施例提供的报文生成方法的执行主体可以是压力测试工具,例如,对服务器进行压力测试的压力测试工具,等等。
为便于描述,下文以该方法的执行主体为压力测试工具为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为压力测试工具只是一种示例性的说明,并不应理解为对该方法的限定。
该方法的实现流程示意图如图1所示,包括下述步骤:
步骤11:确定待测试服务器的网络协议类型;
所述服务器的网络协议类型为服务器与客户端进行交互时使用的通信协议的类型。
本申请实施例中,所述网络协议可以是应用层协议,应用层协议(Application Layer Protocol)定义了运行在不同端系统上的应用程序间进行信息交互的规则。
本申请实施例中,根据应用层协议实现的功能的不同,可以对所述应用层协议进行分类,得到不同的网络协议类型,所述应用层协议的类型比如可以是文件传输协议(File Transfer Protocol,FTP)、超文本传输协议(Hyper Text TransferProtocol,HTTP)和简单邮件传送协议(Simple Mail Transfer Protocol,SMTP),等等。所述网络协议类型还可以是开发人员自定义的、用于对运行于不同端系统上的应用程序间进行信息交互的网络协议类型。
本申请实施例中,在进行压力测试前,会预先确定待测试服务器的网络协议类型,以便后续根据确定的待测试服务器的网络协议类型,选择与确定的网络协议类型相匹配的算法,对配置文件中的参数进行解析。所述配置文件为预先准备的、用于向压力测试工具提供压力测试时所使用的测试参数的文件。
在实际应用中,待测试服务器的网络协议类型可以根据配置文件中的参数确定。所述配置文件比如可以是利用可扩展标记语言(Extensible MarkupLanguage,xml)编写的配置文件,则测试人员可以将待测试服务器的网络协议类型通过xml语言的session标签进行定义,那么压力测试工具便可以根据所述配置文件的session标签中对网络协议类型的定义,确定待测试服务器的网络协议类型。例如,当待测试服务器的网络协议类型为wesync类型时,则xml代码<session name="wesync"type="ts_wesync">即可将网络协议类型定义为wesync。
本申请实施例中,测试人员会根据测试需求,预先将测试参数写入到所述配置文件中,所述配置文件中的测试参数包括但不限于:待测试服务器地址数据、请求数据、用户信息数据和代理信息数据。
其中,所述待测试服务器地址数据为用于确定待测试服务器的地址的数据,一般为IP地址和网络端口等数据。所述请求数据为用于定义压力测试工具与服务器之间的交互行为的数据,比如可以是用于定义测试工具如何模拟用户操作行为的数据,例如当所述交互行为是请求打开服务器中的某个网页时,则所述请求数据为包含用于定义请求打开服务器中的某个网页这一操作行为的数据。
本申请实施例中,可以模拟用户的账户在登录状态时,用户通过客户端与服务器的交互行为,则所述用户信息数据为与服务器进行交互时的用户账户相关信息,所述用户账户相关信息比如可以是账户身份标识信息。
本申请实施例中,如果待生成的报文中还需要包含一些其它信息,则可以将所述其它信息写入配置文件中的代理信息数据中,所述其它信息比如可以是当前客户端版本信息、客户端与服务器进行通信的通信密钥信息,等等。
比如,可以通过下述代码,定义报文发送端的浏览器信息和操作系统信息。
<option type="ts_wesync"name="user_agent">
<user_agent probability="100">Mozilla/5.0(Windows;U;Windows NT 5.2;fr-FR;rv:1.7.8)Gecko/20050511Firefox/1.0.4</user_agent>
</option>
其中,Mozilla/5.0(Windows;U;Windows NT 5.2;fr-FR;rv:1.7.8)Gecko/20050511Firefox/1.0.4为浏览器版本信息。
步骤12:当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的非常规协议类型时,调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,得到待发送报文;
所述配置文件,为用于对所述待测试服务器进行压力测试所使用的配置文件;
所述非常规协议类型,为压力测试工具自带的算法不支持的协议类型。
所述非常规算法,包括:用于对与所述非常规算法匹配的配置文件中的数据进行解析的解析算法,以及利用对配置文件进行解析得到的数据合成相应的待发送报文的合成算法。
本申请实施例中,所述待发送报文为根据服务器与客户端预先约定的网络协议生成的、数据格式与所述约定的网络协议的报文的数据格式相符的数据。比如,如果服务器与客户端预先约定的网络协议为HTTP协议,则HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分按照特定格式组合而成,那么待发送报文的数据格式也应当与所述HTTP请求报文的数据格式相同。
本申请实施例中,当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的常规协议类型时,压力测试工具便可以通过自带的算法,对配置文件进行解析。当所述待测试服务器的网络协议类型为非常规协议类型时,可以调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,得到待发送报文。
本申请实施例中,由于不同网络协议类型的报文的数据格式不同,则对不同网络协议类型的报文进行配置的配置文件的编写规则也不同,那么开发人员会根据待测试服务器的网络协议类型来编写所述配置文件。同样,对配置不同网络协议类型的配置文件进行解析的算法也不同。
例如,在利用xml语言定义服务器地址时,可以编写如下xml代码来定义:
<servers>
<server host="192.168.1.3"port="80"type="tcp"></server>
</servers>
其中,测试人员可以通过修改上述代码中server host的值和port的值来修改服务器地址和服务器网络端口,服务器地址为192.168.1.3,网络端口为80,只是一种示例性说明。
本申请实施例中,用于对与所述非常规算法匹配的配置文件中的数据进行解析的解析算法,为可以根据配置文件的编写规则,获取配置文件中各个标签所定义的测试参数的算法。由于配置文件的编写规则是已知的,那么,开发人员可以根据配置文件的编写规则,来编写对该配置文件进行解析的解析算法,以使得所述解析算法可以获取该配置文件中各个标签所定义的测试参数。
本申请实施例中,利用对配置文件进行解析得到的数据合成相应的待发送报文的合成算法,为可以根据服务器与客户端之间约定的网络协议的报文的数据格式,将对配置文件进行解析得到的数据,合成与配置文件配置的报文的数据格式相符的待发送报文的算法。由于服务器与客户端之间约定的网络协议的报文的数据格式是已知的,那么,开发人员可以根据服务器与客户端之间约定的网络协议的报文的数据格式,来编写所述合成算法,以使得所述合成算法可以合成与配置文件配置的报文的数据格式相符的待发送报文。
本申请实施例中,在开发人员预先将所述非常规算法设置于所述压力测试工具中后,当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的非常规协议类型时,便可以调用所述非常规算法对配置文件中的数据进行处理,得到待发送报文。
具体地,首先,调用所述非常规算法的解析算法,对用于配置所述非常规网络协议类型的配置文件进行解析,对配置文件进行解析得到的数据,包括但不限于:待测试服务器地址数据、代理信息数据、用户信息数据和请求数据;其中,所述用户信息数据为由不同真实用户的用户数据组成的数据。
然后,调用所述非常规算法的合成算法,将对用于配置所述非常规网络协议类型的配置文件进行解析得到的服务器地址数据、代理信息数据、用户信息数据和请求数据,按照所述非常规协议类型的报文的格式进行组合,即可得到与所述非常规网络协议类型的报文的数据格式相符的待发送报文。
本申请实施例中,所述非常规算法的合成算法,对解析得到的数据进行合成得到待发送报文的过程,也可称为数据封装过程。
需要说明的是,本申请实施例中,所述用户信息数据为由不同真实用户的用户数据组成的数据。所述真实用户的用户数据为服务器在日常运营过程中所积累的真实用户的用户数据,真实用户的用户数据中可以记录有用户的各项属性信息,比如用户地域分布、用户性别比例、用户行为偏好比例等数据。
在实际应用中,调用真实用户的用户数据进行测试时,可以直接调用用于存储用户数据的数据库中的相应字段的数据,来获取真实用户的用户数据。具体地,可以在配置文件中通过<setdynvars>标签来定义用户数据,比如,当用于存储用户数据的数据库文件名为userdb时,可以通过下述代码调用真实用户的用户数据:
<setdynvars sourcetype="file"fileid="userdb"delimiter=";"order=iter>
<var name="userid"/>
<var name="otherblank1"/>
</setdynvars>
在实际应用中,真实用户的用户数据可以使压力测试更接近真实情况,比如当待测试服务器为分布于不同地区的服务器构成的服务器集群时,根据真实用户的用户数据中的地域分布数据,可以真实地模拟运营时,服务器集群中不同地区的服务器的使用情况;当待测试服务器可以提供多种不同服务时,根据真实用户的用户数据中的用户行为偏好比例,可以真实地模拟运营时,对服务器中提供不同服务的各模块的使用情况。
基于根据真实的用户数据,可以真实地模拟运营时服务器的使用情况,本申请实施例中,可以使用真实用户的用户数据,对服务器进行压力测试,以使得压力测试的过程更接近用户真实使用的过程,相对于传统压力测试中使用单一的虚拟用户数据进行压力测试,本申请实施例得到的压力测试的结果更真实,对完善服务器更具参考意义。
本申请实施例中,在使用真实的用户数据进行压力测试时,可以使用不同真实用户的用户数据同时进行测试,以使得压力测试中,可以更真实地模拟不同用户之间的交互行为,相对于传统压力测试中使用单一的虚拟用户数据进行压力测试,本申请实施例得到的压力测试的结果更真实,对完善服务器更具参考意义。
本申请实施例中,在通过调用所述非常规算法的合成算法得到待发送报文后,便可以将得到的待发送报文发送至待测试服务器,进行压力测试。具体地,可以在压力测试工具和待测试服务器之间创建一个传输控制协议(Transmission Control Protocol,TCP)连接,然后将所述待发送报文发送给创建的TCP连接。
本申请实施例中,单个待发送报文相当于用户的单个请求,本申请实施例提供的方法可以模拟多个不同用户,向服务器并行发起请求的行为,即并行发送多个待发送报文,以便检测服务器的最大负载能力。
本申请实施例中,在将所述待发送报文发送给创建的TCP连接后,便可以监测服务器的运行状况,所述服务器的运行状况,比如可以是服务器的网络带宽利用率、物理内存使用情况、中央处理器(Central Processing Unit,CPU)使用率,等等。本申请实施例中,可以对服务器的任何运行状况进行监控,本申请实施例对此不做限定。
本申请实施例中,可以自动检测压力测试是否完成,在检测到压力测试完成后,便可以自动生成压力测试结果分析文件。具体地,可以通过检测用于执行压力测试的进程是否已经结束,来判断压力测试是否完成,当检测到用于执行压力测试的进行已经结束后,便可以自动生成压力测试结果分析文件。无需人工手动查看测试是否完成,无需人工生成压力测试结果分析文件,提高了压力测试结果分析文件的生成效率,节省了人力资源。
本申请实施例1提供的报文生成方法,通过调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对非常规网络协议类型的配置文件进行解析,并利用解析得到的数据合成待发送报文,进而可以利用合成的待发送报文进行压力测试,解决了现有技术中无法对非常规协议类型的服务器进行压力测试的问题。
需要说明的是,实施例1所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤11的执行主体可以为设备1,步骤12的执行主体可以为设备2;又比如,步骤11和步骤12的执行主体均为设备1;等等。
实施例2
基于前述实施例1详细叙述了本申请的发明构思,为了便于更好的理解本申请的技术特征、手段和效果,下面对本申请的报文生成方法做进一步说明,从而形成了本申请的又一个实施例。
本申请实施例2中的报文生成过程与实施例1中所述报文生成过程相似,实施例2中没有介绍到的其它一些步骤可以参见实施例1中的相关描述,此处不再赘述。
在对该方案的实现方式进行详细介绍前,先对该方案的实施场景进行简单介绍。
该实施场景中,需要对服务器进行压力测试,服务器与客户端之间的通信协议类型为wesync协议,压力测试工具中没有对wesync协议的配置文件进行解析的解析算法,也没有合成wesync协议格式的报文的合成算法。
首先,开发人员根据wesync协议的报文格式,确定用于配置所述wesync协议的配置文件的编写规则,然后编写用于解析该配置文件的wesync解析算法,以及用于根据解析得到的数据,合成wesync协议的报文的wesync合成算法。
然后,测试人员根据用于配置所述wesync协议的配置文件的编写规则,编写配置文件,编写的配置文件中用于定义wesync协议类型的代码如图2a所示,用于定义被测服务器地址的代码如图2b所示,用于定义测试时wesync协议报文中用户信息的代码如图2c所示,用于定义测试时wesync协议报文中代理信息数据的代码如图2d所示,用于定义wesync协议报文中请求数据的代码如图2e所示。
下面将利用测试人员根据用于配置所述wesync协议的配置文件的编写规则编写的配置文件,对wesync协议的服务器进行压力测试,压力测试的过程中包括报文生成的过程。
基于上述场景,实施例2中实现压力测试的过程如图3所示,包括下述步骤:
步骤21:解析用于配置所述wesync协议的配置文件中用于定义服务器网络协议类型的代码,确定待测试服务器的网络协议类型为wesync协议;
步骤22:调用wesync解析算法,对用于配置所述wesync协议的配置文件中的数据进行解析,得到待测试服务器的地址数据、代理信息数据、用户信息数据和请求数据;
步骤23:调用wesync合成算法,将解析得到的待测试服务器的地址数据、代理信息数据、用户信息数据和请求数据,按照wesync报文的数据格式,合成待发送的wesync报文;
步骤24:与被测试服务器建立TCP连接,并将所述待发送的wesync报文发送给建立的该TCP连接;
步骤25:监测服务器的运行状况;
步骤26:自动检测用于执行压力测试的进程是否已经结束;
步骤27:检测到用于执行压力测试的进程已经结束,自动生成压力测试结果分析文件。
本申请实施例2提供的报文生成方法,通过调用预先设置在所述压力测试工具中的、与wesync协议对应的wesync解析算法,对用于配置所述wesync协议的配置文件进行解析,并通过wesync合成算法将解析得到的数据合成待发送报文,进而可以利用合成的待发送报文进行压力测试,解决了现有技术中无法对非常规协议类型的服务器进行压力测试的问题。
实施例3
为解决现有技术中无法对非常规协议类型的服务器进行压力测试的问题,本申请实施例3提供一种报文生成装置。该报文生成装置的结构示意图如图4所示,主要包括下述功能单元:
网络协议类型确定单元31,用于确定待测试服务器的网络协议类型;所述服务器的网络协议类型为服务器与客户端进行交互时使用的通信协议的类型;
报文确定单元32,用于当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的非常规协议类型时,调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,得到待发送报文;所述配置文件,为用于对所述待测试服务器进行压力测试所使用的配置文件;
所述非常规算法,包括:用于对与所述非常规算法匹配的配置文件中的数据进行解析的解析算法,以及利用对配置文件进行解析得到的数据合成相应的待发送报文的合成算法。
所述报文确定单元对配置文件进行解析得到的数据,包括:待测试服务器地址数据、代理信息数据、用户信息数据和请求数据;其中,所述用户信息数据为由不同真实用户的用户数据组成的数据。
压力测试单元33,用于将得到的待发送报文发送至待测试服务器后,对所述待测试服务器进行压力测试;
结果分析文件生成单元34,用于检测压力测试是否完成,在检测到压力测试完成后,自动生成压力测试结果分析文件。
所述网络协议为应用层协议。
在一种实施方式中,所述报文确定单元,具体用于调用预先设置在所述压力测试工具中的、与所述网络协议类型匹配的解析算法,解析配置文件中的待测试服务器地址数据、代理信息数据、用户信息数据和请求数据;
调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的合成算法,将对配置文件进行解析得到的服务器地址数据、代理信息数据、用户信息数据和请求数据按照所述非常规协议类型的报文的格式进行组合。
本申请实施例3提供的报文生成装置,通过调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对非常规网络协议类型的配置文件进行解析,并利用解析得到的数据合成待发送报文,进而可以利用合成的待发送报文进行压力测试,解决了现有技术中无法对非常规协议类型的服务器进行压力测试的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种报文生成方法,应用于压力测试工具,其特征在于,包括:
确定待测试服务器的网络协议类型;所述服务器的网络协议类型为服务器与客户端进行交互时使用的通信协议的类型;
当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的非常规协议类型时,调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,得到待发送报文;所述配置文件,为用于对所述待测试服务器进行压力测试所使用的配置文件;
所述非常规算法,包括:用于对与所述非常规算法匹配的配置文件中的数据进行解析的解析算法,以及利用对配置文件进行解析得到的数据合成相应的待发送报文的合成算法。
2.如权利要求1所述方法,其特征在于,对配置文件进行解析得到的数据,包括:待测试服务器地址数据、代理信息数据、用户信息数据和请求数据;其中,所述用户信息数据为由不同真实用户的用户数据组成的数据。
3.如权利要求1所述方法,其特征在于,所述方法还包括:
将得到的待发送报文发送至待测试服务器后,对所述待测试服务器进行压力测试;
检测对所述待测试服务器进行的压力测试是否完成,在检测到压力测试完成后,自动生成压力测试结果分析文件。
4.如权利要求1所述方法,其特征在于,所述网络协议为应用层协议。
5.如权利要求1~4任一权项所述方法,其特征在于,调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,包括:
调用预先设置在所述压力测试工具中的、与所述网络协议类型匹配的解析算法,解析配置文件中的待测试服务器地址数据、代理信息数据、用户信息数据和请求数据;
调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的合成算法,将对配置文件进行解析得到的服务器地址数据、代理信息数据、用户信息数据和请求数据按照所述非常规协议类型的报文的格式进行组合。
6.一种报文生成装置,应用于压力测试工具,其特征在于,包括:
网络协议类型确定单元,用于确定待测试服务器的网络协议类型;所述服务器的网络协议类型为服务器与客户端进行交互时使用的通信协议的类型;
报文确定单元,用于当所述待测试服务器的网络协议类型,为所述压力测试工具中预先设置的非常规算法所支持的非常规协议类型时,调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的非常规算法,对配置文件中的数据进行处理,得到待发送报文;所述配置文件,为用于对所述待测试服务器进行压力测试所使用的配置文件;
所述非常规算法,包括:用于对与所述非常规算法匹配的配置文件中的数据进行解析的解析算法,以及利用对配置文件进行解析得到的数据合成相应的待发送报文的合成算法。
7.如权利要求6所述装置,其特征在于,所述报文确定单元对配置文件进行解析得到的数据,包括:待测试服务器地址数据、代理信息数据、用户信息数据和请求数据;其中,所述用户信息数据为由不同真实用户的用户数据组成的数据。
8.如权利要求6所述装置,其特征在于,所述装置还包括:
压力测试单元,用于将得到的待发送报文发送至待测试服务器后,对所述待测试服务器进行压力测试;
结果分析文件生成单元,用于检测对所述待测试服务器进行的压力测试是否完成,在检测到压力测试完成后,自动生成压力测试结果分析文件。
9.如权利要求6所述装置,其特征在于,所述网络协议为应用层协议。
10.如权利要求6~9任一权项所述装置,其特征在于,
所述报文确定单元,具体用于调用预先设置在所述压力测试工具中的、与所述网络协议类型匹配的解析算法,解析配置文件中的待测试服务器地址数据、代理信息数据、用户信息数据和请求数据;调用预先设置在所述压力测试工具中的、与所述网络协议类型对应的合成算法,将对配置文件进行解析得到的服务器地址数据、代理信息数据、用户信息数据和请求数据按照所述非常规协议类型的报文的格式进行组合。
CN201610334503.1A 2016-05-19 2016-05-19 一种报文生成方法及装置 Active CN105915529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610334503.1A CN105915529B (zh) 2016-05-19 2016-05-19 一种报文生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610334503.1A CN105915529B (zh) 2016-05-19 2016-05-19 一种报文生成方法及装置

Publications (2)

Publication Number Publication Date
CN105915529A true CN105915529A (zh) 2016-08-31
CN105915529B CN105915529B (zh) 2019-04-16

Family

ID=56749338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610334503.1A Active CN105915529B (zh) 2016-05-19 2016-05-19 一种报文生成方法及装置

Country Status (1)

Country Link
CN (1) CN105915529B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656831A (zh) * 2018-12-26 2019-04-19 北京物芯科技有限责任公司 测试报文集中化生成方法、装置、设备和存储介质
CN110365602A (zh) * 2019-06-27 2019-10-22 烽火通信科技股份有限公司 用于安卓终端的可配置的通用网络协议适配方法及系统
CN110633214A (zh) * 2019-09-19 2019-12-31 中国银行股份有限公司 一种内部测试报文的配置方法及装置
CN110806967A (zh) * 2018-08-06 2020-02-18 北京京东尚科信息技术有限公司 一种单元测试方法和装置
CN112583621A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 一种自动退出试运行的方法、设备和系统
CN114268571A (zh) * 2017-02-15 2022-04-01 西门子公司 一种测试方法、设备和系统
CN115550231A (zh) * 2022-03-31 2022-12-30 许昌开普检测研究院股份有限公司 一种基于配置文件的多协议测试平台及其测试方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259629A1 (en) * 2005-04-21 2006-11-16 Qualcomm Incorporated Methods and apparatus for determining aspects of multimedia performance of a wireless device
CN101576843A (zh) * 2008-05-07 2009-11-11 阿里巴巴集团控股有限公司 一种测试应用程序接口的方法和装置
CN101854648A (zh) * 2010-04-14 2010-10-06 华为技术有限公司 通信设备单板的测试方法、设备和测试系统
CN103078765A (zh) * 2012-12-28 2013-05-01 华为技术有限公司 网元设备性能测试方法和装置
CN104579822A (zh) * 2014-12-10 2015-04-29 华南理工大学 基于Http协议的移动应用自动化性能测试系统及方法
CN104639390A (zh) * 2014-12-31 2015-05-20 曙光信息产业(北京)有限公司 系统的测试方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259629A1 (en) * 2005-04-21 2006-11-16 Qualcomm Incorporated Methods and apparatus for determining aspects of multimedia performance of a wireless device
CN101576843A (zh) * 2008-05-07 2009-11-11 阿里巴巴集团控股有限公司 一种测试应用程序接口的方法和装置
CN101854648A (zh) * 2010-04-14 2010-10-06 华为技术有限公司 通信设备单板的测试方法、设备和测试系统
CN103078765A (zh) * 2012-12-28 2013-05-01 华为技术有限公司 网元设备性能测试方法和装置
CN104579822A (zh) * 2014-12-10 2015-04-29 华南理工大学 基于Http协议的移动应用自动化性能测试系统及方法
CN104639390A (zh) * 2014-12-31 2015-05-20 曙光信息产业(北京)有限公司 系统的测试方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114268571A (zh) * 2017-02-15 2022-04-01 西门子公司 一种测试方法、设备和系统
CN110806967A (zh) * 2018-08-06 2020-02-18 北京京东尚科信息技术有限公司 一种单元测试方法和装置
CN109656831A (zh) * 2018-12-26 2019-04-19 北京物芯科技有限责任公司 测试报文集中化生成方法、装置、设备和存储介质
CN110365602A (zh) * 2019-06-27 2019-10-22 烽火通信科技股份有限公司 用于安卓终端的可配置的通用网络协议适配方法及系统
CN110633214A (zh) * 2019-09-19 2019-12-31 中国银行股份有限公司 一种内部测试报文的配置方法及装置
CN110633214B (zh) * 2019-09-19 2023-12-08 中国银行股份有限公司 一种内部测试报文的配置方法及装置
CN112583621A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 一种自动退出试运行的方法、设备和系统
CN115550231A (zh) * 2022-03-31 2022-12-30 许昌开普检测研究院股份有限公司 一种基于配置文件的多协议测试平台及其测试方法

Also Published As

Publication number Publication date
CN105915529B (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
CN105915529A (zh) 一种报文生成方法及装置
US20240046271A1 (en) System and method for facilitating programmatic verification of transactions
US20240152996A1 (en) System and method for programmatically accessing financial data
US8660833B2 (en) Method, computer program product and apparatus for providing an interactive network simulator
US9201767B1 (en) System and method for implementing a testing framework
US10884826B2 (en) System and method for establishing common request processing
TWI574173B (zh) 決定受測應用程式安全活動之技術
CN105871947B (zh) 跨域请求数据的方法及装置
CN107003976A (zh) 基于可准许活动规则确定可准许活动
CN111078745A (zh) 基于区块链技术的数据上链方法和装置
CN109408250A (zh) 调用应用程序编程接口api方法、装置、电子设备
CN110659206A (zh) 基于微服务的模拟架构建立方法、装置、介质及电子设备
CN107168844B (zh) 一种性能监控的方法及装置
US7711518B2 (en) Methods, systems and computer program products for providing system operational status information
CN108399333A (zh) 用于执行网页的防病毒扫描的系统和方法
CN112035350A (zh) 针对区块链系统的测试方法、装置及计算机设备
CN113362173A (zh) 防重机制验证方法、验证系统、电子设备及存储介质
CN112882948A (zh) 一种应用的稳定性测试方法、装置、系统及存储介质
US20140189134A1 (en) System and Method for NAS Server Test Load Generation
CN110177096A (zh) 客户端认证方法、装置、介质和计算设备
CN115374207A (zh) 业务处理方法及装置、电子设备和计算机可读存储介质
CN109871294A (zh) 用于校验数据、处理请求的方法和装置
WO2022119929A1 (en) Systems and methods for administrating a federated learning network
Varghese et al. Can commercial testing automation tools work for iot? A case study of selenium and node-red
CN113179317A (zh) 内容重写设备的测试系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant