北京中科医院电话 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/jzpj/1.CS/CSS系统架构的基本概念1.1系统架构定义虽然B/S结构、J2EE架构愈来愈成为流行模式,但基于传统的C/S结构的应用程序还广泛地应用于各种行业。尤其是金融行业中的商业银行柜面-核心账务系统等。一方面由于传统商业银行一般都有大量的字符终端等需要复用的设备,一方面也是因为他们存在大量密集的对实时性要求很高的高柜业务,使用传统的基于C/S结构或者C/S/S结构的应用效率更有保证。C/S结构即CLIENT/SERVER结构。传统的C/S结构一般分为两层:客户端和服务器端。该结构的基本工作原理是,客户程序向数据服务器发送SQL请求,服务器返回数据和结果。客户端负责实现用户接口功能,同时封装了部分应用逻辑。服务器端的数据库服务器主要提供数据存储功能,也通过触发器和存储过程提供部分应用逻辑。C/S/S结构即客户/应用服务器/数据库服务器三层结构,中间增加了应用服务器,通常实现应用逻辑,是连接客户与数据库服务器的桥梁。它响应用户发来的请求执行某种业务任务,并与数据库服务器打交道,技术实现上通常选用中间件产品,如BEA公司的TUXEDO和IBM公司的CICS等。(事实上J2EE架构的应用也属于这种三层或多层结构,这里不包括。)三层或多层C/S结构与两层C/S结构相比,它的优势主要表现在:安全性加强、效率提高、易于维护、可伸缩性、可共享性、开放性好等。1.2系统架构1.3CS/CSS系统架构中性能测试的特点1.3.1CS/CSS系统架构的性能影响因素由于CS/CSS系统的以下特性,测试工程师对一个CS/CSS系统实施性能测试具有很大的难度:*整个系统的各个部分使用多种操作系统,性能上有差别;*整个系统架构的各个环节上使用多种数据库,同样在性能上有差别;*应用是多个,分属多个种类,分布在不同设备上,包括自行开发的应用、第三方的应用;*系统中的设备、组件通过不同协议进行连接、通讯;*系统的内部接口多,性能瓶颈多;而系统的整体性能往往取决于最差的部分;需要分别测试和联合测试*系统的性能指标不光同应用系统架构有关,还和具体行业应用的业务模式有关;*采用此架构的行业应用往往是一个7×24小时系统;*采用此架构的行业应用可能高柜业务多,这样会影响对性能度量项的选取和转换;*各个环节基本上以交换数据报文的方式通信,其格式经常会比较复杂。因此这样的系统对于对测试工程师的知识的深度和广度都是一个考验。对于这样的系统,到底如何使用什么样的测试策略、如何分析测试需求、如何选取性能度量项的转换计算模型、如何确定测试内容和轮次、如何设计性能测试案例等等以及规划和实施性能测试中的其它诸多问题,都需要遵循一个系统的方法来解决。 1.3.2CS/CSS系统架构中性能测试的基本策略1.确定好测试工作范围首先可以分析压力测试中最容易出现瓶颈的地方,从而有目的地调整测试策略或测试环境,使压力测试结果真实地反映出软件的性能。例如,服务器的硬件限制、数据库的访问性能设置等常常会成为制约软件性能的重要因素,但这些因素显然不是用户最关心的,我们在测试之前就要通过一些设置把这些因素的影响调至最低。另外,用户更关心整个系统中哪个环节的性能情况也会影响工作范围。如有的环节是全新系统,而有的环节已经是成熟系统只是稍有改动,这样可能全新系统的局部性能测试就需要系统和全面一些。2.分析好客户的性能测试需求客户是已经明确提出了性能指标,还是只提供了用户使用方式和历史交易流量数据,需要我们自己进行性能基准的计算?性能测试的目的是验证系统性能还是想确定目标系统的理想配置?是否还要使用测试结果预测在不同机型的处理能力?是否要求在性能测试各个轮次中安排性能调优过程等等问题都需要有针对性的解答。3.要做好性能测试的计划和方案测试计划和方案中要注意测试需求分析阶段提出的问题的解决。4.确定的测试通过准则、性能测试的计划、结果要获得客户的认可要和客户确认,系统的性能指标达标的标准是什么;对于性能测试中各个部分和步骤的计划和结果,甚至是性能测试过程,都要根据其重要程度,决定是否需要客户进行确认和签字。获得客户的认可是最重要的。 1.3.3CS/CSS系统中性能测量与性能探测性能测量1.在性能测试开始前必须认真规划性能测量:软件性能测量技术范围很广。可以包括日志、事件计数、事件持续时间、采样等性能测量技术。*确定性能测量的策略:我们要测试什么?*规划性能测试中使用什么样的测量工具。2.测量的代表性*测量结果要能够反映出影响性能的重要因素:工作量负载、软件和计算机系统环境。3.测量的可重复性*能够控制工作量负载、软件和计算机系统环境,从而能够重复测试过程。性能探测技术在进行性能测量时,可以使用标准的商用工具进行,但是往往标准工具提供的数据不能满足要求。性能探测就是在程序的关键点插入代码探针来测量软件的执行特性。从而达到以下的目标:–性能数据获取更方便–数据的详细程度提高–数据收集方式更加可控依据SPE(软件性能工程)的建议,软件探测需求应该作为软件体系结构的组成部分。在设计软件时设计软件探针。所以在规划项目中的性能测试过程中,要建议进行软件设计时考虑岛性能探测需求,为性能测试中更好的进行性能测量做好准备。 1.3.4CS/CSS系统下性能测试的类型广义的性能测试包括许多类型。如:*Scalability/loadtesting(规模化/压力测试):通过在被测系统上不断增加压力,直到性能指标例如响应时间超过预定指标或者某种资源已经达到饱和状态。这种测试可以找到系统的处理极限,为系统调优提供数据。*Performancetesting(性能测试):通过模拟生产运行的业务压力量和使用场景组合测试系统的性能是否满足生产性能要求。如以实际投产结构测试,求出最大的吞吐量与最佳回应时间以保证上线的平稳,安全等。*Configurationtesting(配置测试):通过测试找到系统各项资源的最优分配原则。*Concurrencytesting(并发测试):测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。*Stresstesting(极限测试):测试系统在一定饱和状态下,例如CPU、内存在饱和使用饱和情况下,系统能够处理的会话能力,以及系统是否会出现错误。*Volumetesting(容量测试):测试系统能够处理的最大会话能力。*Reliabilitytesting(可靠性测试):通过给系统加载一定的业务压力(例如资源在70-90%的使用率)的情况下,运行一段时间。*Failovertesting(失败测试):对于有冗余备份和负载均衡的系统,通过这样的测试来检验如果系统局部发生故障用户是否能够继续使用系统,用户将受到多大的影响。在CS/CSS系统下实际的性能测试中,需要根据具体情况进行性能测试类型的选取和组合。 1.3.5CS/CSS系统下性能测试的组成部分通常在一个CS/CSS系统中,分为用户界面层、服务逻辑层和数据服务层等几个层次,分别对应着客户、应用服务器、数据库服务器。如在金融行业应用中,客户端承载着柜面业务,部署在网点(包括字符柜员或图形柜员),还包括部署在自助设备上面的自助业务等;应用服务器上面主要是起到路由功能、业务处理功能、和渠道整合的作用;而核心业务处理系统包括交易平台、业务逻辑、核心处理、数据处理等。由于业务逻辑分布在不同的环节,导致系统的内部接口多,性能瓶颈多,而系统的整体性能往往取决于最差的部分。所以对于整个系统的整体性能的测试可能需要针对各个环节分别做好各自的内部性能测试。如下面的一个CS/CSS系统金融行业应用的例子:为了测试整个系统的性能,需要预先针对各个组成部分进行内部性能测试,如后台主机的压力测试、SNAgateway的压力测试、大前置系统的压力测试、前端系统的压力测试、外系统接入的压力测试等等。在本次进行的内部压力测试中,为了排除系统其它部分的影响,均需要隔离各自的部分,驱动和桩都使用软件测试工具或自行编制程序来代替。在每个部分的内部压力测试中,又均可以根据具体情况使用上一节说明的各种性能测试类型进行性能测量。 2.CS/CSS系统架构中的性能测试的度量项计算模型2.1定义度量标准项进行性能测试的模型分析时,首先要确定关键性能目标。它应该是通过与客户沟通获得的,这些目标应该是解决客户
转载请注明:
http://www.aideyishus.com/lkcf/8362.html