我正在做放心的自動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