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

针对httptest4net构建elasticsearch集群压力测试用例的更多相关文章

  1. 2.使用Helm构建ElasticSearch集群

    作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-05-24 16:08:53 星期五 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...

  2. Elasticsearch集群 管理

    第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...

  3. PB 级大规模 Elasticsearch 集群运维与调优实践

    PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...

  4. Elasticsearch集群架构的部署和调优(一)

    [root@es-node1 ~]# mkdir /usr/java[root@es-node1 ~]# tar zxvf jdk1.8.0_131.tar.gz -C /usr/java/ [roo ...

  5. ELK 性能(4) — 大规模 Elasticsearch 集群性能的最佳实践

    ELK 性能(4) - 大规模 Elasticsearch 集群性能的最佳实践 介绍 集群规模 集群数:6 整体集群规模: 300 Elasticsearch 实例 141 物理服务器 4200 CP ...

  6. 升级 Elasticsearch 集群数量实战记录

    搜索引擎 升级 Elasticsearch 集群数量实战记录 现在线上有一个elasticsearch集群搜索服务有三台elasticsearch实例(es1.es2.es3),打算将其升级为5台(增 ...

  7. 手把手教你搭建一个Elasticsearch集群

    一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个 ...

  8. ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程

    前言 本文主要介绍的是ElasticSearch集群和kinaba的安装教程. ElasticSearch介绍 ElasticSearch是一个基于Lucene的搜索服务器,其实就是对Lucene进行 ...

  9. 手把手教你搭建一个 Elasticsearch 集群

    为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? 高可用性 Elasticsearch 作为一个搜索引擎, ...

随机推荐

  1. avalon2学习教程12数据验证

    avalon2砍掉了不少功能(如ms-include,ms-data),腾出空间加了其他更有用的功能.数据验证就是其中之一.现在avalon2内置的验证指令是参考之前的oniui验证框架与jquery ...

  2. android系统中查看哪些端口被哪些应用打开

    1 查看哪些端口开放,netstat 2 根据端口号获取到UID,比如端口号为10050,转成16进制是2742,使用命令grep -i 2742 /proc/net/tcp6,就能看到其UID,假如 ...

  3. redis cluster搭建

    一 .准备文件: Ruby :http://www.ruby-lang.org/en/downloads/    redis-3.0.5.tar.gz Redis:http://www.redis.c ...

  4. JAVA课程实验报告 实验三 敏捷开发与XP实践

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

  5. Android菜鸟成长记3-activity类

    Activity 一.什么是activity Activity 是用户接口程序,原则上它会提供给用户一个交互式的接口功能.它是 android 应用程序的基本功能单元.Activity 本身是没有界面 ...

  6. nginx限制ip连接数和带宽

    今天有个人问我,nginx怎么限制ip连接数,突然想不起来了,年龄大了,脑子不怎么好使了.还要看一下配置才想起了.那个人又问我,你测试过的吗?一下子把我问蒙了,我真没测试过了,也不知道启作用了没有.下 ...

  7. ABAP QUERY报表添加双击事件

    问题:一个query报表程序,客户想要每一条能编辑并打印. 解决:直接给query添加双击事件,调用新report. 1.创建report,用paramater定义要从query结果中传过来的数据. ...

  8. 使用 IntraWeb (38) - TIWAppForm、TIWForm、TIWBaseHTMLForm、TIWBaseForm

    窗体 TIWAppForm 所在单元及继承链: IWAppForm.TIWAppForm 主要成员: property OnURLRequest: TOnURLRequest //响应下面的 DoUR ...

  9. ns3模拟无线Ad hoc 网络通信

    Ad hoc网络 Ad hoc网是一种多跳的.无中心的.自组织无线网络,又称为多跳网(Multi-hop Network).无基础设施网(Infrastructureless Network)或自组织 ...

  10. update select

    update中加入select 最常用的update语法是:UPDATE <table_name>SET <column_name1> = <value>, SET ...