Elasticsearch自定义脚本完成性能测试

来源:互联网 发布:网络东北大秧歌曲大全 编辑:程序博客网 时间:2024/06/05 17:44

1、ES性能测试

要求:
1)完成ES并发100次性能测试;
2)统计得出访问时间结果值。

2、脚本实现

#!/bin/shKEYWORDS_TXT="./keywords.txt"cat /dev/null > ./rst.txtecho "beginTime=`date`"cat $KEYWORDS_TXT | while read linedoecho "line=$line"echo "curl -XGET http://100.10.11.130:9200/shx_info_index/shx_info_type/_search -d'{  \"query\" : {  \"query_string\" : {  \"default_field\" : \"company_name\",  \"query\" : \"$line\"  }  }}' >> ./rst.txt 2>&1 & " >> ./sql.txticnt=$((icnt+1));echo "icnt ="$icnt;done;

解读:
1)以上脚本实现了对所以的字段的查询操作;
2)每次的操作都是读配置的;
3)未避免读配置的时间,可将整个post请求操作先存储到另一个脚本,再一起执行。

2、技术核心点小结

核心点一:

&的目的:实现并发测试,否则就是串行执行任务。
结果导出再执行即可。

核心点二:

时间差计算如下:
1)开始时间:

current=`date "+%Y-%m-%d %H:%M:%S"`timeStamp=`date -d "$current" +%s`beginTimeStamp=$((timeStamp*1000+`date "+%N"`/1000000)) #将current转换为时间戳,精确到毫秒#echo "beginTime=$currentTimeStamp"echo "beginTime=`date`"

2)结束时间及时间差(历时时间):

waitcurrent=`date "+%Y-%m-%d %H:%M:%S"`timeStamp=`date -d "$current" +%s`endTimeStamp=$((timeStamp*1000+`date "+%N"`/1000000)) #将current转换为时间戳,精确到毫秒#echo "endTime=$currentTimeStamp"echo "endTime=`date`"timeSpan=`expr $endTimeStamp - $beginTimeStamp` #时间戳求差值。echo "100次并发测试总耗时=$timeSpan 毫秒"

核心点三:

wait [作业指示或进程号]

1.等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出状态状态。如果没有制定参数,则等待所有子进程的退出,其退出状态为0.

2.如果是shell中等待使用wait,则不会等待调用函数中子任务。在函数中使用wait,则只等待函数中启动的后台子任务。

3.在shell中使用wait命令,相当于高级语言里的多线程同步。

2017年5月15日 23:48 于家中床前

作者:铭毅天下
转载请标明出处,原文地址:
http://blog.csdn.net/laoyang360/article/details/72231924
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!