我正在做放心的自动API测试。后端具有REST调用,但所有内容均以弹性搜索存储。到目前为止,只有POST和GET方法被实现,我不能使用DELETE作为方法。我知道有一种方法可以通过Chrome扩展Sense删除弹性搜索库,但我正在寻找一种方法来在自动化API测试中删除弹性搜索库,以便使测试独立。例如在@BeforeTest中加载带有数据的弹性搜索库,然后在@After中执行@Test我想删除基础并将其返回到它的默认空状态,以便从空白处运行下一个测试基础。任何帮助,将不胜感激。删除自动化API测试中的弹性搜索库?
回答
您可以检查soupmix/elasticsearch client自动化测试用例。我们使用php来创建客户端,并在测试设置中创建索引并将数据填充到此索引。
protected function setUp()
{
$config =[
'db_name' => 'test',
'hosts' => ['127.0.0.1:9200'],
];
$client = ClientBuilder::create()->setHosts($config['hosts'])->build();
$this->client = new ElasticSearch($config, $client);
}
对于Java,您可以在@BeforeTest部分使用下面的代码块:
RestClient restClient = RestClient.builder(
new HttpHost("localhost", 9200, "http"
).build();
在那之后,我们运行一些测试情况下,你可以GitHub的页面上看到的。你可以在你的java代码中做到这一点。在测试结束后,我们再次放弃索引。
protected function tearDown()
{
$this->client->drop('test');
}
对于Java,你需要做这个步骤,下面的代码片段在@After部分:
Response deleteIndex = restClient.performRequest(
"DELETE",
"/test",
Collections.<String, String>emptyMap());
restClient.close();
Java一样例如,降法,是在我们的PHP例如,使用直接HTTP DELETE方法。
public function drop($collection)
{
$params = ['index' => $this->index];
try {
$this->conn->indices()->delete($params);
} catch (\Exception $e) {
// This ignore the error
return false;
}
return true;
}
我们使用一个索引,特别是对于所有的测试用例,能够在测试结束时轻松删除所有数据。
我正在使用JAVA和Rest Assured,我可以直接访问弹性搜索,并使用Chrone Sense的扩展名中的此命令来删除:DELETE/xxxxxx/xxxxx_query { “query”:{ “match_all”:{} } }我的问题是有什么办法可以在自动化测试中实现这个查询。谢谢 – Gudzo
是的。您正在使用delete_by_query API端点,并且您可以使用elasticsearch Java Rest Client轻松构建此查询https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/_example_requests.html#_example_requests我可以创建一个例子如果你想。在你的测试案例中,你需要一个RestClient实例的工厂,并轻松地用这个客户端来执行你的请求。在测试结束时,您还可以使用删除请求删除索引。 – hkulekci
我添加了一些与php相关的java示例命令。 – hkulekci
- 1. 删除弹性搜索动态模板
- 2. 搜索API弹性搜索索引
- 3. 弹性搜索自动翻转索引
- 4. 弹性搜索发布API
- 5. 自动化性能测试
- 6. 从数组中删除对象的JavaScript API满足弹性搜索条件
- 7. 如何在使用curl的弹性搜索中删除arraylist值?
- 8. 弹性搜索自动完成与辅助搜索顺序
- 9. 在弹性搜索中滤除分支
- 10. 春季启动+弹性数据弹性搜索+弹性搜索5.6.0
- 11. 如何定期删除弹性搜索索引?
- 12. 在弹性搜索中删除/添加嵌套对象
- 13. 在弹性搜索中删除不起作用
- 14. 自动化测试铬蓝牙api
- 15. 3个字母后的弹性搜索中的自动建议
- 16. Swift 3:按下外部搜索条,搜索被自动删除
- 17. Scala库的自动性能测试
- 18. Pyes弹性搜索刷新API问题
- 19. 弹性搜索5和弹簧数据弹性搜索
- 20. 测试自动化
- 21. 弹性搜索嵌入脚本优化
- 22. 上弹性搜索
- 23. 弹性搜索 - Laravel
- 24. 连接弹性搜索与删除mysql服务器
- 25. 弹性搜索删除记录需要多长时间?
- 26. 数据库设计和弹性搜索
- 27. 如何在弹性搜索中查询自动完成
- 28. 弹性搜索嵌套性
- 29. GUI的自动化测试
- 30. Windev的自动化测试
当你说弹性搜索基地,你的意思是一个指数? – paqash
@paqash我的意思是在清除所有弹性搜索基础。 – Gudzo
是的,我不知道什么是弹性搜索基础。 Elasticsearch将数据存储在索引中。 – paqash