C/S 测试二

上一篇 / 下一篇  2010-09-26 16:04:03

当前Web测试主要通过Web测试工具加上良好的测试案例完成的,我们认为主要有以下两种测试类型:基准测试、非基准测试

  基准测试:主要指测试工具已经提供了标准的测试案例库,包括静态测试案例(HTMJPG)、动态测试案例(CGI)和SSL测试案例等。这类测试工具分为测试案例库、控制台程序、客户端程序三个部分。它的原理是,Web服务器开启特定的Web服务程序,并且运行上述测试案例,由控制台程序控制各个客户端按照一定的脚本访问顺序遍历Web服务器的各个测试案例,每个请求完成后,各个客户端向控制台报告访问的结构,当一个测试集完成后由控制台将所有的信息综合统计,测试过程中控制台还需要采用SNMP协议对服务器进行实时监控,综合两个方面的因素可以反映出Web服务器在不同压力情况下的综合性能。

  在测试过程中,主要影响测试结果的因素有网络环境、客户端性能。目前无论IA架构服务器还是SUNHPIBMUNIX服务器性能都越来越优越,有可能出现在100MB网络下不能够提供足够的网络压力,有可能网络首先出现瓶颈,这样就需要扩展到1000MB网络环境或使用多个网段对服务器提供足够的压力,而稳定的客户端对于测试来说也是十分重要的,因为客户端如果出现性能下降,就会造成系统崩溃或者不能提供稳定的测试压力从而导致测试结果出现偏差;一台客户端到底能够稳定运行多少数量的连接是根据不同的硬件配置和操作系统决定的,因此对客户端的硬件资源进行监控是保证客户端可以稳定运行的必要手段。

  由于这类测试工具使用的是工具开发商提供的测试案例集,虽然也具有一定的权威性,但是目前再完美的测试案例集也不能涵盖所有的Web应用情况,所以也不能够完全体现出Web服务器完整的性能,因此该类测试工具更加适合IT媒体对Web类服务器软硬件的横向对比测试,在测试对象和环境大体统一的情况下,可以比较出各个测试对象的性能差异。而对于有实际应用背景的Web服务器进行测试,使用这样的测试工具就不适合了,我们在以后的测试漫谈中会继续介绍。

 

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公司的TUXEDOIBM公司的CICS等。(事实上J2EE架构的应用也属于这种三层或多层结构,这里不包括。)
  三层或多层C/S结构与两层C/S结构相比,它的优势主要表现在:安全性加强、效率提高、易于维护、可伸缩性、可共享性、开放性好等。
  1.2系统架构示意图

  1.3 CS/CSS系统架构中性能测试的特点
  1.3.1 CS/CSS系统架构的性能影响因素
  由于CS/CSS系统的以下特性,测试工程师对一个CS/CSS系统实施性能测试具有很大的难度:
  l整个系统的各个部分使用多种操作系统,性能上有差别;
  l整个系统架构的各个环节上使用多种数据库,同样在性能上有差别;
  l应用是多个,分属多个种类,分布在不同设备上,包括自行开发的应用、第三方的应用;
  l系统中的设备、组件通过不同协议进行连接、通讯;
  l系统的内部接口多,性能瓶颈多;而系统的整体性能往往取决于最差的部分;需要分别测试和联合测试
  l系统的性能指标不光同应用系统架构有关,还和具体行业应用的业务模式有关;
  l采用此架构的行业应用往往是一个7×24小时系统;
  l采用此架构的行业应用可能高柜业务多,这样会影响对性能度量项的选取和转换;
  l各个环节基本上以交换数据报文的方式通信,其格式经常会比较复杂。
  因此这样的系统对于对测试工程师的知识的深度和广度都是一个考验。对于这样的系统,到底如何使用什么样的测试策略、如何分析测试需求、如何选取性能度量项的转换计算模型、如何确定测试内容和轮次、如何设计性能测试案例等等以及规划和实施性能测试中的其它诸多问题,都需要遵循一个系统的方法来解决。
  1.3.2 CS/CSS系统架构中性能测试的基本策略
  1.确定好测试工作范围
  首先可以分析压力测试中最容易出现瓶颈的地方,从而有目的地调整测试策略或测试环境,使压力测试结果真实地反映出软件的性能。例如,服务器的硬件限制、数据库的访问性能设置等常常会成为制约软件性能的重要因素,但这些因素显然不是用户最关心的,我们在测试之前就要通过一些设置把这些因素的影响调至最低。
  另外,用户更关心整个系统中哪个环节的性能情况也会影响工作范围。如有的环节是全新系统,而有的环节已经是成熟系统只是稍有改动,这样可能全新系统的局部性能测试就需要系统和全面一些。
  2.分析好客户的性能测试需求
  客户是已经明确提出了性能指标,还是只提供了用户使用方式和历史交易流量数据,需要我们自己进行性能基准的计算?性能测试的目的是验证系统性能还是想确定目标系统的理想配置?是否还要使用测试结果预测在不同机型的处理能力?是否要求在性能测试各个轮次中安排性能调优过程等等问题都需要有针对性的解答。
  3.要作好性能测试的计划和方案
  测试计划和方案中要注意测试需求分析阶段提出的问题的解决。
  4.确定的测试通过准则、性能测试的计划、结果要获得客户的认可
  要和客户确认,系统的性能指标达标的标准是什么;对于性能测试中各个部分和步骤的计划和结果,甚至是性能测试过程,都要根据其重要程度,决定是否需要客户进行确认和签字。获得客户的认可是最重要的。
  1.3.3 CS/CSS系统中性能测量与性能探测
  u性能测量
  1.在性能测试开始前必须认真规划性能测量:
  软件性能测量技术范围很广。可以包括日志、事件计数、事件持续时间、采样等性能测量技术。
  l确定性能测量的策略:我们要测试什么?
  l规划性能测试中使用什么样的测量工具。
  2.测量的代表性
  l测量结果要能够反映出影响性能的重要因素:工作量负载、软件和计算机系统环境。
  3.测量的可重复性
  l能够控制工作量负载、软件和计算机系统环境,从而能够重复测试过程。
  u性能探测技术
  在进行性能测量时,可以使用标准的商用工具进行,但是往往标准工具提供的数据不能满足要求。性能探测就是在程序的关键点插入代码探针来测量软件的执行特性。从而达到以下的目标:
  性能数据获取更方便
  数据的详细程度提高
  数据收集方式更加可控
  依据

TAG:

w阿思的个人空间 引用 删除 w阿思   /   2011-03-07 17:13:42
5
 

评分:0

我来说两句

日历

« 2024-04-14  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 61859
  • 日志数: 77
  • 建立时间: 2010-07-16
  • 更新时间: 2012-12-30

RSS订阅

Open Toolbar