关公 发表于 2008-11-14 15:14

用负载测试证明:我上班没有迟到!

我们公司的网站碰到问题甚是奇怪,在9点左右同事们登录系统考勤的时候,有的同事经常抱怨自己的网页很长时间才能打开,但是当IT部门的工程师到他那里时网页又打开了 ?…#** ,这事把同事弄得很郁闷,我还惨到被boss多次K过
对于网站服务器的这个问题,IT部门还给我们了官方解释,“第一个呢,那个是生产服务器,IT部门很难去那拿它测试的,系统崩溃了谁负责阿? 但是你们说的Bug呢,,我们又很难重现,因为不管是单元测试还是基本场景测试都没有发现问题啊%¥#—……”哀莫大于心死,这样大家忍受着早到班上1小时。。
其实我想问题应该不难,可能生产力服务器遇到了性能方面的问题,因为我们分析9点多钟正是大家集中登录系统的时候,这是网站服务器的负载无疑会增大到系统的峰值,而就像北京奥运会注册网站一样,如果碰到大负载的时候,服务器可能会出现性能降低甚至拒绝服务的现象。
事情出现转机,IT对这个故障跟我们的看法相似,大家开始验证和重现故障的方法,然后多方专家会诊后,我们找到了微软Visual Studio Team System 中的负载测试功能。
VSTS的负载测试环境准备方法,包括Agent和Controller的配置,MSDN上有,所以我就不再细讲了,安装好环境,我们就来开始我们的测试吧。
1. 右键单击测试项目,然后单击 Add(添加),再单击 Web Test(Web 测试)。将打开带有 Web Test Recorder(Web 测试记录器)资源管理器栏的浏览器。

http://img2.iwomm.cn/1114v/01.jpg

图 4 :记录 Web 测试用例
2. 在地址栏中,输入测试站点的 URL,
3. 输入前面添加的用户名和密码。单击 Login(登录)按钮后,将会记录另一个条目和窗体发布参数。这样,在测试运行时,将会自动发送相同的数据。甚至单击按钮的 X 坐标和 Y 坐标也将作为测试的一部分保存,因为这些坐标也已作为请求的一部分提交了。
4. 添加其他测试步骤,方法是注销站点,然后使用无效凭据重试登录。
5. 记录所需的测试后,关闭浏览器窗口并保存测试。
此时,项目将自动包括 Web 测试用例文件和记录的每个请求。

http://img2.iwomm.cn/1114v/02.jpg

记录测试之后,我们准备开始执行该测试。若要执行项目中的所有测试,只需运行该项目。这将打开测试结果窗口并在每个测试运行时将其标记为挂起,执行完毕后,标记为通过/失败。从 Test Manager(测试管理器)窗口和 Test View(测试查看)窗口也可以选择和执行测试。

http://img2.iwomm.cn/1114v/03.jpg

我们尝试了系统在1个用户和最大用户100的情况(连带宽和浏览器都能选,强!)

http://img2.iwomm.cn/1114v/04.jpg

终于我们的测试开始了

http://img2.iwomm.cn/1114v/05.jpg

结果很令我们兴奋,我们发现当用户负载数量达到100的时候,系统果然出现了性能急剧下降,甚至拒绝服务的现象。

http://img2.iwomm.cn/1114v/06.jpg

于是,IT部门终于可以为这些同事平反,而我也受到了一个被平反MM的青睐,所谓……,^_^
推荐几个大家可以借鉴的文章,都是牛人写的
http://www.microsoft.com/china/msdn/library/langtool/vsts/VS05TmSysWebTst.mspx?mfr=true
webcast:VSTS风暴系列课程(15):测试人员版(上) (Level 200)
webcast:VSTS风暴系列课程(16):测试人员版(下) (Level 200)
VSTS 中文技术论坛
http://forums.microsoft.com/china/ShowForum.aspx?ForumID=1733&SiteID=15
Visual Studio Team System 2008 Team Suite(三十天试用,3.83GB)
Visual Studio Team System 2008 Team Foundation Server(三十天试用,1.29GB)
Visual Studio Team System 2008 Test Load Agent(三十天试用,551MB)
Visual Studio 2008 Express(免费,895MB)
页: [1]
查看完整版本: 用负载测试证明:我上班没有迟到!