针对Httptest4net构建Elasticsearch集群压力测试用例
作者:网络转载 发布时间:[ 2014/11/25 13:21:12 ] 推荐标签:测试用例 软件测试 压力测试
httptest4net是可以自定义HTTP压力测试的工具,用户可以根据自己的情况编写测试用例加载到httptest4net中并运行测试。由于近需要对elasticsearch搜索集群进行一个不同情况的测试,所以针对这个测试写了个简单的测试用例。
代码
1 [Test("ES base")]
2 public class ES_SearchUrlTester : IUrlTester
3 {
4
5 public ES_SearchUrlTester()
6 {
7
8
9 }
10 public string Url
11 {
12 get;
13 set;
14 }
15
16
17 static string[] urls = new string[] {
18 "http://192.168.20.156:9200/gindex/gindex/_search",
19 "http://192.168.20.158:9200/gindex/gindex/_search",
20 "http://192.168.20.160:9200/gindex/gindex/_search" };
21
22 private static long mIndex = 0;
23
24 private static List<string> mWords;
25
26 protected static IList<string> Words()
27 {
28
29 if (mWords == null)
30 {
31 lock (typeof(ES_SearchUrlTester))
32 {
33 if (mWords == null)
34 {
35 mWords = new List<string>();
36 using (System.IO.StreamReader reader = new StreamReader(@"D:main.dic"))
37 {
38 string line;
39
40 while ((line = reader.ReadLine()) != null)
41 {
42 mWords.Add(line);
43 }
44 }
45 }
46 }
47 }
48 return mWords;
49 }
50 /*
51 {"query" :
52 {
53 "bool" : {
54 "should" : [ {
55 "field" : {
56 "title" : "#key"
57 }
58 }, {
59 "field" : {
60 "kw" : "#key"
61 }
62 } ]
63 }
64 },
65 from:0,
66 size:10
67 }
68 */
69 private static string GetSearchUrlWord()
70 {
71 IList<string> words= Words();
72 System.Threading.Interlocked.Increment(ref mIndex);
73 return Resource1.QueryString.Replace("#key", words[(int)(mIndex % words.Count)]);
74 }
75
76 public System.Net.HttpWebRequest CreateRequest()
77 {
78 var httpWebRequest = (HttpWebRequest)WebRequest.Create(urls[mIndex%urls.Length]);
79 httpWebRequest.ContentType = "application/json";
80 httpWebRequest.KeepAlive = false;
81 httpWebRequest.Method = "POST";
82 string json = GetSearchUrlWord();
83 using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
84 {
85
86 streamWriter.Write(json);
87 streamWriter.Flush();
88 }
89 return httpWebRequest;
90
91 }
92
93 public TestType Type
94 {
95 get
96 {
97 return TestType.POST;
98 }
99 }
100 }
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11