模拟用户提交页面数据到另外一个页面,用来测试代码的响应时间,,,加上多线程功能,也可以测试系统的承受能力。算是简单的压力测试吧。
代码步骤;
1,准备参数(实例中是用getStuData()方法从数据库中获取)
2.发出请求
3.获取服务器结果
public
static
string
PostData(
string
url,
int
Num)
... {
string[] s = getStuData(Num);
string postData = s[0];
string bmxh = s[1];
string encodeType="gb2312";//"ISO-8859-1";
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.GetEncoding(encodeType);
byte[] data = encoding.GetBytes(postData);
string content = "";
DateTime dtBegin=new DateTime();
DateTime dtEnd = new DateTime();
// 准备请求...
try
...{
// 设置参数
request = WebRequest.Create(url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.Timeout = 3000;
request.Proxy = System.Net.GlobalProxySelection.GetEmptyWebProxy();
request.ContentType = "application/x-www-form-urlencoded";
request.Accept =
"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*";
request.ContentLength = data.Length;
outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close();
//发送请求并获取相应回应数据
dtBegin = DateTime.Now;
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
if (response != null)
...{
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
//返回结果网页(html)代码
content = sr.ReadToEnd();
}
else
content = "Error";
dtEnd = DateTime.Now;
}catch
...{
content = "Error";
}
if(!content.Equals("Error"))
...{
TimeSpan d3 = dtEnd.Subtract(dtBegin);
content = string.Format("[{2}] 页面载入时间{0}.{1} S ", d3.Seconds, d3.Milliseconds * 0.001, bmxh);
}
return content;
}
... {
string[] s = getStuData(Num);
string postData = s[0];
string bmxh = s[1];
string encodeType="gb2312";//"ISO-8859-1";
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.GetEncoding(encodeType);
byte[] data = encoding.GetBytes(postData);
string content = "";
DateTime dtBegin=new DateTime();
DateTime dtEnd = new DateTime();
// 准备请求...
try
...{
// 设置参数
request = WebRequest.Create(url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.Timeout = 3000;
request.Proxy = System.Net.GlobalProxySelection.GetEmptyWebProxy();
request.ContentType = "application/x-www-form-urlencoded";
request.Accept =
"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*";
request.ContentLength = data.Length;
outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close();
//发送请求并获取相应回应数据
dtBegin = DateTime.Now;
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
if (response != null)
...{
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
//返回结果网页(html)代码
content = sr.ReadToEnd();
}
else
content = "Error";
dtEnd = DateTime.Now;
}catch
...{
content = "Error";
}
if(!content.Equals("Error"))
...{
TimeSpan d3 = dtEnd.Subtract(dtBegin);
content = string.Format("[{2}] 页面载入时间{0}.{1} S ", d3.Seconds, d3.Milliseconds * 0.001, bmxh);
}
return content;
}
null