其实我一直想知道,究竟一题一题ajax提交答案,也就是说,点击一题的答案,就ajax请求一下服务器,提交一次答案,能否撑到100个用户同时考试呢?
准备环境
asp.net 2.0 + sql2000
ado.net插入数据
web stress application tool(微软出产的web开发压力测试软件)
1.建数据库exam_stress
脚本如下:
CREATE DATABASE exam_stress
GO
USE exam_stress
GO
CREATE TABLE [dbo].[Answer](
[ID] [int] NOT NULL identity primary key, --ID
[QID] [int] NOT NULL, --题目ID
[Answer] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, --答案
[PAID] [int] NOT NULL, --答卷ID
[PID] [int] NOT NULL --试卷ID
) ON [PRIMARY]
GO
表的设计,是二范式与三范式之间
2.建web应用程序
1.建一Default.aspx页面,上面有几个按钮,点击时,发出ajax请求AnswerHandler.ashx
页面代码如下:
界面如下:
2.建AnswerHandler.ashx文件,直接插入一条数据到Answer表中,代码如下:
然后发布到IIS中,进行下一步的压力测试
在http://download.microsoft.com/download/a/8/2/a82e7ba7-c772-4ec4-b186-2cf147f42c11/setup.exe
下载Microsoft Web Application Stress Tool,进行压力测试
相关使用,请参考帮助,或上网查询相关使用资料,其实看得懂英文的话,一般都会使用了。
用户量100,平均1秒点击2次,测试20分钟,操作如下:
先点录制
再输入部署好的站点地址
然后点击100下“提交答案”的按钮
然后停止录制
把用户数设成100个
把delay(延迟)设成0到500
然后开始20分钟的测试
如图所示:
结果如下:
Overview
================================================================================
Report name: 2010-7-4 7:37:53
Run on: 2010-7-4 7:37:53
Run length: 00:20:01
Web Application Stress Tool Version:1.1.293.1
Number of test clients: 1
Number of hits: 453922
Requests per Second: 378.27
Socket Statistics
--------------------------------------------------------------------------------
Socket Connects: 454006
Total Bytes Sent (in KB): 230898.13
Bytes Sent Rate (in KB/s): 192.42
Total Bytes Recv (in KB): 381243.94
Bytes Recv Rate (in KB/s): 317.70
Socket Errors
--------------------------------------------------------------------------------
Connect: