51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4054|回复: 2
打印 上一主题 下一主题

[原创] 网站页面速度链接测试!(怎样配置测试环境?)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-12-23 11:38:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
或者在哪里测试比较可靠或者稳定..
我自己想到的测试环境有几个方案:
1.直接用浏览器打开网站页面;(用webwait工具可实现)---此操作会受网络环境和网速影响..有人下载..因为是链接到别人网站测试,也要考虑别人的环境;

2.在服务器上测试:此操作是通过连接到服务器上进行测试;(上海服务器)---环境也受限于第一个问题的影响;

3.在本机上测试:局域网上该环境是不能上网的..受限于系统配置不高,且不能用webwait测试,只能估算..因为页面代码没有写速度代码..可能用时钟来测算..

4.在toad上直接执行代码;此操作可单独测试页面列表的速度..但没能在整体上进行测试..比如多个页面一起运行的环境..

结论:难道要用LR..但只是压力工具来的?

如写得不好..请大家多指点...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-12-29 15:32:15 | 只看该作者

WEB应用程序测试!(性能测试VS负载测试VS压力测试)

给一个web应用做性能测试,你要知道至少两样东西:

在不同并发用户数或者HTTP连接数情况下的负载预期值*

可接受的响应时间

当你知道你的目标后,你就可以开始使用对系统持续增加负载的方法来观察系统的瓶颈所在。重新拿web应用系统来做例子,这些瓶颈可存在于多个层次,你可以使用多种工具来查明它们的所在:


在应用层,开发人员可以通过profilers来发现低效率的代码,比如说较差的查找算法
在数据库层,开发人员和数据库管理员(DBA)可以通过特定的数据库profilers及事件探查器(query optimizers)
在操作系统层,系统工程师可以使用一些工具如在Unix类的操作系统中的top,vmstat,iostat,在Windows系统中的PerfMon来监控CPU,内在,swap,磁盘I/O等硬件资源;专门的内核监控软件也可以在这一层面上被使用。
在网络层上,网络工程师可以使用报文探测器(如tcpdump),网络协议分析器(如ethereal),还有其它的工具(如netstat,MRTG,ntop,mii-tool)

下面就是一些在应用程序代码*之外仍可以提高WEB应用系统性能的例子:

使用WEB缓存装制,如Squid提供的装置
将高访问量的网页静态化,以避免这些高访问量对数据库进行大量的调用
通过负载平衡的方法来水平缩放WEB服务器的结构
在水平缩放数据库群及将它们分为读写服务器和只读服务器后,还要对只读服务器群负载平衡。
通过增加更多的硬件资源(CPU,内存,磁盘等)纵向的缩放WEB及数据库服务器群
增加网络的带宽

负载测试

我们都已经在性能测试调试的过程中,见识过负载测试了。在那种环境中,它意味着通过自动化工具来持续对系统增加负载。但对于WEB应用来讲,负载则是并发用户或者HTTP连接的数量。

术语“负载测试”在测试文献资料中通常都被定义为给被测系统加上它所能操作的最大任务数的过程。负载测试有时也会被称为“容量测试”,或者“耐久性测试/持久性测试”

容量测试的例子:

通过编辑一个巨大的文件来测试文字处理软件
通过发送一个巨大的作业来测试打印机
通过成千上万的用户邮箱来测试邮件服务器
有一种比较特别的容量测试是叫作“零容量测试”,它是给系统加上空任务来测试的。
耐久性测试/持久性测试的的例子:

在一个循环中不停的运行客户端超过一个扩展时间段。
负载测试的目的:

找到一些在测试流程中前面的阶段所进行的粗略测试中没有被找出的bugs,例如,内存管理bugs,内存泄露,缓冲器溢出等等。
保证应用程序达到性能测试中确定的性能基线。这个可以在运行回归试验时,通过加载特定的最大限度的负载来实现。
尽管性能测试和负载测试似乎很像,但他们的目的还是有差异的。一方面,性能测试使用负载测试的技术,工具,以及用不同的负载程度来测度和基准化系统。在另一方面来讲,负载测试是在一些已经定义好的负载程度上进行测试的,通常对系统加上最大负载之后,系统应该仍然可以提供全部功能。这里需要明确一点,负载测试并不是要对系统加载上过度的负载而使系统不能工作,而是要使系统像一个上满了油的机器嗡嗡叫。

在负载测试的相关内容中,我想应该非常重要的是要有十分充足的数据来进行测试。从我的经验中得知,假若不用非常大的数据*去测的话,有很多严重的bug是不会的到的。比如说,LDAP/NIS/Active Directory数据库中成千上万的用户,邮件服务器中成千上万的邮箱,数据库中成G成G的表,文件系统中很深的文件或者目录的层次,等等。显然,测试人员就需要使用自动化工具来产生这些庞大的数据集,比较幸运的是任何优秀的脚本语言都可以胜任这些工作。

压力测试

压力测试是指通过对系统加载过度的资源或者例系统没有应该具有的令系统可以正常运作的资源,来使系统崩溃(在某些情况的时候,它又可以叫做负面测试)。进行这个疯狂行为的主要目的是为了保证系统出故障及可以适当的恢复,而这个恢复得怎么样的特性则是叫做可恢复性。

当性能测试需要的是一个可控制的环境和不断的测度的时候,压力测试则是令为欢喜的引起混乱及不可预测性(译者按:从这一点可以看出作者是一个很优秀的测试人员)。还是举WEB应用系统为例,下面是一些对系统可行的压力测试方法:

两倍的已经基线的并发用户数或者HTTP连接数
随机的关闭及重开连接到服务器上的网络上集线器/路由器的端口(例如,可以通过SNMP命令来实现)
把数据库断线然后再重启
当系统还在运行的时候,重建一个RAID阵列
WEB和数据库服务器上运行消耗资源(如CPU,内存,磁盘,网络)的进程
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 12:17 , Processed in 0.070004 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表