新一代本币交易系统的综合性能测试实践

2017-10-09 08:42周显明王勇
电气自动化 2017年3期
关键词:本币报价客户端

周显明, 王勇

(中国电子科技集团第三十二研究所,上海 200233)

新一代本币交易系统的综合性能测试实践

周显明, 王勇

(中国电子科技集团第三十二研究所,上海 200233)

为测试多市场金融交易平台的性能,提出一种基于LoadRunner测试平台的综合性能测方法,通过搭建模拟测试环境和软件模拟大批量在线并发用户等方法,严格按照性能测试实施流程,实现了对交易平台的系统容量、系统处理能力、客户端响应时间、系统可靠性和安全性等指标的测试,取得了较好的验证和评估效果。

本币交易系统;性能测试;TPS(每秒事务处理能力);系统处理能力;系统可靠性; 模拟环境

Abstract: For the purpose of testing the performance of a multi-market financial transaction platform, this paper presents a comprehensive performance testing method based on LoadRunner testing platform. By setting up simulation test environment and simulating through software a large amount of on-line concurrent users, in strict accordance with the implementation process for performance tests, we have successfully tested indexes of the trading platform, such as system capacity, system processing ability, client-side response time, system reliability and security. Good verification and evaluation effects are achieved.

Keywords: RMB trading system; performance test; TPS (transaction processing capability per second); system handling ability; system reliability; simulation environment

0 引 言

根据金融产品计价所用的币种不同,可划分为外汇市场和本币市场。本币市场由现货市场(货币、债券)和衍生品市场(货币、债券、信用等衍生品)组成。2015年在本币市场联网交易成员已超过7 400家,这些交易单位的本币交易均通过交易中心的本币交易系统实现,并将成交数据通过大额支付系统进行资金清算。

交易中心上线的新一代本币交易系统,为市场主体提供更安全、更高效、更便捷的交易服务平台,以及丰富、灵活的交易前、中后台辅助与扩展功能,适合不同类型、不同规模的机构,该系统涵盖货币市场、债券市场、衍生品市场,支持多种交易方式,基本能够满足市场主体的交易需求。

该系统是典型的C/S架构:服务器端的运行环境为AIX7.1+Oracle11g,主要包含了交易核心进程、交易辅助模块、系统维护模块和各类与外围系统的接口;客户端的运行环境为Windows+MS SqlCE3.5,主要用于交易前台(DWS)、交易中后台(MBO)和场务子系统(MSC);客户端和服务器端采用自主研发的IMIX消息协议进行通信,并采用安全数字证书进行认证;系统部署采用“上海/北京”主备模式,主要服务器均采用主备或双活实现系统高可用性。

1 综合性能测试

围绕交易系统的性能测试(Performance Testing),一般有2个测试维度:交易/事务(Transaction)、用户操作(Client Operation),性能测试通常用基于一定并发用户数下的响应时间或吞吐量(每秒事务处理能力)来度量。就新一代本币交易系统来看,系统用户数在8 000~10 000 个,在线用户数从实际场务统计显示在800~1 000 个,并发用户数按每天交易报价统计显示在30个左右。

常用的性能分析方法可以是基于内存的、基于CPU的、基于磁盘I/O的、基于进程的或基于网络的,通过各类性能计数器(Performance Counter)来分析具体的量化指标。对新一代本币交易系统的性能测试,设定了以下一些主要性能指标:

(1)交易成员数(支持10 000家用户上线);

(2)每天报价笔数(支持每天500 000笔报价);

(3)峰值时间报价笔数(支持每分钟10 000笔报价);

(4)基础数据及交易数据下载时间(在100 M局域网环境下不超过2分钟);

(5)用户登录时间/平均查询时间(在100 M局域网环境下不超过5秒);

(6)报价时间指标/成交确认时间(在100 M局域网环境下不超过2秒)。

综合性能测试,除了上述性能测试外,还涉及负载测试(Load Testing)、压力测试(Stress Testing)、破坏性测试(如:应急切换)和安全性测试(如:数据加密)。负载测试是通过不断加载(如:逐渐增加模拟用户的数量)等方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。压力测试是在强负载(如:大数据量、大量并发用户等)下的长时间运行,查看应用系统在峰值情况下的表现,从而发现系统的某项功能或性能隐患。针对本项目,我们采用了8小时稳定运行测试,基于服务器和进程故障的应急切换测试,及针对交易数据加密传输机制的安全性测试[1]。

2 测试实践剖析

2.1 测试内容

本次测试对象是交易中心新一代本币交易系统,该系统为银行、保险公司、债券公司、基金公司、财务公司等各类金融机构提供统一的本币交易服务平台。测试类型主要是性能测试,同时包括负载测试、压力测试、应急切换测试和安全性测试,属于综合性能测试。

依据新一代本币交易系统的设计性能参数,结合交易中心历年各市场交易数据,分析并建立典型应用场景作为性能测试对象,同时根据各市场使用分布情况和服务端进程设计的实际情况,可以将测试内容(关键性能指标)划分为以下的几大部分:

(1)系统机构和用户容量指标

系统机构和用户容量指标包括交易成员数指标、交易员数指标等。此类指标的验证相对简单,只需要使用执行SQL脚本直接往数据库写入规定数量的机构和用户数量即可。

(2)系统处理能力指标

系统处理能力指标包括峰值时间报价笔数指标、峰值时间段成交笔数指标、峰值客户端并发用户指标等,因为各市场从设计上保证了独立性,所以对于各市场必须单位验证峰值处理能力。此外,还需要通过对典型业务的分析,确定混合市场的峰值报价和成交处理能力,并进行验证。

(3)客户端功能响应时间指标

功能操作响应时间包括基础数据及交易数据下载时间指标、用户登录时间指标、成交确认时间指标、平均查询时间指标、平均汇总时间指标等。

(4)可靠性指标

可靠性指标包括每天报价笔数指标、每天成交笔数指标、8小时稳定运行指标等[2]。

2.2 测试流程

性能测试项目实施过程一般可划分为5个阶段,包括:测试启动阶段、测试准备阶段、测试执行阶段、性能调优阶段、测试报告和总结阶段,如图1所示。

图1 性能测试项目实施流程

测试启动阶段:主要完成性能测试需求分析和具体计划的制定,确定性能测试进度要求、人员要求、范围要求和测试技术要求,主要活动包括性能测试需求讨论、项目进度计划编制、性能测试方案初稿、完成性能测试方案和性能测试方案评审,并输出性能测试计划和性能测试方案[3]。

测试准备阶段:在项目性能测试计划和测试方案确定之后,进行脚本准备、数据准备、系统运行软硬件环境准备、测试工具准备、测试执行阶段:根据性能测试方案确定的测试场景和脚本执行顺序,执行:基准测试执行和监控、单场景测试执行和监控、混合场景执行和监控、稳定性测试执行和监控、测试结果数据采集。

性能调优阶段:针对测试结果数据,确定哪些测试数据结果符合期望结果,配合项目开发人员进行性能瓶颈定位,在修改代码和配置后,再次对调优结果进行验证[4]。

测试报告和总结阶段:对测试执行采集的结果数据和监控数据进行汇总和分析,编制性能测试报告,并对项目过程进行总结和分析。

2.3 测试环境和方法

本次测试所搭建的模拟环境如图2所示。

图2 模拟测试环境网络拓扑图

首先,LoadRunner的从原理上就是通过执行功能,记录相应功能与服务器之间的通信收发的数据,产生测试脚本模板,测试人员参数化相应的数据,建立测试场景并设置参数,便可以实现并发测试。新一代本币交易系统采用了安全机制,即服务端和客户端的通信通过“加密和加压处理”以非明文的方式进行,所以原先的直接使用LoadRunner录制测试脚本,进行参数化后进行性能测试的方法并不适用。在测试实践中,使用COM机制解决了LoadRunner不能调用.net代码的问题,通过提供的解密和加密以及解压算法,并且采用16进制进行数据传输解决了加密后数据转换容易失真的问题[5]。

其次,新一代本币交易系统是C/S结构,采用Socket通信机制,系统性能指标的验证需要模拟大批量用户进行并发操作,因此选用了典型且常用的LoadRunner9.0作为系统处理能力指标验证的主要工具。但是,该交易系统要求有上千个在线用户,对于LoadRunner会涉及License的费用,所以在实践操作中采用了自主开发的在线用户模拟软件来实现,最终达到每台PC机模拟800个在线用户。

涉及客户端功能操作响应类的性能指标,选用了Quick Test Professional 9.2,进行录制客户端的功能操作过程,通过在脚本中插入检测点,获取各个操作的系统时间,通过计算得到各个操作的具体客户端响应时间。此外,客户端功能操作响应时间与客户端的带宽、服务器的性能压力都有关系,在测试实践中还选用了Net Limit 2.0进行网络带宽的限制。

2.4 关键性能指标测试结果

(1)单市场的峰值时间报价处理指标

为验证系统中各个单市场的峰值处理能力,使用客户端模拟了6个MSC用户(不限制带宽),使用在线用户模拟软件模拟了450个DWS用户(限定每个用户32Kbit带宽),使用LoadRunner模拟50个并发用户(限定每个用户32Kbit带宽),以获取服务器TPS(每秒处理的报价数量)值。以现券市场交易对话为例,图3给出了TPS测试结果,即在500个在线用户,50个并发用户情况下,对话报价能达到41.991笔/秒。

图3 现券市场对话报价峰值TPS曲线图

(2)峰值时间客户端并发用户指标

选取执行现券市场、质押式回购市场、信用拆借市场,分别模拟100个并发用户进行对话报价,总共300个并发用户,无其他在线用户,未限制网络带宽,执行时间为5分钟,以获取峰值时间客户端并发性能。显示了此种情况下TPS值变化曲线比较稳定,三个市场混合对话报价TPS达到66笔/秒。

(3)峰值时间报价响应指标

在模拟环境下,使用客户端模拟了5个MSC用户(不限制带宽),使用在线用户模拟软件模拟了450个DWS用户(限定每个用户32Kbit带宽),使用LoadRunner模拟50个并发用户(限定每个用户32Kbit带宽),以获取峰值情况下的报价响应时间。以现券市场交易对话为例,图4显示平均响应时间在1.006秒(最大10.187秒,最小0.449秒)。

(4)8小时稳定运行指标

在模拟环境下,使用客户端模拟了2个MSC用户(不限制带宽),使用在线用户模拟软件模拟了2400个DWS用户(限定每个用户32Kbit带宽),使用LoadRunner模拟64个并发用户(限定每个用户32Kbit带宽),每个并发用户每秒发起1笔报价消息,每个成交并发用户每10秒发起1笔成交消息,每隔20秒发起5个用户的登录操作,再每隔20秒发起5个用户的退出操作,连续执行该测试脚本8小时,显示:64个并发用户顺利执行各种报价和成交操作,2400个在线用户正常接收报价数据,总计857917笔报价,其中36713笔成交,压力测试期间各服务器进程基本正常。

3 结束语

经过对新一代本币交易系统的综合性能测试结果数据的分析:该系统目前能支持7000家交易成员,峰值时间客户并发300个对话报价运行正常,在8小时稳定运行测试中实现了857000多笔日报价数(设计指标为500000笔)、实现了近60000多笔日报价数(设计指标为50000笔),峰值时间报价时间和成交时间等响应时间指标均在2秒左右(基本满足设计要求)。在对通信服务器故障切换、LM进程故障恢复和应用进程故障恢复的测试中,也都全部通过测试。

[1] 王伟君,姜毅,刘蕤,等. 云计算环境下软件测试研究进展[J].现代图书情报技术,2012,33(11):3-9.

[2] 李志刚,冯亚娜.云计算虚拟环境下第三方软件测试环境研究[J].信息技术,2013,37(8):183-185.

[3] (印度)TARUN LALWANI.QTP自动化测试权威指南[M].赵旭斌,阙勇,韩洪波,何庆丹,译.2版. 北京:人民邮电出版社, 2013.

[4] (英)格雷,福斯特.自动化测试最佳实践[M].朱少民,张秋华,赵亚男,译. 北京:机械工业出版社,2013.

[5] 王奇,曹良帅,赵贤敬,等. 基于SaaS的自动化测试云平台研究[J]. 电信工程技术与标准化,2012,25(10):67-71.

Comprehensive Performance Test Practice for the New Generation RMB Trading System

Zhou Xianming, Wang Yong

(No. 32 Research Institute, China Electronics Technology Group,Shanghai 200233, China)

10.3969/j.issn.1000-3886.2017.03.006

TP311

A

1000-3886(2017)03-0016-04

定稿日期: 2016-10-27

周显明(1961- ),男,上海人,高级工程师,硕士, 软件工程及软件测试方向。 王勇(1981-),男,江苏启东人,工程师,学士,软件工程及软件测试方向。

猜你喜欢
本币报价客户端
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
进出口银行:将大力推动金砖国家本币使用
货币汇率(年平均价)
客户端空间数据缓存策略
报价