logo资料库

论文研究-基于LoadRunner新一代网银系统性能测试及优化 .pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
中国科技论文在线 http://www.paper.edu.cn 基于 LoadRunner 新一代网银系统性能测试 及优化 张毅 1,左理政 1,桂蓉 2* 5 10 15 20 25 30 35 (1. 重庆邮电大学通信与信息工程学院,重庆,400065; 2. 重庆市公安局) 摘要:为了满足客户对银行业务多样化、个性化的需求,信息系统复杂度不断上升,系统的 性能也及其需要保证。本文主要以《新一代网银系统的性能测试》的项目为背景,针对新一 代网银系统的特点进行测试需求分析,研究了性能测试的过程和方法。选取性能测试工具 Loadrunner 对平台进行测试,通过分析测试结果,找出了系统的瓶颈,并提出了性能优化的 建议和方法。通过前后两次结果的对比,系统的性能有了大幅度的提高。 关键词:新一代网银系统,性能测试,LoadRunner,性能调优 中图分类号:TP391 文献标识码:A Performance Testing and Optimization of Online Banking System Based on LoadRunner Zhangyi1, Zuolizheng1, Guirong2 (1. College of Communication and Information Technology,Chongqing University of Posts and Telecommunications,Chongqing 400065; 2. Chongqing Public Security Bureau) Abstract: In order to meet customer’s demand for the diversification and personalization of banking, the complexity of the information system needs to be increased and the performance of the system needs to be ensured. This paper, mainly basing on the project named " A Performance Testing On the New Generational Online Banking System ", gives a testing requirements analysis for the features of the new generational online banking system and a study on the process and methods of performance testing. The performance testing tool “Loadrunner” is used to test the performance of system’s platform. By analyzing the results of the testing, we found out the bottlenecks of the system’s performance, and made suggestions and methods for system performance optimization. By the comparison of the two testing results beforePerformance Testing and Optimization of Online Banking System Based on LoadRunner and after the optimization, we found out the performance of the system had greatly improved. Key words: New Generational Online Banking System; performance testing; LoadRunner; performance optimization 作者简介:张毅(1970-),男,教授,硕导,主要研究方向:嵌入式系统 应用和物联网及移动互联网研 究. E-mail: 602630281@qq.com - 1 -
中国科技论文在线 http://www.paper.edu.cn 0 引言 40 随着电子商务的发展,银行慢慢进入信息化时代,而网络系统是网银交易的基础平台, 支撑网银互联的基本运行[1]。基于 Web 的新一代网银系统已成为扩展金融业务、服务方式 和服务渠道的重要途经,同时也被广泛应用,它具有业务复杂、并发访问数量大、响应时间 快、稳定性和可靠性要求高等特点[2],其性能的优劣直接影响到用户的效率以及银行的发展, 所以如何有效开展网银系统的负载压力测试至关重要。 45 本文主要以公司开发的新一代网银系统为例,研究了使用 Loadrunner 对新一代网银系 统进行性能测试的过程和方法,通过对调优前后的测试结果对比分析,检验系统的性能是否 满足用户的需求。 1 测试工具 Loadrunner 的简介 1.1 Loadrunner 的工作原理 50 LoadRunner 可以模拟成千上万的用户实施并发负载,是一种预测系统行为和性能的工业 标准级负载测试工具[3]。它可以实时系统的性能并查找性能上的问题。LoadRunner 应用在 Web 测试中,不仅可以最大限度的减少测试时间,还可以优化系统的性能减少发布周期[4]。 LoadRunner 的体系架构如图 1 所示: 55 图 1 LoadRunner 的体系架构 Fig.1 System structure of LoadRunner Loadrunner 由以下三部分组成: Vugen ( Virtual User Generator)即脚本生成器、Controller (控制器)以及 Analysis 分析器组成。Vugen 用来录制虚拟用户的脚本,完成测试脚本的开 发;Controller 在 LoadRunner 整个体系架构中是一个指挥官的角色,用来执行修改和完善后 60 的脚本[5],实时监控和监督被测的对象;Analysis 分析器给测试人员提供丰富的图表和数据, 便于用户对测试的结果进行分析[6]。 - 2 - Web服务器应用服务器数据库服务器被测Web系统用户虚拟用户虚拟用户VuserVuserControllerAnalysisVirtual User Generator
中国科技论文在线 1.2 Loadrunner 的性能测试流程 http://www.paper.edu.cn Loadrunner 性能测试的流程如图 2 所示,主要分为测试的需求分析,测试的设计,测试 的执行以及测试的结果分析四个部分。接下来将对每个部分进行详细的介绍。 65 (1)测试的需求分析:性能的需求可以与用户沟通得来,同时也可以根据被测系统的开 发文档、用户的使用手册以及需求文档分析得到。它是 Web 系统负载测试的一个关键阶段, 主要确定性能测试的指标以及测试的策略。 (2)测试的设计:测试的设计主要分为测试用例的设计,测试场景的设计以及测试脚本 的开发和优化[7]。测试用例的设计是指导负载压力测试运行的关键步骤。主要是根据系统中 70 典型的常用的业务模块来进行设计的;测试场景的设计主要是根据系统的特征,以及在实际 业务运行时,用户的操作比例以及经常使用的业务操作等来设计测试场景的种类,同时具体 每类场景的设计,包括测试的目标、测试的方法、测试的持续时间、以及负载的加压策略[8]; 测试脚本的开发和优化,主要是将用户使用频繁的操作用一系列的脚本来表示。主要是通过 LoadRunner 组件 Vugen 及脚本生成器来完成的。 75 图 2 LoadRunner 的测试流程 Fig.2 Test process of LoadRunner (3)测试的执行:性能测试方案的执行就是按照前一阶段设计好的内容执行的一系列操 作,在这个过程中,需要将测试的结果记录下来,便于下一步测试结果的分析。 80 (4)测试的结果分析:主要是测试执行完成后,测试人员根据 LoadRunner 的 Anysis 组件 生成的相关的数据和图表,对测试的结果进行分析。如果未达到系统的需求就进行相关调优 工作,直至系统性能达标。 - 3 - 测试需求分析确定性能测试指标及测试策略测试场景设计测试用例设计脚本的开发与优化执行测试性能测试结果分析性能测试报告Try-check过程回归测试性能调优系统基线确定系统基线确定系统调整或迭代开发需求分析测试设计未达到性能指标标准终止测试达到性能指标或确定系统无法进一步调优
中国科技论文在线 http://www.paper.edu.cn 2 新一代网银系统的性能测试 2.1 测试的预期指标和环境部署 85 本次测试是在搭建的测试环境中模拟 Web 端发起交易,查看新一代个人网银系统应用 服务器的处理能力、稳定性情况。对系统进行负载压力测试,主要就是为了验证系统是否能 够达到预期的性能指标值[9]。此新一代网银系统用户给出的预期性能指标值如表 1 所示: 表 1 用户预期性能指标值 Tab.1 Performance index of User expected 序号 名 称 性能指标预期值 1 交易平均响应时间 核心接口响应时间<5 秒 交易 TPS 值 事务通过率 服务器资源 2 2 3 >100 99%以上 CPU 占用率<=80%; 内存占用率<=70%; 磁盘 I/O<=30%; 90 在负载压力测试的过程中,测试环境的搭建对负载压力测试的结果有着直接的关系。测 试的环境应该和生产上的环境部署一致。本文的测试环境如表 2 所示: 表 2 测试环境配置 Tab.2 Test environment configuration 应用描述 主机名称 IP CPU 内核 内存 操作系统 个人 WEB1 个人 WEB2 个人 APP1 个人 APP1 Ebankweb1 36.0.17.8 Ebankweb1 36.0.17.9 Ebankapp1 36.0.1.70 Ebankapp2 36.0.1.71 数据库服务 Ebankdb1 36.0.1.233 器 1 Ebankdb1-vip 36.0.1.236 -- -- 8 8 8 8 -- -- 64G 64G 64G 64G Redhat 5.8 Redhat 5.8 Redhat 5.8 Redhat 5.8 Redhat 5.8 Redhat 5.8 网络拓扑图如图 3 所示: 95 图 3 网络拓扑图 Fig.3 network topology 由图 3 可知,主要由 Web 前台客户端、两台 Web 服务器、两台装有 WAS 软件的应用 服务器、ESB、核心数据库等构成。首先用户通过网页发送信息给后台服务器,后台服务器 100 经过消息转发机制给 WAS 服务器,经过 ESB 的报文传输之后,最后由核心数据库处理,最 - 4 - WEB1服务器WEB2服务器ESB核心Web页面WASAPP1WASAPP2
中国科技论文在线 http://www.paper.edu.cn 后返回结果。 2.2 测试用例的设计 脚本的名称 网银登录 登出 表 3 登录登出的测试用例 Tab.3 Test case of login logout 操作步骤  启动 LoadRunner 的 Virtual User Generator;  录制用户系统登录登出的操作。具体的录制过 程包括输入用户名、密码点击登录按钮,自动进入我 的个人主页;  然后点击我的账号,选择退出按钮,回到登录 前的状态,点击 Virtual User Generator 的 STOP 按钮, 完成脚本录制并保存为“登出登出”;  对录制的脚本进行编辑优化,插入事务以及对 用户名参数化并设置检查点,回放脚本 功能描述 模拟用户正 常登录登出 网银系统, 测试不同并 发用户下系 统的登录退 出响应时间 105 2.3 测试的脚本和优化 负载压力测试执行的关键是测试脚本的开发,它编辑的是否正确对测试的结果有着一定 的影响,反应着用户使用系统的真实性操作。首先用 LoadRunner 的 VuGen 组件录制用户的 操作然后生成脚本,然后再此基础上对开发的脚本进行优化。主要用到参数化、添加事务和 定义检查点以及设置检查点几个关键技术。 110 (1)参数化 借助参数化可以减少脚本的数量,可以使业务更接近真实的客户操作,使每个虚拟用户 使用不同的参数值来模拟。就以用户的登录操作来说,要输入用户名和密码,进行参数化的 代码如下: web_submit_data("ebus_UserSignIn.do", "Action=http://36.0.17.8:8089/perbank/ebus_UserSignIn.do", "Method=POST", "RecContentType=application/xml", "Referer=http://36.0.17.8:8089/perbank/", "Snapshot=t19.inf", "Mode=HTML", ITEMDATA, "Name=rqId", "Value={username}", ENDITEM, "Name=jsonData", "Value={password}", ENDITEM, LAST); 通过对 username 和 password 的参数化,脚本再次运行时,用户将会以不同的账户和密 115 120 125 码进行登录,更真实的模拟用户的行为,使脚本回放成功。 (2)事务 为了清晰地看出测试代码中某段代码具体的操作是什么,以及最后在测试结果中准确显 示事务的响应时间,需要在脚本中插入事务,事务开始的标志是 lr_start_transaction (“事务 130 的名称”),结束标志为 lr_end_transaction (“事务的名称”,LR_AUTO),以登录为例,代 码如下: lr_start_transaction ("登录_806"); web_url("perbank", - 5 -
中国科技论文在线 http://www.paper.edu.cn "URL=http://36.0.17.8:8089/perbank/", 135 "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", 140 EXTRARES, lr_end_transaction("登录_806",LR_PASS); (3)检查点 检查点的作用就是在回放脚本期间,搜索与特定的文本字串和图片的内容,从而验证服 务器响应的内容是否正确。本次测试为了验证登录操作是否成功,设置了一个文本进行判断 145 验证。主要是通过 web_find()函数来设置。代码如下: web_reg_find("Text=welcome to the webindex", "Fail=NotFound",LAST); 当脚本回放时,通过查询是否出现 Text 设置的内容来判断业务操作是否正确,若有则 脚本运行是正确的,否则是失败的,需要重新编辑。 运用以上几个关键技术对测试脚本进行修改优化后,可以使编辑后的脚本更加符合实际 150 用户的操作。为下一步测试场景的设计和执行提供基础。测试的结果也会更加准确。 2.4 场景的设计和执行 当关键业务的脚本开发完成后,可以从下面几个场景来执行负载压力测试。本文主要以 单交易极限场景、混合负载交易场景来进行测试。下面给出了每种类型测试的测试的目的、 测试的方法以及测试的场景和测试策略。分别如表 4、表 5、表 6 所示: 155 表 4 极限场景测试 Tab. 4 Extreme scenario testing 极限测试场景测试 测试的目的 连接后端测试环境,不断加大交易并发量,验证新网银服务器最大的交易处理 能力 测试的方法 测试的场景 选取最典型和使用最频繁的交易,如登录登出,跨行转账,行内转账,账户余 额查询、财富总览的交易,在 20 并发基础上,每五分钟增加 10 个并发,直到 交易 TPS 不再上升,此时为交易的最大处理能力,并记录此时的系统的性能表 现以及交易结果,包括 TPS、交易成功率、交易响应时间,应用主机资源消耗。 场景 极限场景 并发量 压测时间 交易思考时间 20 30 40 50 直到 100 5 分钟 5 分钟 5 分钟 5 分钟 5 分钟 表 5 混合负载场景测试 Tab. 5 Mixed load scenario testing 混合负载场景测试 1 秒 1 秒 1 秒 1 秒 1 秒 本场景主要考察在搭建的测试环境下,混合交易获取网银服务器的性能及服 测试的目的 务效率,确定是否满足当前生产高峰业务量的处理要求。本场景需要同步考 察业务量提升 50%后的核心否符合测试指标要求。 - 6 -
中国科技论文在线 http://www.paper.edu.cn 测试的方法 对混合交易负载测试:按全部典型交易渠道交易占比组合测试脚本,根据单 支交易渠道业务 TPS 占总 TPS 的比率和单支交易 TPS 占渠道交易 TPS 的占 比,以及用户数设置迭代延迟时间, 无思考时间,虚拟用户采用逐步增加 的方式,达到测试指标后,持续运行 10 分钟。 按照下表中制定的并发量,压测时间进行测试,每个场景执行两次,并统计 每次场景执行结果,包括 TPS、交易成功率、交易响应时间、应用主机资源 消耗等。 测试的场景 场景 并发量 压测时间 交易思考时 混合负载场景 50 100 200 10 分钟 10 分钟 10 分钟 间 1 秒 1 秒 1 秒 160 3 测试结果的分析和优化 3.1 第一轮的测试结果 3.1.1 单交易极限测试结果 选取典型的五支交易,分别是登录登出、帐户查询、账户明细查询、行内转账、跨行转 账。按照上述的极限场景测试,除了登录登出交易其他的业务操作基本符合预期的情况。表 165 6 给出了登录登出交易的极限测试结果: 当并发数达到 40 时,登录 TPS 达到最大(5.3),由于增加并发时,网银互联接口耗时 增加明显,考虑到后台仿真性能等原因,没有继续增加并发。很明显与预期的指标要小于 5S 是不满足的。 170 Tab. 6 Test result in Login to log out of the transcation limit scenario 表 6 登录登出交易极限场景下测试结果 并发数 响应时间(登录) TPS(登录) 10 20 30 40 50 2.8s 3.9s 6.6s 7.8s 9.5s 3.5 5.1 4.6 5.3 5.3 3.1.2 混合负载场景测试结果 将典型业务交易按照一定比例混合,逐渐增加并发,直到 TPS 不再增加,响应时间持 续增加为止。来测试网银交易的最大处理能力。测试结果如图 4 所示: 此时网银应用服务器资源消耗如图 5 所示,ESB 资源消耗如图 6 所示(CPU 基本已经 175 消耗完)。 - 7 -
中国科技论文在线 http://www.paper.edu.cn 图 4 混合负载场景测试结果 Fig. 4 Test results in Mixed load scenario 180 图 5 混合场景下网银应用服务器资源消耗 Fig. 5 Resource consumption of Ebanks application server in Mixed load scenario 由图可以知道,混合场景交易测试时,随着并发用户的增多的时候,每秒处理的事务也 随着增加,网银资源的消耗也一直处于稳定增长中,当并发用户数增加到 145 时,此时的 TPS 为 69.4,继续增加并发用户,TPS 的值下降了,同时各个服务器上的资源随着时间的增 185 加而 CPU 出现大幅度提高,可以判断系统已经出现瓶颈。由此得出结论,混合交易场景下, TPS 最大值为 69.4,同样与预期指标有着一定的差距。还需要在后面的调优过程中给出优化 方法。 190 Fig. 6 ESB resource consumption in Mixed load scenario 图 6 混合场景下 ESB 资源消耗 3.2 系统调优与复测结果 在进行了第一轮性能测试后,针对测试中出现的问题,进行了思考和研究。在这些问题 中比较突出的问题有登录登出平均响应时间长,TPS 较小,内存使用率较高等情况,下面给 出了具体的调优方法。 - 8 -
分享到:
收藏