web压力测试的几个关键点


设计压力应用

    设计试图对 Web 服务进行压力测试的压力测试系统时,要让它们以某种特定的方式运行代码。这些风格超越 了功能验证,目的是要弄清楚被测试的 Web 服务是不是不仅能做我们认为它能做的事,而且在被施加了某些高强度压力的情况下仍然继续正常运行。压力测试 必须对 Web 服务应用四个基本条件。许多已建立的压力系统应用了这些条件。有效的压力测试系统将应用以下这些关键条件: 

重复(Repetition):  或许最明显的且最容 易理解的压力条件就是测试的重复。换句话说,测试的重复就是一遍又一遍地执行某个操作或功能,比如重复调用一个 Web 服务。功能验证测试可以用来被弄 清楚一个操作能否正常执行。而压力测试将确定一个操作能否正常执行,并且能否继续在每次执行时都正常。这对于推断一个产品 是否适用于某种生产情况至关重 要。客户通常会重复使用产品,因此压力测试应该在客户之前发现代码错误。许多最简单的压力系统只实现这一个条件,但简单地扩 展功能验证测试来多次重复并 不能构成一个有效的压力测试。当与下面的一些原则结合起来使用时,重复就可以发现许多隐蔽的代码错误。 


并发(Concurrency):  并发是同时执行多个操作 的行为。换句话说,就是在同一时间执行多个测试,例如在同一个服务器上同时调用许多 Web 服务。这个原则不一定适用于所有的产品(比如无状态服务), 但是多数软件都具有某个并发行为或多线程行为元素,这一点只能通过执行多个代码示例才能测出 来。功能测试或单元测试几乎不会与任何并发设计结合。压力系 统必须超越功能测试,要同时遍历多条代码路径。至于怎么做到这一点取决于具体的产品。例如,一个 Web 服务压力测试需要一次模拟多个客户机。 Web 服务(或者任何多线程代码)通常会访问多个线程实例间的一些共享数据。因额外方面的编程而增加的复杂性通常意味着代码会具有许多因并发引起的错 误。由于引 入并发性意味着一个线程中的代码有可能被其他线程中的代码中断,所以错误只在一个指令集以特定的顺序(例如以特定的定时条件)执行时才会被发 现。把这个原 则与重复原则结合在一起,您可以应用许多代码路径 和定时条件。 


量级(Magnitude):  压力系统应该应用于产品的另 一个条件考虑到了每个操作中的负载量。压力测试可以重复执行一个操作,但是操作自身也要尽量给产品增加负担。例如,一个 Web 服务允许客户机输入一条 消息,您可以通过模拟输入超长消息的客户机来使这个单独的操作进行高强度的使用。换句话说就是,您增加了这个操作的量级。这个量级 总是特定于应用的,但 是可以通过查找产品的可被用户计量和修改的值来确定它 — 例如,数据的大小、延迟的长度、资金数量的转移、输入速度以及输入的变化等等。单独的高强度操 作自身可能发现不了代码错误(或者仅能发现功能上的缺陷), 但与其他压力原则结合在一起时,您将可以增加发现问题的机会。 


随机变化:  最后一点,任何压力系统都多多少少具有一些随机 性。如果您随机使用前面的压力原则中介绍的无数变化形式,您就能够在每次测试运行时应用许多不同的代码路径。下面是几个关于怎样在测试生 命周期内改变测 试的示例。使用重复时,在重新启动或重新连接服务之前,您可以改变重复操作间的时间间隔、重复的次数,或者也可以改变被重复的 Web 服务的顺序。使用 并发,您可以改变一起执行的 Web 服务、同一时间运行的 Web 服务数目,或者也可以改变关于是运行许多不同的服务还是运行许多同样的实例的决定。 量级或许是最容易更改的 — 每次重复测试时都可以更改应用程序中出现的变量(例如,发送各种大小的消息或数字输入值)。如果测试完全随机的话,因为很难 一致地重现压力下的错误,所以 一些系统使用基于一个固定随机种子的随机变化。这样,用同一个种子,重现错误的机会就会更大。 


    一个压力测试通常会结合上述的所有原则,并且在允许的范围内尽可能长时间地运行。测试被允许的执行时间越长,就可以遍历越多的代码路径,并且发现 的错误也越多。当然,一旦找到错误就必须 诊断并修复它。由于一个代码错误可以在压力测试运行多日以后自己显示出来,所以系统必须保证当出现错误时所有可 用的调试信息都被生成 — 否则可能就必须花费同样多的时间来重现这个错误。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、功能测试 1、链接测试   (1)、测试所有链接是否按指示的那样确实链接到了该链接的页面;  (2)、测试所链接的页面是否存在;  (3)、保证Web应用系统上没有孤立的页面(所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问)。  2、表单测试 (1)、注册、登陆、信息提交等,必须测试提交操作的完整性,以校验提交给服务器的信息的正确性; (2)、用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等;  (3)、检验默认值的正确性; (4)、如表单只能接受指定的某些值,测试时跳过这些字符,看系统是否会报错。 3、Cookies测试(session测试同) (1)、Cookies是否起作用;  (2)、Cookies是否按预定的时间进行保存; (3)、刷新对Cookies有什么影响。  4、设计语言测试 (1)、使用哪种版本的HTML; (2)、验证不同的脚本语言。例如Java、Javascrīpt、 ActiveX、VBscrīpt或Perl等。 5、数据库测试 (1)、数据一致性错误:主要是由于用户提交的表单信息不正确而造成的; (2)、输出错误:主要是由于网络速度或程序设计问题等引起的。  二、性能测试 1、连接速度测试 (1)、Web系统响应时间; (2)、超时的限制。 2、负载测试 (1)、某个时刻同时访问Web系统的用户数量; (2)、也可以是在线数据处理的数量。 3、压力测试 (1)、压力测试测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。 (2)、压力测试的区域包括表单、登陆和其他信息传输页面等。 三、可用性测试 1、导航测试 (1)、导航是否直观 (2)、Web系统的主要部分是否可通过主页存取  (3)、系统是否需要站点地图、搜索引擎或其他的导航帮助  (4)、Web应用系统的页面结构、导航、菜单、连接的风格是否一致  (5)、Web应用系统导航帮助要尽可能地准确。Web应用系统的层次一旦决定,就要着手测试用户导航功能。 2、图形测试 一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:  (1)、要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间; (2)、Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面; (3)、验证所有页面字体的风格是否一致; (4)、背景颜色应该与字体颜色和前景颜色相搭配; (5)、图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值