我正在做放心的自動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. 彈性搜索中的自動完成
- 3. 彈性搜索刪除操作
- 4. 搜索API彈性搜索索引
- 5. 從彈性搜索中刪除或刪除舊數據
- 6. 彈性搜索自動翻轉索引
- 7. 彈性搜索發佈API
- 8. 自動化性能測試
- 9. 自動創建羣集彈性搜索
- 10. 從數組中刪除對象的JavaScript API滿足彈性搜索條件
- 11. 彈性搜索我可以刪除所有數據的索引
- 12. 創建索引 - 彈性搜索 - Java API
- 13. 彈性搜索中刪除陳舊文檔的最佳做法
- 14. 如何在使用curl的彈性搜索中刪除arraylist值?
- 15. 從彈性搜索中刪除特定的日誌
- 16. 在彈性搜索中從陣列中刪除條目
- 17. 彈性搜索自動完成與輔助搜索順序
- 18. 在彈性搜索中濾除分支
- 19. 春季啓動+彈性數據彈性搜索+彈性搜索5.6.0
- 20. 用於彈性搜索的C++ api
- 21. 如何定期刪除彈性搜索索引?
- 22. 在彈性搜索中刪除/添加嵌套對象
- 23. 在彈性搜索中刪除不起作用
- 24. 自動化測試鉻藍牙api
- 25. 3個字母后的彈性搜索中的自動建議
- 26. Scala庫的自動性能測試
- 27. 刪除未分配的彈性搜索分片
- 28. 使用Java Api訪問彈性搜索
- 29. Pyes彈性搜索刷新API問題
- 30. 自動API穩定性測試
當你說彈性搜索基地,你的意思是一個指數? – paqash
@paqash我的意思是在清除所有彈性搜索基礎。 – Gudzo
是的,我不知道什麼是彈性搜索基礎。 Elasticsearch將數據存儲在索引中。 – paqash