当前位置: 首页 > 面试题库 >

集成测试elasticsearch,计时问题,找不到文档

周马鲁
2023-03-14
问题内容

我用Java对外观做一些事情的集成测试进行了测试,其中包括对elasticsearch数据库的索引操作。这个弹性的搜索数据库已经非常幼稚地建立了(实际上是开箱即用的东西,我在学习中)。也非常幼稚地在该立面内使用Java
api插入了该示例,该示例几乎完全复制了从elasticsearch中粘贴的示例,如此处所述:http : //www.elasticsearch.org/guide/reference/java-api
/index_.html

之后,我测试外观是否正确完成了其工作,部分工作是检查该文档是否确实插入了数据库中。我还是用弹性在其网站上描述的方式做到这一点:http : //www.elasticsearch.org/guide/reference/java-
api/search.html。我插入具有一定负载的文档,并以相同的方式查找它。

如果我在调试中运行并且在Facade填充完东西后设置断点,则此测试有效,但是如果我不放置此断点或不运行在调试中,则测试失败,没有结果。这使我认为我确实在做错事。而且,应用程序本身可以工作(插入等),因此集成测试可能有问题,而不是复制粘贴的代码有问题。

我猜想在索引操作返回之后,索引还没有真正完成,或者正在进行一些复制,这些复制在搜索之前还没有完成,或者类似的事情,但是它使我难以理解确切的内容,而且我似乎无法解决它。我还没有尝试在一个节点和一个碎片上施加弹性,也许那里出了点问题,但是我并没有真正看到确切的含义,因此我还没有走这条路。就像我说的,刚开始使用松紧带,所以我可能会缺少一些至关重要的初学者风格。我可以根据需要粘贴确切的代码,但是就像我说的那样,归结为在测试中使用了来自elasticsearch站点的两个代码段。

卡斯珀


问题答案:

调用索引操作后,Elasticsearch不会立即使数据可用。默认情况下,它会等待1秒,以获取更多数据。但是,您可以通过调用强制elasticsearch立即提供所有数据refresh

client.admin().indices().refresh(refreshRequest()).actionGet();

在完成外观索引之后,尝试添加此操作,然后检查最终结果。



 类似资料:
  • 我有一个叫做“奇妙”的宝石,里面有一个虚拟的应用程序来测试。运行虚拟应用程序时,一切正常。 但是,当我运行测试时,单元测试工作正常,但是集成测试(Capybara Poltergeist)失败,并显示以下消息: 链轮::FileNot找到:找不到类型为应用程序/javascript的文件jQuery。 签入以下路径: /幻想/spec/dummy/app/assets/images、/fantas

  • 我正在使用一个带有spring boot 2.0.0.rc1的多项目分级器。我的子项目之一是SpringBoot应用程序,其中包含了我的集成测试。 集成测试用WebEnvironment.random_port标记为@springboottest。由于未解析的依赖关系(在另一个子项目中声明的服务,的同级),测试失败,使用了gradle命令行,但在Eclipse IDE中成功。 如果有人有主意?如何

  • 有时它们会通过。 下面是演示这个问题的设置、代码和输出。 克服这个问题的建议将非常感谢,我相信这将帮助许多其他人,所以请评论! Rails 3.2 RSpec 2。x 水豚 恶鬼 幻影 AngularJS 谷歌浏览器47.0.2526.106版(64位) > 确保我使用水豚的等待DSL匹配器 确保正确设置了“我的数据库清理器” 测试每个页面项目,假设它可能不在页面上并且仍在加载 缩小不一致测试的范

  • 我将我的IntelliJ版本从2017.3升级到2018.1,现在我不能再从IDE运行集成测试了。 该项目是一个使用Gradle的Spring Boot应用程序和构建。集成测试基本上如下所示: 仍然可以使用gradle运行测试,但我不能运行与IDE隔离的测试。 我得到这个错误,因为实例不能再自动连线了: 我在2017.1版上工作得很好。我想我必须改变IDEs配置中的一些东西,但我不知道是什么。

  • 我有一个用selenium进行单元测试和集成测试的项目。 当我用IntelliJ执行cucumber集成测试时,它工作得很好,您可以看到: 用Intellij执行cucumber集成测试 但是,当我执行mvn集成测试时,似乎没有发现任何联调: 故障保护输出 我定义了以下POM: > 文件夹结构是文件夹结构 mvn集成-测试输出https://drive . Google . com/file/d/

  • 首先,让我说一下,我自己做了很多研究,试图解决这个问题。我在SO上浏览了一堆答案,并尝试了很多,但遗憾的是,没有成功。 我目前的堆栈是Eclipse(火星)与Maven和Selenium。尝试运行自动测试时,我得到以下结果: [信息]扫描项目...[INFO][INFO]-[Building automation 0 . 0 . 1-SNAPSHOT[INFO]-[WARNING]org . Te