CN108011779A - 在有限的资源条件下云服务器任务吞吐率的测试方法 - Google Patents
在有限的资源条件下云服务器任务吞吐率的测试方法 Download PDFInfo
- Publication number
- CN108011779A CN108011779A CN201711240806.8A CN201711240806A CN108011779A CN 108011779 A CN108011779 A CN 108011779A CN 201711240806 A CN201711240806 A CN 201711240806A CN 108011779 A CN108011779 A CN 108011779A
- Authority
- CN
- China
- Prior art keywords
- function
- loadrunner
- cloud server
- message
- test method
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
Abstract
本发明公开了一种在有限的资源条件下云服务器任务吞吐率的测试方法,包括:采用LoadRunner测试工具,使用JavaVUser协议编写脚本;使用LoadRunner VGen编写脚本,调用clientsdk消息收录相关API,模拟消息请求和消息接收功能;使用LoadRunner Controller编排测试场景,逐渐向软件系统增加虚拟用户量,直到发现关键功能或业务的TPS趋于恒定,继续在该虚拟用户量下运行场景一段时间,观察各功能或业务的响应时间是否稳定,有无异常波动现象;使用LoadRunner Analysis分析测试结果,得出消息收发的并发访问能力值。具有高覆盖、易实现、可扩展、可复用的优点。
Description
技术领域
本发明涉及网络云技术领域,具体涉及一种在有限的资源条件下云服务器任务吞吐率的测试方法。
背景技术
消息云是一种消息推送机制的云服务,它向终端提供了点对点及点对多点的消息通信机制,使得终端间的通信实时、高效、可靠,可进行可靠的、高效的消息传递;同时可基于数据通信进行分布式系统集成。
在软件测试中,经常需要评测软件高吞吐率下的性能指标,例如在系统间高频次的推送消息。
长连接的特性是client向server发起长连接,server接受client连接,双方建立连接。Client与server完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。TCP保活功能主要为服务器应用提供,服务器应用希望知道客户主机是否崩溃,从而可以代表客户使用资源。如果客户已经消失,使得服务器上保留一个半开放的连接,而服务器又在等待来自客户端的数据,则服务器将永远等待客户端的数据,保活功能就是试图在服务器端检测到这种半开放的连接。
高吞吐率下(吞吐率:是一种关于计算机或数据通信系统(如网桥、路由器、网关或广域网连接等)数据传输率的测度,是对一个系统和它的部件处理传输数据请求能力的总体评价。),系统理想的表现是当增大系统的压力(或添加并发用户数)时,吞吐率和TPS(TPS(transaction per second)代表每秒执行的事务数量)的改变曲线呈大体一致,则系统基本稳定。若系统压力继续增大时,吞吐率的曲线添加到一定程度后出现改变缓慢,甚至平坦,同时TPS也趋于平坦,查看系统资源运用,假如资源运用率比较低,说明服务器硬件资源不存在疑问,查看网络流量,估计网络带宽存在疑问。同理若吞吐率TPS曲线出现改变缓慢或者平坦,假如在压力添加时,点击率(用户每秒发出的请求数)趋于平坦,很可能是服务器响应时间添加,观察服务器资源运用情况,确定是服务器疑问。吞吐率是软件测试结果的测量单位。系统整体处理能力取决于处理能力最低模块的吞吐率的值。
基于上述长连接和高吞吐率的描述,要达到:
支持高并发:支持千万级用户使用,可扩展到亿级用户;
容量:支持至少100w用户同时在线长连接,可无限扩展;
消息延迟:单消息发送到接收时间间隔<1秒;
单台推送服务器最大长连接数不低于20W,集群最小配置下,系统支持的最大吞吐率不低于40000/s。
如上的性能指标,测试资源需要推送服务器20台,Hbase服务器30台,tomcat服务器20台,Linux测试服务器17台,Windows测试服务器18台。
由此可见,目前在测试软件性能时,需要大量的服务器资源,并且使用长连接的通讯系统中,当吞吐率非常高时,容易导致长连接中断,若不达到高吞吐率又无法测试系统的真实性能情况。此测试方法在有限的资源下发起高吞吐率且在保持长连接不断的情况下,在高吞吐率下得到各种性能指标,测试的目的主要是系统的吞吐率。
发明内容
本发明克服了现有技术的不足,提供一种在有限的资源条件下云服务器任务吞吐率的测试方法,用于解决目前测试需要大量服务器资源的问题。
考虑到现有技术的上述问题,根据本发明公开的一个方面,本发明采用以下技术方案:
一种在有限的资源条件下云服务器任务吞吐率的测试方法,包括:
采用LoadRunner测试工具,使用JavaVUser协议编写脚本;使用LoadRunner VGen编写脚本,调用clientsdk消息收录相关API,模拟消息请求和消息接收功能;使用LoadRunner Controller编排测试场景,逐渐向软件系统增加虚拟用户量,直到发现关键功能或业务的TPS趋于恒定,继续在该虚拟用户量下运行场景一段时间,观察各功能或业务的响应时间是否稳定,有无异常波动现象;使用LoadRunner Analysis分析测试结果,得出消息收发的并发访问能力值。
为了更好地实现本发明,进一步的技术方案是:
根据本发明的一个实施方案,在虚拟用户量下运行场景的时间为5分钟以上。
根据本发明的另一个实施方案,测试环境要求,包括:
消息收发,启动2台推送服务器,配置推送服务器的长连接上限为10W。
根据本发明的另一个实施方案,测试环境要求,包括:
登录,授权码登录后,继续保持连接不断开。
根据本发明的另一个实施方案,测试环境要求,包括:
授权码注册,调用AuthCodeManager.register()方法。
本发明还可以是:
根据本发明的另一个实施方案,脚本功能包括:
编写函数分别实现用户登录功能和独立的消息发送功能;
函数中,需调用LoadRunner API,定义如下事务:消息发送、消息接收、消息收发;
函数的参数需足够灵活,能够批量控制帐户执行登录、消息发送;
应提供足够的日志,以便脚本的调试;
将用户登录函数在init()中调用;
将消息发送函数在action()中调用。
根据本发明的另一个实施方案,授权码前缀为pt_common_login_。
根据本发明的另一个实施方案,测试成功标准包括:测试工具或负载机性能无法继续添加更多的虚拟用户。
与现有技术相比,本发明的有益效果之一是:
本发明的一种在有限的资源条件下云服务器任务吞吐率的测试方法,通过环境和配置达到保证长连接不中断下,利用高吞吐率和加压下系统的性能情况,基于云服务管理平台系统间长连接的体系结构,结合当前主流测试工具loadrunner,得到一种高覆盖、易实现、可扩展、可复用的测试方案。
附图说明
为了更清楚的说明本申请文件实施例或现有技术中的技术方案,下面将对实施例或现有技术的描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅是对本申请文件中一些实施例的参考,对于本领域技术人员来讲,在不付出创造性劳动的情况下,还可以根据这些附图得到其它的附图。
图1为根据本发明一个实施例的每秒事务量与虚拟用户量示意图。
图2为根据本发明一个实施例的每秒事务量与虚拟用户量示意图。
图3为根据本发明一个实施例的平均事务响应时间与虚拟用户量示意图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
一种在有限的资源条件下云服务器任务吞吐率的测试方法,若达到如背景技术描述的性能指标的测试资源降到推送服务器2台,Hbase服务器3台,tomcat服务器2台,Linux测试服务器17台,Windows测试服务器18台。大大降低了服务器资源。具体方案包括:
测试方法:采用LoadRunner测试工具,使用JavaVUser协议编写脚本;使用LoadRunner VGen编写脚本,调用clientsdk消息收录相关API,模拟消息请求和消息接收功能;使用LoadRunner Controller编排测试场景,逐渐向软件系统增加虚拟用户量,直到发现关键功能或业务的TPS趋于恒定,继续在该虚拟用户量下运行场景5分钟以上,观察各功能或业务的响应时间是否稳定,有无异常波动现象。使用LoadRunner Analysis分析测试结果,得出消息收发的并发访问能力值。
测试环境要求:
1,消息收发:启动2台推送服务器(服务器msg2和服务器msg4);配置推送服务器的长连接上限为10W;
2,登录:要求授权码登录后,继续保持连接不断开;
3,授权码注册:调用AuthCodeManager.register()方法。
脚本功能要求:
1,编写函数分别实现用户登录功能和独立的消息发送功能;
2,函数中,需调用LoadRunner API,定义如下事务:消息发送、消息接收、消息收发;
3,函数的参数需足够灵活,能够批量控制帐户执行登录、消息发送。
4,应提供足够的日志,以便脚本的调试。
5,将用户登录函数在init()中调用;
6,将消息发送函数在action()中调用;场景关键配置:
场景关键配置:
1,采用手动场景模式;
2,关闭日志、忽略思考时间、循环1次;
3,逐量添加虚拟用户,直到各事务的TPS值趋于恒定
参数化规则:
域ID:固定为pt_common.com;
域Key:随域ID;
授权码前缀:pt_common_login_;
以1对1方式收发消息,因此:
用户起始值:uvserid*2;
用户数量:2;
测试成功标准:
1,系统功能出现异常;
2,事务的TPS趋于恒定,并能够保持该状态持续运行5分钟以上;
3,测试工具或负载机性能无法继续添加更多的虚拟用户。
结果分析
1,通过【每秒事务量vs虚拟用户量】图,可以确认“消息收发”事务的吞吐率主要集中在2100左右,极值为2396.400,两次测试的TPS曲线趋势相同,但细节上存在差异,第一次运行的TPS存在一次较大的波动,较大的TPS波动可能带来不稳定的服务,需加以关注;
2,通过【平均事务响应时间vs虚拟用户量】图,可以确认在进入性能拐点后,TPS值趋于稳定,平均响应时间随VU数量的增加而增大,再一次证明本次测试找到了“消息收发”事务的最大吞吐率;
在本说明书中所谈到的“一个实施例”、“另一个实施例”、“实施例”、等,指的是结合该实施例描述的具体特征、结构或者特点包括在本申请概括性描述的至少一个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进一步来说,结合任一实施例描述一个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、结构或者特点也落在本发明的范围内。
尽管这里参照本发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开和权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。
Claims (8)
1.一种在有限的资源条件下云服务器任务吞吐率的测试方法,其特征在于包括:
采用LoadRunner测试工具,使用JavaVUser协议编写脚本;使用LoadRunner VGen编写脚本,调用clientsdk消息收录相关API,模拟消息请求和消息接收功能;使用LoadRunnerController编排测试场景,逐渐向软件系统增加虚拟用户量,直到发现关键功能或业务的TPS趋于恒定,继续在该虚拟用户量下运行场景一段时间,观察各功能或业务的响应时间是否稳定,有无异常波动现象;使用LoadRunner Analysis分析测试结果,得出消息收发的并发访问能力值。
2.根据权利要求1所述的在有限的资源条件下云服务器任务吞吐率的测试方法,其特征在于在虚拟用户量下运行场景的时间为5分钟以上。
3.根据权利要求1所述的在有限的资源条件下云服务器任务吞吐率的测试方法,其特征在于测试环境要求,包括:
消息收发,启动2台推送服务器,配置推送服务器的长连接上限为10W。
4.根据权利要求1所述的在有限的资源条件下云服务器任务吞吐率的测试方法,其特征在于测试环境要求,包括:
登录,授权码登录后,继续保持连接不断开。
5.根据权利要求1所述的在有限的资源条件下云服务器任务吞吐率的测试方法,其特征在于测试环境要求,包括:
授权码注册,调用AuthCodeManager.register()方法。
6.根据权利要求1所述的在有限的资源条件下云服务器任务吞吐率的测试方法,其特征在于脚本功能包括:
编写函数分别实现用户登录功能和独立的消息发送功能;
函数中,需调用LoadRunner API,定义如下事务:消息发送、消息接收、消息收发;
函数的参数需足够灵活,能够批量控制帐户执行登录、消息发送;
应提供足够的日志,以便脚本的调试;
将用户登录函数在init()中调用;
将消息发送函数在action()中调用。
7.根据权利要求5所述的在有限的资源条件下云服务器任务吞吐率的测试方法,其特征在于授权码前缀为pt_common_login_。
8.根据权利要求5所述的在有限的资源条件下云服务器任务吞吐率的测试方法,其特征在于测试成功标准包括:
测试工具或负载机性能无法继续添加更多的虚拟用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711240806.8A CN108011779A (zh) | 2017-11-30 | 2017-11-30 | 在有限的资源条件下云服务器任务吞吐率的测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711240806.8A CN108011779A (zh) | 2017-11-30 | 2017-11-30 | 在有限的资源条件下云服务器任务吞吐率的测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108011779A true CN108011779A (zh) | 2018-05-08 |
Family
ID=62055474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711240806.8A Pending CN108011779A (zh) | 2017-11-30 | 2017-11-30 | 在有限的资源条件下云服务器任务吞吐率的测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108011779A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949521A (zh) * | 2020-07-31 | 2020-11-17 | 中国工商银行股份有限公司 | 软件性能测试方法及装置 |
WO2021056918A1 (zh) * | 2019-09-29 | 2021-04-01 | 苏州浪潮智能科技有限公司 | 一种服务器的配置程序代码的测试方法、装置及介质 |
US20210374041A1 (en) * | 2020-06-01 | 2021-12-02 | Agora Lab, Inc. | Highly scalable system and method for automated sdk testing |
CN115134277A (zh) * | 2022-06-24 | 2022-09-30 | 山东信通电子股份有限公司 | 一种动态调整网络连接数的宽带网络速率测试方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163015A1 (en) * | 2006-12-28 | 2008-07-03 | Dmitry Kagan | Framework for automated testing of enterprise computer systems |
CN101576846A (zh) * | 2008-05-09 | 2009-11-11 | 北京世纪拓远软件科技发展有限公司 | 软件的性能检测方法 |
CN102004693A (zh) * | 2010-11-24 | 2011-04-06 | 北京世纪高通科技有限公司 | 一种系统性能测试方法和装置 |
CN104333488A (zh) * | 2014-11-04 | 2015-02-04 | 哈尔滨工业大学 | 云服务平台性能测试方法 |
CN104932974A (zh) * | 2015-05-28 | 2015-09-23 | 国家计算机网络与信息安全管理中心 | 一种脚本转换方法和装置 |
-
2017
- 2017-11-30 CN CN201711240806.8A patent/CN108011779A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163015A1 (en) * | 2006-12-28 | 2008-07-03 | Dmitry Kagan | Framework for automated testing of enterprise computer systems |
CN101576846A (zh) * | 2008-05-09 | 2009-11-11 | 北京世纪拓远软件科技发展有限公司 | 软件的性能检测方法 |
CN102004693A (zh) * | 2010-11-24 | 2011-04-06 | 北京世纪高通科技有限公司 | 一种系统性能测试方法和装置 |
CN104333488A (zh) * | 2014-11-04 | 2015-02-04 | 哈尔滨工业大学 | 云服务平台性能测试方法 |
CN104932974A (zh) * | 2015-05-28 | 2015-09-23 | 国家计算机网络与信息安全管理中心 | 一种脚本转换方法和装置 |
Non-Patent Citations (3)
Title |
---|
IMEIX4EVER,: ""[性能测试] LoadRunner结果分析-TPS"", 《WWW.CNBLOGS.COM/ZHENGAH/P/4663658.HTML》 * |
刘新生,: "《软件测试实践》", 31 August 2010 * |
范勇等,: "《软件测试技术》", 30 November 2009 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021056918A1 (zh) * | 2019-09-29 | 2021-04-01 | 苏州浪潮智能科技有限公司 | 一种服务器的配置程序代码的测试方法、装置及介质 |
US20210374041A1 (en) * | 2020-06-01 | 2021-12-02 | Agora Lab, Inc. | Highly scalable system and method for automated sdk testing |
US11455237B2 (en) * | 2020-06-01 | 2022-09-27 | Agora Lab, Inc. | Highly scalable system and method for automated SDK testing |
CN111949521A (zh) * | 2020-07-31 | 2020-11-17 | 中国工商银行股份有限公司 | 软件性能测试方法及装置 |
CN111949521B (zh) * | 2020-07-31 | 2023-07-25 | 中国工商银行股份有限公司 | 软件性能测试方法及装置 |
CN115134277A (zh) * | 2022-06-24 | 2022-09-30 | 山东信通电子股份有限公司 | 一种动态调整网络连接数的宽带网络速率测试方法及设备 |
CN115134277B (zh) * | 2022-06-24 | 2023-10-20 | 山东信通电子股份有限公司 | 一种动态调整网络连接数的宽带网络速率测试方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110300050B (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
US8782215B2 (en) | Performance testing in a cloud environment | |
CN108011779A (zh) | 在有限的资源条件下云服务器任务吞吐率的测试方法 | |
CN108075934B (zh) | 一种网络质量监控方法、装置及系统 | |
CN108256118B (zh) | 数据处理方法、装置、系统、计算设备以及存储介质 | |
CN104796406A (zh) | 一种应用识别方法及装置 | |
CN111124819A (zh) | 全链路监控的方法和装置 | |
CN111258627A (zh) | 一种接口文档生成方法和装置 | |
CN109510878A (zh) | 一种长连接会话保持方法和装置 | |
CN111510325A (zh) | 报警信息推送方法、服务器、客户端及系统 | |
CN103716230A (zh) | 消息发送方法、装置及服务器 | |
CN113766013A (zh) | 一种会话创建方法、装置、设备及存储介质 | |
KR20200007912A (ko) | 데이터 트래픽을 모니터링하기 위한 방법, 장치 및 시스템 | |
CN114390239B (zh) | 通信方法、装置、系统、电子设备以及存储介质 | |
CN112994934B (zh) | 数据交互方法、装置及系统 | |
CN113256360B (zh) | 基于Ukey机柜的发票处理控制方法、装置、设备和存储介质 | |
CN113411228B (zh) | 一种网络状况的确定方法及服务器 | |
CN105163336A (zh) | 优化无线网络稳定性的方法及系统 | |
CN112437161B (zh) | 一种网络代理控制方法、装置及计算机可读存储介质 | |
CN106899652B (zh) | 一种推送业务处理结果的方法及装置 | |
US10216926B2 (en) | Isolation of untrusted code in operating system without isolation capability | |
CN110474807B (zh) | 一种日志处理方法及装置 | |
KR101670699B1 (ko) | 웹 페이지들 간에 통신하기 위한 방법 및 시스템 | |
CN112769960A (zh) | 一种基于Nginx服务器的主动流量控制方法及系统 | |
CN108055305B (zh) | 一种存储扩展方法及存储扩展装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180508 |