首页> 中国专利> 一种软件性能测试中无应答事务的测量方法

一种软件性能测试中无应答事务的测量方法

摘要

本发明公开了一种软件性能测试中无应答事务的测量方法。该方法包括:客户端程序向服务器发送请求A,服务器向客户端程序返回请求A已收到的回执;服务器处理请求A,并将请求A的处理结果发送给外部系统程序;客户端程序获知外部系统程序接收到请求A的处理结果;客户端程序将发送请求A标记为无应答事务的开始,将获知外部系统程序接收到请求A的处理结果标记为无应答事务的结束,由此测量无应答事务。本发明的技术方案解决了包含无应答事务的软件性能测试场景中,如何准确地测量无应答事务的问题。

著录项

  • 公开/公告号CN102333004A

    专利类型发明专利

  • 公开/公告日2012-01-25

    原文格式PDF

  • 申请/专利权人 北京新媒传信科技有限公司;

    申请/专利号CN201110139791.2

  • 发明设计人 林谡;

    申请日2011-05-27

  • 分类号H04L12/26(20060101);H04L29/06(20060101);

  • 代理机构11323 北京市隆安律师事务所;

  • 代理人权鲜枝

  • 地址 100089 北京市海淀区万泉庄路28号万柳新贵大厦A座5层

  • 入库时间 2023-12-18 04:30:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-01-29

    授权

    授权

  • 2012-03-14

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20110527

    实质审查的生效

  • 2012-01-25

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,特别是涉及一种软件性能测试中无应答事务的测量方法。

背景技术

软件性能测试的目的是为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。

软件性能测试的方法为:采用软件开发技术,编写自动执行的测试代码(即客户端程序),在每种需要测试的事务开始和结束的时候加入标记,按照测试设计执行代码,统计每个事务的响应时间和单位时间内业务的完成量(TPS)、事务成功率来衡量软件的性能。

软件性能测试中的事务:从功能的角度理解是应用程序完成的功能单元,从性能测试代码内部来看,是一个请求和其对应的应答的集合,或者几组这样的请求应答对的集合。

无应答事务:由于业务的特殊原因,客户端程序在请求过服务器后,服务器应答客户端程序“请求已收到”(或服务器不做任何应答),之后不在继续通知客户端最终的处理结果的方式,称为无应答事务。

图1是无应答事务的一个示意流程图。如图1所示,客户端程序发送请求A到服务器(这里是将该请求标记为A,后续的文字中称为请求A),服务器向客户端程序返回‘请求A已收到’的回执,然后服务器处理请求A,将请求A的处理结果发送到外部系统程序。这里,服务器是指运行被测试软件的机器;外部系统程序是无应答事务的处理结果的发送目的地,例如,在一个即时通信系统中,一个即时通信客户端给另外一个即时通信客户端发送无应答消息,那么该另外一个客户端就是外部系统。

按照现有的性能测试方案,客户端程序只能把请求A发送前标记为A事务的开始,把‘回请求A已收到’的回执当作A事务的结束,由此得到事务的响应时间、TPS、成功率。但事实上,A事务的结束应该是以外部系统收到处理结果为结束标志的,这个事务度量才能真正反映出被测试系统的处理性能。相比之下,现有的性能测试方案得到的结果只有部分的测试意义或者完全没有意义。

发明内容

本发明提供了一种软件性能测试中无应答事务的测量方法,该方法能够准确地对包括无应答事务软件的性能进行测试。

为达到上述目的,本发明的技术方案是这样实现的:

本发明公开了一种软件性能测试中无应答事务的测量方法,其特征在于,该方法包括:

客户端程序向服务器发送请求A,服务器向客户端程序返回请求A已收到的回执;

服务器处理请求A,并将请求A的处理结果发送给外部系统程序;

客户端程序获知外部系统程序接收到请求A的处理结果;

客户端程序将发送请求A标记为无应答事务的开始,将获知外部系统程序接收到请求A的处理结果标记为无应答事务的结束,由此测量无应答事务。

由上述可见,本发明这种客户端程序向服务器发送请求A,服务器向客户端程序返回请求A已收到的回执,服务器处理请求A,并将请求A的处理结果发送给外部系统程序,客户端程序获知外部系统程序接收到请求A的处理结果,客户端程序将发送请求A标记为无应答事务的开始,将获知外部系统程序接收到请求A的处理结果标记为无应答事务的结束,由此测量无应答事务的技术方案,由于客户端程序获知外部系统程序接收到请求A的处理结果,并将获知外部系统程序接收到请求A的处理结果标记为无应答事务的结束,相对于现有技术中将服务器发送的请求A已收到的回执作为无应答事务的结束,能够准确地对包括无应答事务软件的性能进行测试。

附图说明

图1是无应答事务的一个示意流程图;

图2是本发明实施例中的一种无应答事务的性能测试方法的流程图;

图3是本发明实施例中采用方案一实现无应答事务的性能测试的流程图;

图4是本发明实施例中采用方案二实现无应答事务的性能测试的流程图;

图5是本发明实施例中采用方案三实现无应答事务的性能测试的流程图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

图2是本发明实施例中的一种无应答事务的性能测试方法的流程图。如图2所示,该方法包括:

201,客户端程序向服务器发送请求A,服务器向客户端程序返回请求A已收到的回执。

202,服务器处理请求A,并将请求A的处理结果发送给外部系统程序。

203,客户端程序获知外部系统程序接收到请求A的处理结果。

204,客户端程序将发送请求A标记为无应答事务的开始,将获知外部系统程序接收到请求A的处理结果标记为无应答事务的结束,由此测量无应答事务。

在图2所示的方案中,将客户端程序和外部系统程序以某种方式联系起来,使得客户端程序能过获知外部系统程序接收到请求A的处理结果,并把该事件作为无应答事务的结束,从而能够准确地检测出无应答事务的响应时间等。

在本发明的实施例中提供三种客户端程序获知外部系统程序接收到请求A的处理结果的方案:

方案一

将客户端程序和外部系统程序实现在同一个进程中,当服务器向外部系统程序发送请求A的处理结果时,客户端程序能获知外部系统程序接收到了请求A的处理结果。

就是说在测试代码中,同时实现客户端和外部系统功能,在运行时,通过事前的安排,请求A的发送和最后请求A的处理结果都发生在同一个测试进程内,方便最后事务的计算,具体过程如图3所示。

图3是本发明实施例中采用方案一实现无应答事务的性能测试的流程图。如图3所示,客户端程序和外部系统程序在同一个进程中,客户端程序向服务器发送请求A,服务器向客户端程序返回请求A已收到的回执,服务器处理请求A,并向外部系统程序返回请求A的处理结果,由于客户端程序和外部系统程序在同一个进程中,因此客户端程序也能获知外部系统程序接收到的请求A的处理结果。

方案一的优点在于:在测试代码中解决了事务定义的问题,方法简洁,事务定义没有引入其它必需添加的过程。

但是方案一也有一个缺点:当有多个客户端程序对事务A进行测试,而外部系统程序只有1或有限的几个时,这种方案不适用。因为不知道该将这有限的外部系统程序合并到哪些客户端程序的进程中。

方案二

客户端程序在启动后向外部系统程序(又称为挡板程序)注册自己的位置信息;外部系统程序在接收到请求A的处理结果后,通过查找客户端注册的位置信息,确定所述客户端程序的位置,将请求A的处理结果发送给所述客户端程序。具体如图4所示:

图4是本发明实施例中采用方案二实现无应答事务的性能测试的流程图。如图4所示,客户端程序在启动后向外部系统程序注册自己的位置信息,具体为:客户端程序将自身的标识以及自身所在进程的IP地址和端口号发送给外部系统程序,外部系统程序将所述客户端程序的标识以及IP地址和端口号对应保存。客户端程序向服务器发送请求A,服务器向客户端程序返回请求A已收到的回执。服务器处理请求A,并将请求A的处理结果发送给外部系统程序。所述外部系统程序在接收到请求A的处理结果后,通过查找客户端注册的位置信息,确定所述客户端程序的位置,具体为:外部系统程序从请求A的处理结果中获取所述客户端程序的标识(这是因为客户端程序向服务器发送的请求A,以及服务器向外部系统程序发送的请求A的处理结果中都一直携带客户端程序的标识),根据该标识查询所保存的信息,得到对应的IP地址和端口号,根据所得到的IP地址和端口号确定所述客户端程序的位置。然后外部系统程序将请求A的处理结果返回给客户端程序。

方案二的特点在于:实现方法简单直接,适合测试压力不是很大的情况。

方案三

建立客户端程序和客户端程序所在客户端进程之间的匹配规则;客户端进程根据所述匹配原则确定自身对应的客户端程序并启动该客户端程序;外部系统程序在接收到请求A的处理结果后,根据所述匹配原则确定客户端进程的位置,将请求A的处理结果返回给所述客户端进程,进而所述客户端程序获知外部系统接收到请求A的处理结果。具体如图5所示。

图5是本发明实施例中采用方案三实现无应答事务的性能测试的流程图。在本方案中,预先建立配置文件,在该配置文件中保存客户端程序的标识与客户端进程的IP地址和端口号之间的对应关系。则具体流程如图5所示,客户端进程根据自身的IP地址和端口号查找配置文件,找到对应客户端程序的标识,启动该客户端程序标识对应的客户端程序。客户端程序启动后向服务器发送请求A,服务器向客户端程序返回请求A已收到的回执。服务器处理请求A,并将请求A的处理结果发送给外部系统程序。外部系统程序在接收到请求A的处理结果后,从请求A的处理结果中获取客户端程序的标识,根据客户端程序的标识查找配置文件,找到对应客户端进程的IP地址和端口号,向客户端进程返回请求A的处理结果。由于所述客户端程序在所述客户端进程中,因此能够获知外部系统程序接收到了请求A的处理结果。

在本发明的一个实施例中,当有N(N为大于1的自然数)个客户端进程时:在配置文件中保存客户端程序的标识模N后的余数与客户端进程的IP地址和端口号之间的对应关系。客户端进程根据匹配原则确定自身对应的客户端程序为:客户端进程根据自身的IP地址和端口号查找所述配置文件,找到对应的余数,然后找到其标识模N后余数等于该找到的余数的客户端程序。外部系统程序在接收到请求A的处理结果后,根据匹配原则确定客户端进程的位置具体为:外部系统程序从请求A的处理结果中获取客户端程序的标识,根据客户端程序的标识模N后的余数查找配置文件,找到对应客户端进程的IP地址和端口号。

例如,有50个客户端进程,客户端程序的标识是数字或者可以转化成数字,则对每个客户端程序的标识进行模50取余数,同一个余数对应一个IP地址和端口号对,这样建立起来一个匹配关系,将该匹配关系保存到配置文件中。客户端程序和外部系统程序遵循同样的规则完成整个测试过程。

方案三的特点是能够完成大压力情况下的性能测试。

综上所述,本发明这种客户端程序向服务器发送请求A,服务器向客户端程序返回请求A已收到的回执,服务器处理请求A,并将请求A的处理结果发送给外部系统程序,客户端程序获知外部系统程序接收到请求A的处理结果,客户端程序将发送请求A标记为无应答事务的开始,将获知外部系统程序接收到请求A的处理结果标记为无应答事务的结束,由此测量无应答事务的技术方案,由于客户端程序获知外部系统程序接收到请求A的处理结果,并将获知外部系统程序接收到请求A的处理结果标记为无应答事务的结束,相对于现有技术中将服务器发送的请求A已收到的回执作为无应答事务的结束,能够准确地对包含无应答事务的软件的性能进行测试。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号