CN103946809A - 为测试服务器产生产品服务器负载活动 - Google Patents

为测试服务器产生产品服务器负载活动 Download PDF

Info

Publication number
CN103946809A
CN103946809A CN201280056311.9A CN201280056311A CN103946809A CN 103946809 A CN103946809 A CN 103946809A CN 201280056311 A CN201280056311 A CN 201280056311A CN 103946809 A CN103946809 A CN 103946809A
Authority
CN
China
Prior art keywords
product
client requests
client
replicated
load
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
CN201280056311.9A
Other languages
English (en)
Other versions
CN103946809B (zh
Inventor
R·J·史密斯
G·D·威廉姆斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103946809A publication Critical patent/CN103946809A/zh
Application granted granted Critical
Publication of CN103946809B publication Critical patent/CN103946809B/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • 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/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开涉及为测试服务器产生产品服务器负载活动。在测试服务器上复制产品服务器的产品负载的方法包括通过处理从客户端接收的客户请求在产品服务器上建立产品负载。当所述客户请求被处理时,经处理器实时地复制该产品负载,以产生复制产品负载,所述复制产品负载代表所述客户请求并且定义表示在产品服务器和各个客户端之间形成的唯一状态的状态信息。该方法还包括实时地传送该复制产品负载,以便在测试服务器上复制所述产品负载。

Description

为测试服务器产生产品服务器负载活动
技术领域
本发明一般涉及产品服务器的测试。
背景技术
产品服务器是托管客户可经诸如内部网或因特网的通信网络访问的一个或多个在线应用(live application)的服务器。产品服务器通常托管它各个应用的最近版本。在把应用或者应用的更新版本移动到产品服务器来上线之前,该应用在开发期间会在阶段服务器上进行托管。当在阶段服务器上执行时,应用通常只对该应用的开发人员或者给予测试该应用的功能的任务的用户可用。因此,阶段服务器提供了在上线之前可以在其上测试应用的平台。
发明内容
根据本发明的第一方面,公开了一种在测试服务器上复制产品服务器的产品负载的方法。所述方法包括通过处理从客户端(client)接收的客户请求(client request),在产品服务器上建立产品负载。所述方法还包括在客户请求被处理时,经处理器实时地复制产品负载以产生复制产品负载,所述复制产品负载代表客户请求并且定义表示在产品服务器和各个客户端之间形成的唯一状态的状态信息。所述方法还包括实时地传送复制产品负载以在测试服务器上复制产品负载。
另一方面包括一种在测试服务器上复制产品服务器的产品负载的方法。所述方法包括接收通过处理客户请求建立的、与产品服务器上的产品负载对应的复制产品负载。所述复制产品负载是在客户请求被产品服务器处理时实时产生的。所述复制产品负载还定义表示在产品服务器和从其接收客户请求的客户端之间形成的唯一状态的状态信息。响应接收到复制产品负载,经处理器实时地处理复制产品负载以产生多个复制客户请求。每一个复制客户请求复制由产品服务器接收的各个客户请求,并且复制客户请求的至少一部分定义与从其接收客户请求的各个客户端相关联的状态信息。所述方法还包括实时地把复制客户请求传送到测试服务器。
另一个实施例可以包括用于在测试服务器上复制产品服务器的产品负载的计算机程序产品。该计算机程序产品可以包括其中包含的计算机可读程序代码,该计算机可读程序代码被配置为执行本说明书中所公开的各种操作和/或功能。
附图说明
仅仅作为例子,现在将参考附图描述本发明的实施例,其中:
图1是根据本发明一种实施例的说明用于在测试服务器上复制产品服务器的产品负载的系统的框图。
图2是根据本发明一种实施例的说明处理系统的框图。
图3是根据本发明另一种实施例的说明在测试服务器上复制产品服务器的产品负载的方法的流程图。
图4是根据本发明另一种实施例的说明产生复制产品负载的消息的方法的流程图。
图5是根据本发明另一种实施例的说明在测试服务器上复制产品服务器的产品负载的另一种方法的流程图。
图6是根据本发明另一种实施例的说明在测试服务器上处理复制客户请求的方法的流程图。
具体实施方式
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有包含,例如存储,在其中的计算机可读程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘驱动器(HDD)、固态驱动器(SSD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、数字多样化盘(DVD)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何能够包含或存储程序的有形介质,该程序可以被指令执行系统、装置、或者设备使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光纤、电缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JavaTM、Smalltalk、C++等,还包括传统的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)、连接到用户计算机,或者,可以连接到外部计算机(例如,利用因特网服务提供商来通过因特网连接)。
以下将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都能够可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机、其它可编程数据处理装置或其它器件的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的单元。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令能够使计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把这些计算机程序指令加载到计算机、其它可编程数据处理装置或者其它设备上,使得一系列操作步骤在计算机、其它可编程装置或者其它设备上执行,产生一种计算机实现的过程,使得在所述计算机或者其它可编程装置上执行的指令提供用于实现在所述流程图和/或框图中的一个或多个方框中所指定的功能/动作的过程。
现在将介绍贯穿本文档所应用的若干个定义。如本文所使用的,术语“实时”指这样的处理响应水平:使用户或者系统感觉为足够即时地进行特定过程或做出决定,或者使得处理器能够跟上某个外部过程。
如本文所使用的,术语“产品服务器”指包括至少一个处理器并且托管一个或多个可经通信网络访问的在线应用的处理系统。如本文所使用的,保持在线的应用指可操作来以其想要的方式经诸如内部网或因特网的通信网络服务客户的应用。如本文所使用的,术语“测试服务器”指包括至少一个处理器并且以测试一个或多个应用为目的托管这个(这些)应用的处理系统。如本文所使用的,术语“中介服务器”指包括至少一个处理器的处理系统,该处理系统从产品服务器接收数据并且把相应的数据传送到测试服务器。
如本文所使用的,术语“客户端”指包括至少一个处理器的处理系统,并且其产生要被传送到产品服务器的客户请求。如本文所使用的,术语“客户请求”指请求通过产品服务器执行某个动作的消息。例如,客户请求可以请求要被检索或者处理的信息。如本文所使用的,术语“产品负载”指称作“产品负载单元”的离散的有独立意义的单元。在一种实施例中,每一个产品负载单元都能对应不同的客户请求。
本文所描述的实施例涉及在测试服务器上复制产品服务器的产品负载。当产品服务器托管一个或多个在线应用时,产品服务器能够接收来自一个或多个客户端访问在线应用的请求。产品服务器能够处理这些客户请求,并且产生对于客户请求的响应,因此在产品服务器上建立了产品负载。当客户请求通过产品服务器处理时,由客户请求代表的产品负载能够被复制,从而产生复制产品负载。该复制产品负载代表客户请求。而且,该复制产品负载能够定义表示在产品服务器和从其接收识别的客户请求的客户端之间形成的唯一状态的状态信息。
复制产品负载能够被传送到流形代理(manifold proxy),流形代理能够处理复制产品负载以产生复制客户请求。每一个复制客户请求都能够复制由产品服务器接收的各个客户请求,以及与各个客户请求相关联的状态信息。流形代理能够把复制客户请求发送到测试服务器。
测试服务器可以托管一个或多个通过产品服务器托管的应用的拷贝,测试服务器可以处理复制客户请求。这种处理可以通过分析应用来监视以便识别应用中的缺陷或者比较应用的测试版本的性能与应用产品版本的性能,其中通常情况下缺陷在应用中称为“错误(bug)”。在这方面,在测试服务器上托管的应用的拷贝能够用代码仪器化(instrumented)来帮助这种分析。值得注意的是,以上提到的处理可以实时地执行,并且可以继续期望长的时间。因此,能够在产品应用保持在线时分析通过产品服务器托管的应用。从而,不需要使产品服务器下线就可以执行分析,并且产品服务器能够继续服务客户端。此外,可以利用产品服务器所经历的相同在线条件来执行分析。这些条件会随着时间而改变,并且这些改变可以在测试服务器中被复制。
图1是根据本发明的一种实施例的说明用于在测试服务器上复制产品服务器的产品负载的系统100的框图。在这方面,该系统可以包括一个或多个客户端110、产品服务器120、测试服务器140,以及可选地,中介服务器140。
产品服务器120可以托管(例如,执行)一个或多个应用122。应用122的例子包括但不限于,网站、轻量级目录访问协议(LDAP)服务器、数据库、基于网页(Web-based)的应用、基于网络的应用,等等。产品服务器120也可以托管审计工具124,这将在本文进行较详细的描述。在一种实施例中,中介服务器130可以托管流形代理132,这也将在本文进行较详细的描述。在另一种实施例中,流形代理132可以被托管在测试服务器140上。
测试服务器140可以托管一个或多个应用142和分析应用144。应用142可以是在产品服务器120上托管的要通过分析应用144进行分析的应用122的一个或多个拷贝。当例如对应用进行潜在的缺陷分析时,应用142可以是与相应的应用122相同的版本,或者,例如当正在测试对应用的性能增强时,应用142可以是与应用122不同的版本。在这点上,应用142可以被认为是进行测试的计算机程序。在下文中,可以参考一个应用122和/或一个应用142,但是,应当理解,每一个这种参考都可以指多个相应的应用122和/或应用142。
客户端110可以以通信方式链接到产品服务器120,产品服务器可以以通信方式链接到中介服务器130,并且中介服务器130可以以通信方式链接到测试服务器140。在其中在测试服务器140上托管流形代理132的布置中,产品服务器120可以以通信方式链接到测试服务器140以替代中介服务器130。可以利用一个或多个网络来提供这种通信链接。网络可以包括例如因特网的公共网络,和/或诸如LAN和WAN等的私有网络。
在操作中,产品服务器120可以是可操作的并且执行应用122来服务客户端110。产品服务器120可以接收和识别从客户端110到应用122的多个客户请求112。应用122可以处理客户请求112并且以对应用122来说传统的方式把响应114返回到客户端110。当客户请求112被产品服务器120接收时,审计工具124能实时地产生对应于客户请求112的审计记录,并且把审计记录存储到审计日志126。而且,审计工具124能够产生关于特定客户请求112的消息。
审计工具124可以把消息传送到流形代理132。如果流形代理132是在中介服务器130上托管的,那么该消息可以被发送到中介服务器130。如果流形代理132是在测试服务器140上托管的,那么该消息可以被发送到测试服务器140。在正常操作期间,产品服务器120可以接收多个客户请求112,并且审计工具可以产生并且传送多个相应的消息,每一个都表示产品负载单元。共同地,多个这种消息可以复制产品服务器120的产品负载,因此在本文中统称为复制产品负载128。
每一个消息都可以包括关于特定客户请求112的具体信息,例如,产品服务器120上的应用122或其它过程请求的一个或多个动作。而且,每一个消息都可以包括表示在产品服务器120和从其接收客户请求112的客户端110之间形成的唯一状态的状态信息。这种状态信息可以包括,例如,用于经其接收客户请求112的套接字连接的连接标识符、一个或多个与客户请求112相关联的基于由客户端110对产品服务器120的先前使用的小型资料(cookie)、提供给客户端110的页面服务、分配给客户端110的连接句柄、与客户端110(例如,用户名和/或密码)对应的绑定信息、和/或任何其它表示在产品服务器120和客户端110之间形成的唯一状态的信息。
当流形代理132接收到消息时,流形代理132能够实时地从每一个消息中解析出数据并且产生对应于该消息所基于的客户请求112的复制客户请求134。每一个复制客户请求134都可以包括关于它所对应的客户请求112的具体信息,以及表示在产品服务器120和从其接收客户请求112的客户端110之间形成的唯一状态的状态信息。
在一种实施例中,流形代理112可以过滤复制产品负载128的消息,以便过滤利用复制客户请求134复制到测试服务器140的客户请求112。在另一种实施例中,可以选择性地过滤审计记录,因此也选择性地过滤了客户请求112,以便识别为其产生相应消息的客户请求112的一部分。例如,可以忽略对应于与某些用户或密码相关联的客户请求112的消息,或者可以忽略对应于某种类型的客户请求112的消息,并且不需要产生相应的复制客户请求134。例如,可以忽略并且不复制密码检查或写请求。而且,选择性过滤可以识别对应于要被处理以产生复制客户请求134的某种类型的客户请求112的消息。例如,只有关于LDAP目录或数据库搜索的客户请求112可以被复制。
当特定消息对应于请求通过产品服务器120为各个客户端110建立的套接字连接(产品套接字连接)的客户请求112时,相应的复制客户请求134可以请求通过测试服务器140建立的套接字连接(测试套接字连接)。产生的测试套接字连接标识符可以不同于为产品套接字连接产生的标识符。无论如何,流形代理132可以在各个标识符之间建立关联,并且把这个关联存储在映射表中。基于该关联,流形代理132能够把产品套接字连接映射到测试套接字连接。因此,当多个客户请求112经由特定的产品套接字连接提供给产品服务器120时,流形代理132可以确保它们相应的复制客户请求134将在同一测试套接字连接上发送。
在每一个复制客户请求134产生时,流形代理能够实时地把复制客户请求134传送到测试服务器140,测试服务器140可以把复制客户请求传到应用142。可以根据应用142所理解的协议格式化复制客户请求134。例如,如果特定的客户请求112是根据LDAP格式化的,那么相应的复制客户请求134可以根据LDAP来格式化。这只是客户请求格式的一个例子,本发明在这方面并没有限制。应用142可以处理复制客户请求134并且以对于应用142来说传统的方式把复制的响应136返回给流形代理132。
当应用142处理复制客户请求134时,分析应用能够分析应用142的执行来识别应用142的代码中可能出现的任何缺陷,或者来分析应用142的性能。例如,应用142可以利用程序代码被仪器化以便当应用142执行时产生事件,并且这些事件可以通过分析应用144检测到。应用仪器化和分析应用对本领域技术人员来说是已知的。
图2是根据本发明的一个实施例的说明处理系统200的例子的框图。处理系统200可以是客户端、产品服务器、中介服务器或测试服务器。处理系统200可以包括至少一个通过系统总线215耦合到存储器元件210的处理器205。因此,处理系统200可以在存储器元件210存储器储程序代码。处理器205可以执行经系统总线215从存储器元件210访问的程序代码。在一个方面中,例如,处理系统200可以实现为适于存储和/或执行程序代码的计算机。但是,应当理解,处理系统200可以以任何包括处理器和存储器、能够执行本说明书中所描述功能的系统的形式实现。
存储器元件210可以包括一个或多个物理存储器设备,诸如像本地存储器220和一个或多个大容量存储设备225。本地存储器220指随机存取存储器或其它通常在实际的程序代码执行期间使用的非持久性存储器设备。大容量存储设备225可以实现为HDD、SDD或其它持久性数据存储设备。处理系统200也可以包括一个或多个高速缓存存储器(未示出),来提供至少一些程序代码的临时存储,以便减少执行期间必须从大容量存储设备225中检索程序代码的次数。
一个或多个网络适配器230可以直接地耦合到系统总线215或者通过中间I/O控制器而耦合到处理系统200,从而使得处理系统200变成通过中间的私有或公共网络耦合到其它系统、计算机系统、远程打印机和/或远程存储设备。调制解调器、电缆调制解调器、以太网卡无线网络适配器是可以与处理系统200一起使用的、不同类型的网络适配器的例子,但是本发明在这方面并没有限制。其它I/O设备(未示出)也可以耦合到处理系统200。
作为例子而不是限制,其中每一个都具有一组(至少一个)程序模块242的一个或多个程序/实用工具240同操作系统、一个或多个应用程序、其它程序模块以及程序数据一样,可以存储在存储器元件210中。程序模块142通常执行如本文所描述的本发明实施例的功能和/或方法。
作为说明,在处理系统200是图1的产品服务器120的情况下,程序/实用工具240可以包括应用122和审计工具124。审计日志126也可以存储在存储器元件210中。在处理系统200是图1的中介服务器130的情况下,程序/实用工具240可以包括流形代理132。在处理系统200是图1的测试服务器140的情况下,程序/实用工具240可以包括应用142、分析应用144,以及可选地流形代理132(如果没有使用中介服务器130)。
图3是根据本发明的另一种实施例的说明在测试服务器上复制产品服务器的产品负载的方法300的流程图。方法300可以通过图1的审计工具124来实现,在步骤302,产品服务器上的产品负载可以通过处理从客户端接收的客户请求来建立。在步骤304,当客户请求被处理时,产品负载能够被实时地复制,以产生代表识别的客户请求并且定义表示在产品服务器和各个客户端之间形成的唯一状态的状态信息的复制产品负载。在步骤306,可以识别各个产品套接字连接,其中多个客户请求经由该套接字连接从各个客户端传送到产品服务器。在步骤308,可以把产品套接字连接与复制产品负载关联。在步骤310,能够实时地传送复制产品负载,以便在测试服务器上复制该产品负载。例如,复制产品负载可被传送到图1的流形代理132。
图4是根据本发明的另一个实施例的说明产生复制产品负载的消息的方法400的流程图。同样,方法400可以通过图1的审计工具124来实现。
在步骤402,可以为用于客户请求数据的第一数据结构分配存储器。在步骤404,可以为用于流形代理数据记录的第二数据结构分配存储器。在步骤406,可以通过产品服务器接收客户请求并且审计工具可以把客户请求数据输入到第一审计日志记录。在步骤408,审计工具可以检索与该客户请求相关联的状态信息并且把该状态信息和客户请求数据输入到第二审计日志记录。在步骤410,审计工具可以把第二审计日志记录写到与流形代理相关联的套接字,从而产生表示产品负载单元的消息并且把该消息传送到流形代理。在步骤414,审计工具可以把第一审计日志记录写到产品服务器上的审计日志文件。
图5是根据本发明的另一种实施例的说明在测试服务器上复制产品服务器的产品负载的另一种方法500的流程图。方法500可以通过图1的流形代理132来实现。
在步骤502,可以接收复制产品负载。该复制产品负载可以对应于通过处理客户请求在产品服务器上建立的产品负载。该复制产品负载可以在客户请求被产品服务器处理时实时地产生,并且可以定义表示在产品服务器和从其接收客户请求的客户端之间形成的唯一状态的状态信息。
在步骤504,响应接收到复制产品负载,该复制产品负载可以实时地经处理器处理以产生多个复制客户请求。每一个复制客户请求都可以复制由产品服务器接收的各个客户请求。复制客户请求的至少一部分进一步可以复制与从其接收客户请求的各个客户端相关联的状态信息。换句话说,有些复制客户请求可以复制各自的状态信息,或者所有的复制客户请求可以复制各自的状态信息。
在步骤506,对于多个客户请求,相应的产品套接字连接可以映射到与相应复制客户请求相关联的各个测试套接字连接。在步骤508,该复制客户请求可以被实时地传送到测试服务器。
图6是根据本发明的另一种实施例的说明在测试服务器上处理复制客户请求的方法的流程图。再一次,方法600可以通过图1的流形代理132来实现。
在步骤602,流形代理可以打开套接字以从产品服务器接收是复制产品负载的组件的消息。例如,消息可以从审计工具或其它适于配置成产生这种消息的适当程序/实用工具中接收。在步骤604,消息可以从套接字中读取(即,接收)。在步骤606,可以处理该消息以解析客户请求数据和状态信息。
在决定框608,如果客户请求数据请求绑定,那么在步骤610可以建立测试套接字连接到测试服务器的绑定并且可以把产品套接字连接映射到该测试套接字连接。如果客户请求数据没有请求绑定,那么该过程可以进行到决定框612。在决定框612,如果客户请求数据请求解除绑定,那么在步骤614可以实现解除测试套接字连接到测试服务器的绑定,并且可以删除产品套接字连接到测试套接字连接的映射。如果在决定框612该客户请求数据没有请求解除绑定,那么在决定框616,可以做出是否过滤掉该消息的决定。如果不,那么可以利用连接映射把复制客户请求发送到测试服务器,并且可以读取响应。如果消息被过滤掉,那么在步骤620,可以识别该消息为非支持的,因此不需要把复制客户请求发送到测试服务器。
从步骤610、614、618和620中,过程可以返回到步骤604,并且可以从套接字中读取另一个消息。该过程可以继续重复直到做出决定停止该过程。
图中的流程图和框图说明了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能性与操作。就此而言,流程图或框图中的每一个方框都可以代表代码的一个模块、片段或者部分,所述模块、片段或者部分包括用于实现指定逻辑功能的一条或多条可执行指令。还应当指出,在有些备选实现中,方框中所指出的功能可以不按图中指示的次序发生。例如,依赖于所涉及的功能性,顺次示出的两个方框事实上可以基本上同时执行,或者有时候这些方框可以颠倒的次序执行。还应当指出,框图和/或流程图说明中的每一个方框及框图和/或流程图说明中方框的组合可以由执行指定功能或行为的基于专用硬件的系统或者专用硬件与计算机指令的组合来实现。
本文所使用的术语仅仅是为了描述特定的实施例而不是要作为本发明的限制。所本文所使用的,除非上下文明确地另外指出,否则单数形式“一个”和“这个”是要也包括复数形式。还将理解,当在本说明书使用时,术语“包括”规定所述特征、整数、步骤、操作、元素和/或部件的存在,但是并不排除一个或多个其它特征、整数、步骤、操作、元素、部件和/或其组的存在或添加。
权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。

Claims (17)

1.一种在测试服务器上复制产品服务器的产品负载的方法,所述方法包括:
通过处理从客户端接收的客户请求,在产品服务器上建立产品负载;
在客户请求被处理时,经处理器实时地复制产品负载以产生复制产品负载,所述复制产品负载代表客户请求并且定义表示在产品服务器和各个客户端之间形成的唯一状态的状态信息;及
实时地传送复制产品负载以在测试服务器上复制产品负载。
2.如权利要求1所述的方法,还包括:
配置审计工具以在客户请求被产品服务器处理时,实时地自动产生复制产品负载。
3.如权利要求1所述的方法,还包括:
识别各个产品套接字连接,其中多个客户请求是从各个客户端经由所述产品套接字连接传送到产品服务器的;及
把所述产品套接字连接与所述复制产品负载相关联。
4.如权利要求1所述的方法,其中所述状态信息指示基于产品服务器的先前使用而变化的、与客户请求相关联的cookie。
5.如权利要求1所述的方法,其中所述状态信息指示提供给各个客户端的页面服务。
6.如权利要求1所述的方法,其中所述状态信息指示为各个客户端分配的连接句柄。
7.如权利要求1所述的方法,其中所述状态信息指示与各个客户请求相关联的绑定信息。
8.如权利要求1所述的方法,其中所述产品负载是在不改变产品服务器的与由产品服务器提供给客户端的服务有关的行为的情况下被复制的。
9.一种在测试服务器上复制产品服务器的产品负载的方法,所述方法包括:
接收通过处理客户请求建立的、与产品服务器上的产品负载对应的复制产品负载,其中所述复制产品负载是在客户请求被产品服务器处理时实时产生的,并且定义表示在产品服务器和从其接收客户请求的客户端之间形成的唯一状态的状态信息;
响应接收到复制产品负载,经处理器实时地处理复制产品负载以产生多个复制客户请求,其中每一个复制客户请求复制由产品服务器接收的各个客户请求,并且复制客户请求的至少一部分定义与从其接收客户请求的各个客户端相关联的状态信息;及
实时地把复制客户请求传送到测试服务器。
10.如权利要求9所述的方法,其中:
所述客户请求是经由在各个客户端和产品服务器之间建立的产品套接字连接从客户端传送到产品服务器的;及
处理所述复制产品负载以产生多个复制客户请求包括:对于多个客户请求,把相应的产品套接字连接映射到与相应的复制客户请求相关联的各个测试套接字连接。
11.如权利要求9所述的方法,其中所述状态信息指示基于产品服务器的先前使用而变化的、与各个客户端相关联的cookie。
12.如权利要求9所述的方法,其中所述状态信息指示提供给各个客户端的页面服务。
13.如权利要求9所述的方法,其中所述状态信息指示为各个客户端分配的连接句柄。
14.如权利要求9所述的方法,其中所述状态信息指示与各个客户请求相关联的绑定信息。
15.如权利要求9所述的方法,还包括:
过滤所述复制产品负载以防止某些客户请求被复制到测试服务器。
16.一种用于在测试服务器上复制产品服务器的产品负载的计算机程序产品,所述计算机程序产品包括:
其中包含了计算机可读程序代码的计算机可读存储介质,在被处理器执行时,所述计算机可读程序代码执行任一上述权利要求的步骤。
17.一种用于在测试服务器上复制产品服务器的产品负载的系统,包括:
处理器和如权利要求16所述的计算机程序产品。
CN201280056311.9A 2011-11-16 2012-11-01 为测试服务器产生产品服务器负载活动 Active CN103946809B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/297,314 2011-11-16
US13/297,314 US9148304B2 (en) 2011-11-16 2011-11-16 Generating production server load activity for a test server
PCT/IB2012/056080 WO2013072800A1 (en) 2011-11-16 2012-11-01 Generating production server load activity for a test server

Publications (2)

Publication Number Publication Date
CN103946809A true CN103946809A (zh) 2014-07-23
CN103946809B CN103946809B (zh) 2016-06-22

Family

ID=48281673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280056311.9A Active CN103946809B (zh) 2011-11-16 2012-11-01 为测试服务器产生产品服务器负载活动

Country Status (6)

Country Link
US (10) US9148304B2 (zh)
JP (1) JP2015506008A (zh)
CN (1) CN103946809B (zh)
DE (1) DE112012004776T5 (zh)
GB (1) GB2511958B (zh)
WO (1) WO2013072800A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9148304B2 (en) 2011-11-16 2015-09-29 International Business Machines Corporation Generating production server load activity for a test server
US9268663B1 (en) 2012-04-12 2016-02-23 Amazon Technologies, Inc. Software testing analysis and control
US9058428B1 (en) * 2012-04-12 2015-06-16 Amazon Technologies, Inc. Software testing using shadow requests
WO2015074171A1 (en) * 2013-11-19 2015-05-28 Telefonaktiebolaget L M Ericsson (Publ) Testing the performance of a layer 3 proxy device using traffic amplification
WO2016205841A1 (de) * 2015-06-25 2016-12-29 Fts Computertechnik Gmbh Verfahren zum debugging von softwarekomponenten in einem verteilten zeitgesteuerten echtzeitsystem
US9910756B2 (en) 2015-09-03 2018-03-06 International Business Machines Corporation Response-time baselining and performance testing capability within a software product
US10698794B1 (en) * 2015-12-15 2020-06-30 EMC IP Holding Company LLC Application container and application service system
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
CN106161145A (zh) * 2016-07-25 2016-11-23 天脉聚源(北京)传媒科技有限公司 一种服务器系统运行状态信息的监控方法和系统
US10445207B2 (en) 2017-07-31 2019-10-15 Oracle International Corporation System and method to execute and manage load tests using containers
CN107678932A (zh) * 2017-09-29 2018-02-09 浪潮软件集团有限公司 一种应用性能分析方法及装置
CN107967204B (zh) * 2017-11-21 2020-12-25 百度在线网络技术(北京)有限公司 线下压测的方法、系统及终端设备
CN108390912B (zh) * 2018-01-18 2021-08-17 珠海金山网络游戏科技有限公司 一种多端测试数据采集的方法和装置
US11573875B2 (en) * 2019-06-28 2023-02-07 Paypal, Inc. Product evaluation using transaction details from a production system
CN110519789B (zh) * 2019-08-02 2023-11-28 京信网络系统股份有限公司 性能检测方法、装置、计算机设备和存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178441B1 (en) * 1998-09-21 2001-01-23 International Business Machines Corporation Method and system in a computer network for the reliable and consistent ordering of client requests
US6510402B1 (en) 1999-02-04 2003-01-21 International Business Machines Corporation Component testing with a client system in an integrated test environment network
US6981180B1 (en) * 2000-03-16 2005-12-27 Akamai Technologies, Inc. Method and apparatus for testing request-response service using live connection traffic
US6760745B1 (en) 2000-03-30 2004-07-06 Aspect Communications Corporation Web server replicated mini-filter
US6574617B1 (en) 2000-06-19 2003-06-03 International Business Machines Corporation System and method for selective replication of databases within a workflow, enterprise, and mail-enabled web application server and platform
US6789203B1 (en) * 2000-06-26 2004-09-07 Sun Microsystems, Inc. Method and apparatus for preventing a denial of service (DOS) attack by selectively throttling TCP/IP requests
US7865306B2 (en) 2000-09-28 2011-01-04 Michael Mays Devices, methods, and systems for managing route-related information
CN100568214C (zh) * 2001-07-16 2009-12-09 Bea系统公司 用于会话复制和故障切换的方法和装置
US7610575B2 (en) * 2003-01-08 2009-10-27 Consona Crm Inc. System and method for the composition, generation, integration and execution of business processes over a network
US7366761B2 (en) 2003-10-09 2008-04-29 Abaca Technology Corporation Method for creating a whitelist for processing e-mails
US20040225738A1 (en) 2003-05-09 2004-11-11 Patel Dipak M. Methods, systems and computer program products for replicating servers and network traffic for problem determination and/or tuning
US7526680B2 (en) * 2005-06-15 2009-04-28 International Business Machines Corporation Stress testing a website having a backend application
US8228818B2 (en) 2005-06-24 2012-07-24 At&T Intellectual Property Ii, Lp Systems, methods, and devices for monitoring networks
US7783463B2 (en) 2005-09-27 2010-08-24 Morgan Stanley Computer networks for providing a test environment
US8572275B2 (en) 2005-10-06 2013-10-29 Wrapmail, Inc. Method, system and software for dynamically extracting content for integration with electronic mail
US20070112785A1 (en) * 2005-11-08 2007-05-17 Autup, Inc. System and method for updating a storage medium
US7984015B2 (en) 2006-10-20 2011-07-19 Oracle International Corporation Database workload capture and replay architecture
US20080098072A1 (en) * 2006-10-23 2008-04-24 International Business Machines Corporation Method and process to add recipients to an on-going electronic message thread
US8429736B2 (en) * 2008-05-07 2013-04-23 Mcafee, Inc. Named sockets in a firewall
US8386207B2 (en) 2009-11-30 2013-02-26 International Business Machines Corporation Open-service based test execution frameworks
US9116779B2 (en) 2010-12-17 2015-08-25 International Business Machines Corporation Test management domain asset discovery and analysis
US9148304B2 (en) 2011-11-16 2015-09-29 International Business Machines Corporation Generating production server load activity for a test server
US9027155B2 (en) * 2012-07-02 2015-05-05 International Business Machines Corporation System for governing the disclosure of restricted data
US20160021512A1 (en) * 2013-03-13 2016-01-21 Retail Optimization International Inc. Systems and methods for indoor location services
US20140365234A1 (en) * 2013-06-11 2014-12-11 Community Pursuits, Incorporated Computer Network-Interfaced Method for Health Care Provider Active Reach Into Diverse Sub-Population Communities
US20170187602A1 (en) * 2015-12-29 2017-06-29 Vivek Pathela System and method of troubleshooting network source inefficiency
US10372600B2 (en) * 2017-03-01 2019-08-06 Salesforce.Com, Inc. Systems and methods for automated web performance testing for cloud apps in use-case scenarios

Also Published As

Publication number Publication date
WO2013072800A1 (en) 2013-05-23
US20130124610A1 (en) 2013-05-16
GB2511958B (en) 2020-08-19
US20150326465A1 (en) 2015-11-12
US10958548B2 (en) 2021-03-23
US9106451B2 (en) 2015-08-11
US20170085454A1 (en) 2017-03-23
DE112012004776T5 (de) 2014-08-07
US9893969B2 (en) 2018-02-13
GB2511958A8 (en) 2014-10-01
US10397077B2 (en) 2019-08-27
US20130124705A1 (en) 2013-05-16
US20170257296A1 (en) 2017-09-07
US20150324273A1 (en) 2015-11-12
US9703682B2 (en) 2017-07-11
GB2511958A (en) 2014-09-17
US10938697B2 (en) 2021-03-02
US20180102957A1 (en) 2018-04-12
JP2015506008A (ja) 2015-02-26
US9569340B2 (en) 2017-02-14
US10348593B2 (en) 2019-07-09
GB201409862D0 (en) 2014-07-16
US20180131589A1 (en) 2018-05-10
US20190349278A1 (en) 2019-11-14
US20190327162A1 (en) 2019-10-24
CN103946809B (zh) 2016-06-22
US9876695B2 (en) 2018-01-23
US9148304B2 (en) 2015-09-29

Similar Documents

Publication Publication Date Title
CN103946809A (zh) 为测试服务器产生产品服务器负载活动
CN107402880B (zh) 一种测试方法及电子设备
US9565260B2 (en) Account state simulation service for cloud computing environments
US9210178B1 (en) Mixed-mode authorization metadata manager for cloud computing environments
US9858177B2 (en) Automated test generation for multi-interface enterprise virtualization management environment
US10469330B1 (en) Client account versioning metadata manager for cloud computing environments
CN108170612B (zh) 一种自动化测试方法、装置及服务器
CN108351806A (zh) 分布式基于流的数据库触发器
WO2012087941A1 (en) Techniques for network replication
JP2016513305A (ja) インスタンスホストの構成
US10552306B2 (en) Automated test generation for multi-interface and multi-platform enterprise virtualization management environment
US20180107555A1 (en) Correlating operational information with an error condition in a dispersed storage network
Svorobej et al. Towards automated data-driven model creation for cloud computing simulation
WO2021240260A1 (en) Application topology discovery
Hargreaves et al. Implementing Microsoft Azure Architect Technologies: AZ-303 Exam Prep and Beyond: A Guide to Preparing for the AZ-303 Microsoft Azure Architect Technologies Certification Exam
JP2024080684A (ja) 機械学習管理システム及び機械学習システムの管理方法
Soueidi Microsoft Azure Storage Essentials
Garnaat Python and AWS cookbook
Mehner Developing Cloud Applications with Windows Azure Storage

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant