ES学习笔记之-集成测试的简单学习 原创 sbp810050504 2018-12-23 15:15:16 博主文章分类:搜索引擎 ©著作权 文章标签 es integration test 文章分类 大数据 ©著作权归作者所有:来自51CTO博客作者sbp810050504的原创作品,请联系作者获取转载授权,否则将追究法律责任 集成测试在es源码中的用法比较简单。我选择的切入口是delete-by-query插件。 将es插件的源码导入intellij后,直接运行类DeleteByQueryRestIT, 就会运行所有的集成测试用例。 -ea -Dtests.security.manager=false 这个运行结果,会让我产生两个疑问: 这个类里面没有test注解的方法,其入口在哪里? resource/rest-api-spec目录下,只有一个yaml文件,这些测试用例来自哪里? 通过查看其父类ESRestTestCase,可以看到里面有test注解的test方法,而且设置断点,可以确定该方法是测试的入口。 那么500多个测试用例来自哪里呢? 看ESRestTestCase类@BeforeClass注解的方法 @BeforeClass public static void initExecutionContext() throws IOException, RestException { String[] specPaths = resolvePathsProperty(REST_TESTS_SPEC, DEFAULT_SPEC_PATH); RestSpec restSpec = null; FileSystem fileSystem = getFileSystem(); // don't make a try-with, getFileSystem returns null // ... and you can't close() the default filesystem try { restSpec = RestSpec.parseFrom(fileSystem, DEFAULT_SPEC_PATH, specPaths); } finally { IOUtils.close(fileSystem); } validateSpec(restSpec); restTestExecutiOnContext= new RestTestExecutionContext(restSpec); } 通过了解这个方法的源码,可以了解到在elasticsearch-2.4.5-tests.jar里面,集成了这些测试用例。 这些测试用例的源码就在elasticsearch/rest-api-spec目录下。 那么如何只运行插件中的测试用例而忽略jar包中的测试用例呢? -Dtests.rest.load_packaged=false 直接运行,会发现测试用例运行失败。原来delete-by-query的测试用例有依赖。先编译源码: 编译前修改项目源码的elasticsearch/pom.xml文件, 不能略过集成测试。 <skip.integ.tests>false</skip.integ.tests> 然后编译delete-by-query插件 elasticsearch/plugins/delete-by-query$ mvn install 编译完成后再运行DeleteByQueryRestIT类,即可成功运行插件的测试用例。 -ea -Dtests.security.manager=false -Dtests.rest.load_packaged=false 这里的测试用例会启用一个独立的es集群,用来运行测试用例,运行完成后再shutdown. 其功能由如下的脚本提供: elasticsearch/dev-tools/src/main/resources/integration-tests.xml 参考: http://david.pilato.fr/blog/2016/10/18/elasticsearch-real-integration-tests-updated-for-ga/ 了解了集成测试插件的运行过程后,就可以在开发插件时自行实现集成测试的功能。而且通过yaml+json的方式,能够做到测试用例的复用。 赞 收藏 评论 分享 举报 上一篇:Java基础学习之--理解Object类 下一篇:Lucene学习笔记之-核心数据结构PriorityQueue的实现原理 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 软件测试学习笔记丨App压力测试 一、app压力测试monkey是谷歌提供的一款用于app稳定性和压力测试的命令行工具monkey可以运行在或真机设备中monkey会向系统发送伪随机的用户事件,对app应用进行稳定性和压力测试monkey基本用法连接设备被测包名发送命令:adb shell monkey [参数] [随机事件数]adb shell monkey 100三、monkey常用选项-v:用于指定反馈信息级别,总 压力测试 测试管理 搜索 软件测试 测试开发 软件测试学习笔记丨测试环境搭建 本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30289测试环境搭建被测系统 AUT(Application Under Test)常见的被测系统类型UI:Web App IOTService:RESTful:sprint bootwebservicerpc:dubbo pbcode: SDK lib部署方法打包部署:apk app ipa jar war 自动化构建 持续集成 软件测试 测试环境 环境搭建 软件测试学习笔记丨自动化测试策略 本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30288自动化测试策略用户端测试体系研发单元测试:JUnit、Robolectric 不依赖真机或者模拟器集成测试:Espresso 单应用快速集成测试验收测试:Appium、ATX/AirTest、Calabash 跨应用测试工具体系参考:智能遍历工具:百度 SmartMonkey腾讯 NewMonkey 自动化测试 集成测试 测试框架 软件测试 测试开发 ES学习笔记之-ClusterState的学习 前面研究过ES的getapi的整体思路,作为编写ES插件时的借鉴。当时的重点在与理解整体流程,主要是shardOperation()的方法内部的调用逻辑,就弱化了shards()方法。实际上shards()方法在理解ES的结构层面,作用更大一些。我们还是从getapi入手来理解shards()。先回顾一下getapi的使用流程:添加文档到ES:curl-XPUT'http://localhost: elasticsearch routing table nodes metadata ES学习笔记之---template的使用 es提供template功能的出发点在哪里呢?作为NoSQL数据库,ES在数据入库前是不做schema设定的,也就是不限定数据字段.这对日志类型的数据来说,是个利好的场景.但是这种不设定schema的做法,有时有太过自由.有些业务场景,我们需要预先设定field的分词方式.这时固然可以使用mappings解决.但是业务接入前要通知一下,先建个索引,想想有点不智能.有没有更灵活一点的做法呢?temp elasticsearch template ES学习笔记之--fielddata的起源 ES的官方文档中关于检索和排序的关系说得特别好:Searchneedstoanswerthequestion"Whichdocumentscontainthisterm?",whilesortingandaggregationsneedtoansweradifferentquestion:"Whatisthevalueofthisfieldforthisdocument?".搜索要解决的问题是:& es fielddata doc_value fieldcache elasticsearch 【简单学习机器学习】学习笔记之机器学习 说着学习机器学习,但是一直都没有真正的写一点什么,那么就从今天开始吧。 题为机器学习基础,那么这里是机器学习的一些概念及分类。(大佬请绕行)也是自己学习《Python机器学习算法》的学习笔记。绪论随着时代的发展,大量网络应用出现在生活中,各种智能设备出现使数据的收集变成现实,同时,计算机的计算能力得到了很大的提高,如何从大量数据中提取有价值的信息成了很重要的课题,机器学习就是这样一种... 机器学习 ES学习笔记之---从源码启动ES 开发中需要用到ES的插件,开发ES插件需要了解ES的内部结构,于是再次开始学习ES的源码。一方面了解插件开发的套路,一方面了解get接口的实现细节。了解ES的原理,源码是文档最好的补充。源码甚至比文档更有助于了解ES的内部核心。首先从git上clone下源码:gitclonehttps://github.com/elastic/elasticsearch.gitcdelasticsearchgit elasticsear 源码 es学习笔记 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词 elasticsearch 学习 全文检索 Elastic 搜索 【简单学习机器学习】学习笔记之机器学习 (逻辑回归) 正如上一篇文章所提到,分类算法是典型的监督学习,训练样本中包含样本的特征和标签信息。**逻辑回归(Logistic Regression)**算法是一种广泛使用的分类算法(二分类),通过训练数据中的正负样本,学习样本特征到样本标签之间的假设函数,它是典型的线性分类器。算法的复杂度低、容易实现等特点,在工业界得到广泛应用。#逻辑回归模型逻辑回归模型是广义线性模型的一种,属于线性的分类模型... 机器学习 机器学习 逻辑回归 分类 ES学习笔记之health api的实现 使用healthapi可以查看es集群的健康度。healthapi的用法如下:curl'http://localhost:9200/_cluster/health'healthapi的返回值中有一个核心的字段status,status有3种取值:green,yellow,red。分别代表集群的3种状态:主分片和副本都已经分配,主分片已经分配副本分片没有,制定分片没有分配。也就是说,healthap elasticsearch es health api 软件测试学习笔记丨接口测试集成 本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30375一, 接口测试持续集成的优点减少错误和手动任务及早发现并解决集成挑战更短的交付周期二, 环境准备被测代码(存放于代码仓)Jenkins节点机器以及运行环境三, Jenkins节点挂载及环境配置Java环境allure-commandline工具allure插件四, 本地运行待测代码拉取代码执行命令行运 Jenkins 环境配置 软件测试 持续集成 接口测试 linux学习笔记之apache的简单配置 Linux学习笔记之apache1, apache的安装apache安装包有:httpd-2.。。。rpm httpd-devel。。。rpm & linux apache 学习笔记 休闲 lunux 学习笔记之KVM性能测试 虚拟化性能测试CPU性能测试2.1 SPEC CPU20062.2 Super PI内存性能测试3.1 LMbench3.2网络性能测试4.1 Netperf4.2 Iperf4.3 NETIO磁盘I/O性能测试5.1 DD5.2 IOzone5.3 Bonnie++5.4 hd 测试 性能 KVM 简单的学习笔记 SELECT 语句:SELECT ID FROM STU; UPDATE语句:UPDATE STU SET I 建表 外键 主键 软件测试学习笔记丨ES(Elasticsearch)介绍 本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29857一,Elasticsearch简介二,ES与Mysql的区别由value查询key的过程就是倒排索引三,kibana的使用3.1 kibana介绍kibana是一个分析与可视化平台,用kibana可以更直观地进行搜索、查看存放在Elasticsearch中的数据。3.1 kibana 搭建1、下载ki Elastic 软件测试 测试开发 人工智能 Linux学习笔记之 Grub简单介绍 Grub: GRand Unified Bootloader,一个GNU项目下的多操作系统启动引导程序,主要用于选择磁盘上不同的的操作系统或内核grub 0.x: grub legacy #传统grub(Centos5,CentOS6均使用grub legacy)grub 1.x: grub2 (CentOS7)传统grub可分文3个阶段:grub 1: 存储在MBR中g Grub ES学习笔记之--delete api的实现流程 ES的deleteapi使用非常简单。curl-XDELETE'http://localhost:9200/index/type/doc_id'前面学习了getapi的主要流程,这里探索一下deleteapi的实现原理。优先选择deleteapi而非indexapi,主要是觉得删除貌似更容易,选择deleteapi学习曲线应该比较平缓。ES相关功能Action的命名很统一,比如getapi,对应实 ES elasticsearch delete api delete ES学习笔记之-Translog实现机制的理解 ES作为一个NoSQL,典型的应用场景就是存储数据。即用户可以通过api添加数据到es中。由于Lucene内部的实现,每次添加的数据并不是实时落盘的。而是在内存中维护着索引信息,直到缓冲区满了或者显式的commit,数据才会落盘,形成一个segement,保存在文件中。那么假如由于某种原因,ES的进程突然挂了,那些在内存中的数据就会丢失。而实际上,用户调用api,返回结果确认用户数据已经添加到索引 elasticsearch es translog 【简单学习机器学习】学习笔记之机器学习(k-近邻算法) k-近邻算法k-近邻算法概述简单地说, k-近邻算法采用测量不同特征值之间的距离方法进行分类。优点:精度高、对异常值不敏感、无数据输入假定。 缺点:计算复杂度高、空间复杂度高。 适用数据范围:数值型和标称型工作原理存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的... 机器学习 k-近邻算法