HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的PC上难以做到高并发压力测试,再加上需要装VS这个样一个庞大的工具也是件很麻烦的事情.使用HttpTest4Net这个小工具只需要简单地配置一下参数就可以进行现有的HTTP服务进行压力测试并得到一个详细的测试结果汇总.
工具只提供基础的GET和POST测试用例,但在一些场景中这两种测试可能满足不了需要;所以工作提供自定义测试用例的功能,开发人员可能通过实现HttpTest4Net.Interfaces.IUrlTester接口实现功能相对比较复杂的测试用例;编写好的测试用例只需要编译成DLL后放到测试工具运行的目录下即可完成.以下是组件提供的POST测试用例实现代码:
01 | [Test( "post base" )] |
02 |
public class PostUrlTester:IUrlTester |
03 |
{ |
04 |
public PostUrlTester() |
05 |
{ |
06 |
Encoding = "UTF-8" ; |
07 |
|
08 |
} |
09 |
public string Url |
10 |
{ |
11 |
get ; |
12 |
set ; |
13 |
} |
14 |
15 |
public string PostData |
16 |
{ |
17 |
get ; |
18 |
set ; |
19 |
} |
20 |
21 |
public string Encoding |
22 |
{ |
23 |
get ; |
24 |
set ; |
25 |
} |
26 |
|
27 |
public System.Net.HttpWebRequest CreateRequest() |
28 |
{ |
29 |
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); |
30 |
request.Method = "POST" ; |
31 |
request.ContentType = "application/x-www-form-urlencoded; charset=" +Encoding; |
32 |
byte [] data = System.Text.Encoding.GetEncoding(Encoding).GetBytes(PostData); |
33 |
request.ContentLength = data.Length; |
34 |
Stream myStream = request.GetRequestStream(); |
35 |
myStream.Write(data, 0, data.Length); |
36 |
myStream.Close(); |
37 |
return request; |
38 |
} |
39 |
40 |
public TestType Type |
41 |