针对httptest4net构建elasticsearch集群压力测试用例
httptest4net是可以自定义HTTP压力测试的工具,用户可以根据自己的情况编写测试用例加载到httptest4net中并运行测试。由于最近需要对elasticsearch搜索集群进行一个不同情况的测试,所以针对这个测试写了个简单的测试用例。
代码
[Test("ES base")]
public class ES_SearchUrlTester : IUrlTester
{ public ES_SearchUrlTester()
{ }
public string Url
{
get;
set;
} static string[] urls = new string[] {
"http://192.168.20.156:9200/gindex/gindex/_search",
"http://192.168.20.158:9200/gindex/gindex/_search",
"http://192.168.20.160:9200/gindex/gindex/_search" }; private static long mIndex = ; private static List<string> mWords; protected static IList<string> Words()
{ if (mWords == null)
{
lock (typeof(ES_SearchUrlTester))
{
if (mWords == null)
{
mWords = new List<string>();
using (System.IO.StreamReader reader = new StreamReader(@"D:\main.dic"))
{
string line; while ((line = reader.ReadLine()) != null)
{
mWords.Add(line);
}
}
}
}
}
return mWords;
}
/*
{"query" :
{
"bool" : {
"should" : [ {
"field" : {
"title" : "#key"
}
}, {
"field" : {
"kw" : "#key"
}
} ]
}
},
from:0,
size:10
}
*/
private static string GetSearchUrlWord()
{
IList<string> words= Words();
System.Threading.Interlocked.Increment(ref mIndex);
return Resource1.QueryString.Replace("#key", words[(int)(mIndex % words.Count)]);
} public System.Net.HttpWebRequest CreateRequest()
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create(urls[mIndex%urls.Length]);
httpWebRequest.ContentType = "application/json";
httpWebRequest.KeepAlive = false;
httpWebRequest.Method = "POST";
string json = GetSearchUrlWord();
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{ streamWriter.Write(json);
streamWriter.Flush();
}
return httpWebRequest; } public TestType Type
{
get
{
return TestType.POST;
}
}
}
用例很简单根据节点和关键字构建不同请求的URL和JSON数据包即可完成。把上面代码编译在DLL后放到httptest4net的运行目录下即可以加载这用例并进行测试。
测试情况
针对httptest4net构建elasticsearch集群压力测试用例的更多相关文章
- 2.使用Helm构建ElasticSearch集群
作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-05-24 16:08:53 星期五 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...
- Elasticsearch集群 管理
第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...
- PB 级大规模 Elasticsearch 集群运维与调优实践
PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...
- Elasticsearch集群架构的部署和调优(一)
[root@es-node1 ~]# mkdir /usr/java[root@es-node1 ~]# tar zxvf jdk1.8.0_131.tar.gz -C /usr/java/ [roo ...
- ELK 性能(4) — 大规模 Elasticsearch 集群性能的最佳实践
ELK 性能(4) - 大规模 Elasticsearch 集群性能的最佳实践 介绍 集群规模 集群数:6 整体集群规模: 300 Elasticsearch 实例 141 物理服务器 4200 CP ...
- 升级 Elasticsearch 集群数量实战记录
搜索引擎 升级 Elasticsearch 集群数量实战记录 现在线上有一个elasticsearch集群搜索服务有三台elasticsearch实例(es1.es2.es3),打算将其升级为5台(增 ...
- 手把手教你搭建一个Elasticsearch集群
一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个 ...
- ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程
前言 本文主要介绍的是ElasticSearch集群和kinaba的安装教程. ElasticSearch介绍 ElasticSearch是一个基于Lucene的搜索服务器,其实就是对Lucene进行 ...
- 手把手教你搭建一个 Elasticsearch 集群
为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? 高可用性 Elasticsearch 作为一个搜索引擎, ...
随机推荐
- sqoop job 踩过的坑
sqoop 执行可以以job形式 也可以执行用命令执行,再用sqoopjob时,踩了几个坑,分享一下 1.服务器重启 由于服务器增加硬盘,需要重启后,发现sqoop job 无法执行,报连接数据库IO ...
- JavaScript中的Map
1.首先,在新版本的浏览器中,已经实现了对Map的原生支持:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Glob ...
- C++ 一个程序获取另一个程序Edit控件的内容
//一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HWND hWnd=::FindWindow(NULL,"zhang001"); if( ...
- MFC 实现字符串的移动
在视类添加一个WM_KeyDown,然后实现函数写上 switch(nChar) {.. CRect rc; GetClientRect(&rc); int nWidth = rc.Wid ...
- javascript中的innerHTML是什么意思,怎么个用法?
innerHTML在JS是双向功能:获取对象的内容 或 向对象插入内容:如:<div id="aa">这是内容</div> ,我们可以通过 document ...
- HttpServletResponse
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...
- 在将 varchar 值 '1,2,3,4,5,6,7,8' 转换成数据类型 int 时失败。
alter PROCEDURE PrTradingDelete ) AS BEGIN WHERE id in(@id) END GO 执行上面这个存储过程会异常.提示 :在将 varchar 值 '1 ...
- Linux云服务器安装tomcat
安装tomcat需要安装JDK 1.上传 把下载好的tomcat压缩包(apache-tomcat-7.0.tar.gz)和jdk(jdk-7u76-linux-x64.tar.gz)压缩包上传到/u ...
- <T>的用法
///类型转换 template <class T1,class T2> vector<T2> ObjcetsSwap(vector<T1> objects) { ...
- 短信转发Q群
※◆☆★☆◆※欢迎使用!!!如有问题或新功能需求请联系作者QQ:82850696*4*您使用的测试版已到期,如需继续使用,请联系作者 QQ : 82850696*0*2015-1-7 23:59:59 ...