WEB压力测试

article/2025/9/22 19:04:24
互联网的普及,宽带的流行,使得越来越多的 个人和单位都架设了自己的网站。而充当网站的 服务器 的大多是普通的PC或者低档 服 务器 , 这样访问者人数一多或者遭受DDos攻击,很容易造成瘫痪。因此我们需要网站在真正发布前对其进行压力测试,即让少量的客户端计算机或一台计算机仿真模拟 出大量用户同时访问,以获得服务器的承受能力。在此我们可以借助微软的网站测试人员开发的一款名为Web Application Stress Tool(简称WAS)的工具来完成,其下载地址为 http://download.microsoft.com/download/a/8/2/a82e7ba7-c772-4ec4-b186-2cf147f42c11/setup.exe

    一、准备工作

    为了测试数据的准备性,首先需要删除缓存和Cookies等临时文件。启动IE后打开“工具”菜单下的“Internet”选项命令,在打开的 “Internet选项”窗口的“常规”选项卡中,单击“Internet临时文件”区域的“删除Cookies”和“删除文件”按钮将临时文件删除。

    二、录制测试脚本

    安装并启动WAS,程序运行时会打开“Cteate new script”对话框,即建立一个新的脚本窗口(如图1),如果运行WAS没有打开该窗口可以单击WAS主程序窗口工具栏上第一个按钮“New Script”即可。

图1

    因为是初次使用,所以在新建脚本窗口上单击“Record”按钮打开创建向导对话框“Browser Recorder-Step 1 of 2”,其中三个选项的作用是选择要记录的内容,分别为Request(请求)、Cookies(网上信息块)以及Host headers(主机标题),可根据需要选择(图2),然后单击“Next”即会打开“Browser Recorder-Step 2 of 2”窗口,单击“Finish”按钮。这样WAS会自动启用,并且会打开一个浏览器窗口,此时我们就可以在浏览器的地址栏中输入要测试的网站网址。随着要 测试的网站内容的不断显示,在WAS主界面的“Recording”选项卡中的信息会实时更新(如图3)。

图2

图3

    当浏览器的状态栏显示为“完成”时,我们就可以返回WAS窗口,单击“Stop Recording”按钮返回脚本窗口。

    三、测试设置

    为了使测试更加准确,更加接按真实效果,需要对录制的测试脚本进行一些设置。

    去除静态干扰

    由于网页是由图片、文字以及其它动态源码组成的,而一般的静态内容消耗的带宽并不是很大,因此我们可以将其排除在外。在脚本中选中指向图像、文字以及其它 静态文件项目前的灰色按钮,然后单击工具栏上的“Delete”按钮将其删除(图4)。

图4

    设置并发数

    然后在单击“New Recorded Script”下的“Settings”标签,其中“Concurrent Connections”是设置并发连接数的,其下面的“Stress level (threads)”和 “Stress multiplier(sockets perthread)” 分别设置对目标服务器的压力及负载程度的,其中Level是客户端所产生的线程数目,一个线程可以产生多个Socket并发请求,因此将两者的数值相乘, 所获得的数字就是客户端同时连接的并发数(图5)。

图5

    时间设置

    时间设置包括“Test Run Time”(测试运行时间)和“Request Delay”(停止响应)以及“Suspend”(挂起时间)三项。其中测试运行时间是以日、小时、分钟和秒来设定的,建议该项时间不宜太短,如果设置的 并发数较多,那么时间应该按比较增长,以便产生足够多的请求;而停止时间是指连接时超出这个时间即作超时处理;在挂起时间处部分为Warmup和 Cooldown两项,一般可以设置为两三分钟为宜,这样做的目的是避免测试开始和结束时数据的变形,影响测试的准确性。

    指定带宽瓶颈

    “Bandwith”是指定带宽瓶颈的,即选择访问该网站大多数用户所使用的带宽。例如访问该网站的绝大部分用户是拨号,那么可以选择56K。

    四、开始测试

    做好基本的设置工作后,就可以在左侧选中新建的脚本“New Recorded Script”项,然后单击工具栏上的“Run Script”按钮,或者打开“Scripts”菜单下的“Run”命令,这样就开始测试了。测试过程中会以进度条的方式实时显示,待进度条结束我们即可 进行测试结果分析了。

    五、数据分析

    现在我们就可以打开测试报告来查看测试结果了。单击“View”菜单,选择“Reports”,在打开的窗口左侧会按时间显示所有测试报告。根据时间选择 本次测试报告,在窗口右侧即可查看具体内容。

    在测试报告中最重要的部分就是“Socket Errors”部分和“Result Codes”部分。其中Socket Errors部分共分为Connect、Send 、Recv和Timeouts。其中Connect表示客户端不能与服务器取得连接的次数;Send表示客户端不能正确发送数据到服务器的次数;Recv 表示客户端不能正确从服务器接次的次数;Timeouts表示超时的线程数目。由此我们可以如果这四个数值都比较小,甚至为0则说明我们的服务器是经得起 考验的;如果数值居高不下,甚至接近设置的并发数,那么则要好好的检查你的服务器了(图6)。

图6

    另外在“Result Codes”部分,如果Code列表下的数值都为200,那么表示所有请求都经服务器成功返回,如果数值出 现400或大于400,例如404,那么则需要在左侧找到“Page Data”节点,查看具体的错误项目,然后作出改正了。

    其实要完整的反映出一个网站在服务器上的运行情况,需要不断增减其并发数,并且进行多次测试,才能了解服务器所能承受的限度,然后才可以在IIS中设置允 许连接的最大数目,从而保证网站正常运行。

XL 转自:http://www.cnblogs.com/DavidLc/archive/2008/03/27/1124440.html


http://chatgpt.dhexx.cn/article/gJ5PxwDS.shtml

相关文章

10个免费的web压力测试工具

转自:http://apps.hi.baidu.com/share/detail/53794908 当一套程序写完或者一台服务器配置完成后,相必很多朋友会像我一样,非常想知道它到底能够承受多大的负载压力,那在本文中,就给大家介绍十个免费的可以用来进行Web…

Web网页性能压测工具 ApacheBench 和 WebBench

转载: Web网页性能压测工具 ApacheBench 和 WebBench (米扑博客) 1. ApacheBench ab 压测工具安装 ab是针对apache的性能测试工具,可以只安装ab工具,支持 http 和 https 网页。 Ubuntu安装:sudo apt-get -y install…

网站压力测试工具webbench

webbench最多可以模拟3 万个 并发连接 去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。 1、适用系统:Linux 2、编译安装: 引用 wget http://blog.s135.com/soft/linux/webbench/webbench-1.…

web压力测试-Web Bench

1.web bench下载,地址:http://home.tiscali.cz/~cz210552/webbench.html 2.wen bench安装: [rootweb111 tmp]#tar -zxvf webbench-1.5.tar.gz [rootweb111 tmp]# cd webbench-1.5 [rootvstar111 webbench-1.5]# ll total 28 lrwxrwxrwx…

web压力测试工具(持续更新)

由于需要测试zabbix监控性能,特意研究了下web压力测试工具,工具如下: 第一款:http_load http_load是一款基于Linux平台的web服务器性能测试工具,用于测试web服务器的吞吐量与负载,web页面的性能&#xff…

十个免费的 Web 压力测试工具(转)

本文列举了是十个免费工具,可以用来进行Web的负载/压力测试的。这样你就可以知道你的服务器以及你的WEB应用能够扛得住多少的并发量,以及网站性能。 0. Grinder – Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提…

vue页面刷新时,执行了哪些生命周期——谨慎使用beforeDestroy和destroyed

先来回顾一下vue实例的生命周期(以下图片来自官方文档)。 我的项目中某个组件在localstorage中存了数据,要求离开页面时需要把localstorage中相应的数据清空。于是我将清空storage的代码写在了beforeDestroy中。但在刷新页面时,st…

浏览器刷新vue为什么不会走beforeDestroy和destroyed生命周期

浏览器刷新vue为什么不会走beforeDestroy和destroyed生命周期 业务场景: 需要在页面卸载的时候去处理一些数据,比如清空 localStorage 然后就会把一些业务逻辑写在beforeDestroy或者destroyed的生命周期里 浏览器刷新的时候会走这两个生命周期吗 答案是不会 不是说在组件卸…

vue中,组件使用keep-alive缓存,beforeDestroy和destroyed会被调用吗?

分析 首先,答案是不会的,准确的说是不会直接调用。 默认情况下,也就是没有设置keep-alive,当离开当前路由时,会直接调用beforeDestroy和destroyed来销毁。 当组件设置keep-alive后,不会直接调用这个销毁周期函数&…

vue3.0 The `destroyed` lifecycle hook is deprecated. Use `unmounted` instead

用vue3.0使用了destroyed,报错 报错意思是:不推荐使用“已销毁”生命周期挂钩。改用“unmounted”在vue3.0 中: destroyed 生命周期选项被重命名为 unmounted beforeDestroy 生命周期选项被重命名为 beforeUnmount 把destroyed 改为 unmount…

Glide异常:You cannot start a load for a destroyed activity

项目上线后,Bugly上统计到错误如下: 原因很简单在Glide加载图片的时候发现发现控件所在的Activity已经被销毁了。搜索一下这个错误信息"You cannot start a load for a destroyed activity",定位问题: 即:在…

Vue keep-alive后不能触发destroyed

<keep-alive :include"cachedViews"><router-view :key"key" /></keep-alive> 当我们在项目中配置了keep-alive后&#xff0c;会发现页面关闭不能触发beforeDestroy。 首先我们来看看keep-alive是什么东西 keep-alive是Vue的内置组件&…

小米开机the system has been destroyed

原因&#xff1a;可能是升级/刷机系统之时重启导致&#xff0c;也可能是刷机时选择了【全部删除并/lock】导致系统损坏&#xff0c;非硬件损坏&#xff0c;可以通过刷机解决。 解决步骤 1、解锁BL&#xff0c;登录后进行解锁。 2、解锁后刷机即可 记得点击全部删除

vue 生命周期4 销毁流程 beforeDestroy destroyed

销毁流程&#xff1a; 当调用了vm.$destroy 则触发销毁流程 验证下&#xff1a; 加一个按钮和销毁事件 效果&#xff1a; 发现点击了vm销毁,但是页面上仍不变 因为虽然vm没了但是vm的工作成果还是在的 并不是vm销毁后,它的生成的dom也销毁掉,只不过是没有人帮你去管理了 …

浏览器刷新为什么不会走销毁(beforeDestroy和destroyed)周期?

浏览器刷新为什么不会走销毁&#xff08;beforeDestroy和destroyed&#xff09;周期&#xff1f; 为什么我要写这篇博客呢&#xff0c;还有就是为什么我会问这个问题呢&#xff1f; 因为之前我遇到一个内存泄漏的问题&#xff0c;然后呢我在vue的beforeDestroy生命周期钩子函…

electron报错Error: Object has been destroyed

文章目录 问题描述解决方案 问题描述 在 Electron 中&#xff0c;当一个窗口被销毁后&#xff0c;与该窗口相关联的 JavaScript 对象也会被销毁&#xff0c;再次访问已被销毁的窗口对象时&#xff0c;会导致 Error: Object has been destroyed 错误。 例如之前在写多窗口pinia…

【解决】MissingReferenceException: The object of type ‘GameObject‘ has been destroyed 观察者模式 监听物体被销毁

MissingReferenceException: The object of type ‘Text’ has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. 该情况发生于我的观察者模式在重新加载当前场景时 监听的物体被…

统一接口平台(一) 产品介绍

产品介绍 前端应用系统通过统一接口平台获取数据&#xff0c;不直接与外部系统接口打交道。统一接口平台通过多种方式与外部系统联接获取数据并向各前端应用系统提供各种数据格式包&#xff0c;将外部系统有效地隔离在业务系统之外。前端应用系统需要请求的外部接口需要在统一…

常见的几个接口管理平台简介

年前最后一更&#xff0c;自从Internet服务开发以来&#xff0c;作为开发者阵营&#xff0c;我们已经在实践中证明了前端和后端分离开发模型正逐渐成为越来越多的Internet公司构建服务和应用程序的一种方式。 前端和后端分离的优点很多。一个重要的优点是&#xff0c;对于后台服…