目录
前言:
研究背景
工具
支持功能
支持功能
使用方法
总结
前言:
做大数据/数据库测试时,通常需要编写复杂的测试用例代码或手动操作来测试系统的正确性和稳定性。但是,有些小工具可以轻松解决这个问题,提高测试效率,
研究背景
对于大数据测试和数据库测试,经常会同MySQL、ES等数据库“打交道”。对于测试人员来说,MySQLMySQL语法简单易懂、上手方便,但是ES语法相比之下第一眼就会让人觉得“抓脑壳”(那么多字,键盘都得敲坏)。
那有没有什么工具,安装方便、使用简单、具有一定可视化效果,且能够直接使用MySQL语法查询的呢?那当然有了,安排!
这里给大家介绍两款操作ES的chrome插件工具:elasticsearch-head和elasticsearch-sql。可以满足大部分测试人员的测试工作需求,且安装方便、使用简单。
工具
elasticsearch-head
elasticsearch-head的最大优点在于可视化操作,操作简单,结果一目了然。
安装方式(推荐chrome插件方式)
1)通过chrome应用商店一键安装Elasticsearch-head插件(中文官网地址:https://chrome.google.com/webstore?hl=zh-CN,英文官网地址:https://chrome.google.com/)。
2)当存在无法访问chrome应用商店的时候,我们可以选择下载插件包的,植入chrome拓展程序文件的形式。
首先,从https://github.com/mobz/elasticsearch-head下载zip包(如下图所示);
其次,解压下载的压缩包;
最后,打开chrome更多工具—>扩展程序—>加载已解压的扩展程序即可。
支持功能
1)ES集群概览
如下图3所示,支持集群按照“地址排序”、“名称排序”、“类型排序”,支持索引升、降排序,支持索引搜索等。
此外还可点击索引的信息查看索引状态、索引信息,以及关闭、删除、刷新索引等操作。
2)索引
如下图所示,支持索引概览、新建索引。
3)数据预览
如下图所示,支持数据预览,点击索引名即可预览该索引数据。
4)基本查询
如下图所示,支持单个索引的单字段值或多字段值联合查询,支持算子term、range、fuzzy、query_string、missing,返回格式支持json、csv以及table。
5)复合查询
如下图所示,支持POST、GET、PUT、HEAD等REST请求,结果显示支持原始json、图形视图和表格视图。
elasticsearch-sql
elasticsearch-sql的优点在于可以将MySQL的基本语法转换成ES语法直接查询,降低了ES语法的学习成本。
安装方式(推荐chrome插件方式)
同elasticsearch-head一样,可以通过源码地址下载(https://github.com/shi-yuan/elasticsearch-sql-site-chrome)插件压缩包,解压后,导入浏览器扩展程序即可。
支持功能
1)基本SQL操作
2)地理位置查询
3)拓展ES查询功能
4)有限的join查询支持
ES不支持join查询,但elasticsearch-sql提供了部分join操作,包括JOIN和LEFT_JOIN。但值得注意的是:
只有支持2 个表(索引/类型)加入join;
在“ON”上,您能使用“AND”连接;
您必须为表使用别名(acounts a )。
在 Where 上,不要组合两个表的决策树。
例如,这将起作用:WHERE (a.key1>3 OR a.key1<0) AND (b.key2 > 4 OR b.key2<-1),但我们不支持:WHERE (a.key1>3 OR b.key2<0) AND (a.key1 > 4 OR b.key2<-1)。
5)show功能
show可以展示集群和索引的细节,例如:show *可以显示所有索引,show index可以展示索引的类型等信息。
使用方法
点击chrome扩展程序elasticsearch-sql打开ui页面,在文本框输入SQL语句即可。如:
1)直接SQL语法查询
使用show语法展示索引细节:
使用join查询:
2)翻译SQL语法为ES语法
在文本框输入SQL语句,点击“Explain”即可翻译为ES语句,Results会显示翻译结果,例如:
3)其他功能
elasticsearch-sql的界面功能还支持查询结果下载(ExportCSV)、查询结果搜索(Search)以及其他设置(Show Settings)等。
总结
elasticsearch-head和elasticsearch-sql是两款小巧方便的工具,可以作为chrome插件使用,可视化的特点能够满足大部分人对ES的简单操作,此外elasticsearch-sql可以降低测试人员的学习成本,只需要简单的SQL语法即可完成ES数据库操作。
但是,它们自身也存在一定的局限性。例如:elasticsearch-sql针对复杂的SQL语句,尤其是嵌套语句或包含子查询的语句,就显得捉襟见肘。