私は安心して自動化されたAPIテストを行っています。バックエンドにはREST呼び出しがありますが、すべてが弾性検索に格納されています。これまではPOSTメソッドとGETメソッドしか実装されておらず、メソッドとしてDELETEを使用することはできません。 Chrome拡張機能Senseを使用してエラスティック検索ベースを削除する方法があることはわかっていますが、自動APIテスト内でエラスティック検索ベースを削除してテストを独立させる方法を探しています。例えば、@BeforeTestでは、弾性検索ベースにデータをロードし、その後に@Testを実行し、@Afterでベースを削除してそれをデフォルトの空の状態に戻して空にして最初からテストを実行しますベース。どんな助けもありがとう。自動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部分に次のコードブロックを使用することができます:あなたはgithubのページで見ることができるようにその後
RestClient restClient = RestClient.builder(
new HttpHost("localhost", 9200, "http"
).build();
を、我々はいくつかのテストケースを実行します。これはあなたのJavaコードで行うことができます。テストが終了したら、インデックスをもう一度削除します。
protected function tearDown()
{
$this->client->drop('test');
}
は、Javaの場合は、あなたがあなたの@After部にコードスニペットの下で、この手順を実行する必要があります、
Response deleteIndex = restClient.performRequest(
"DELETE",
"/test",
Collections.<String, String>emptyMap());
restClient.close();
同様にJavaの例を方法を落とし、DELETE HTTPを直接使用して、私たちのPHPの例であります方法。
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を使用して、私が直接弾性検索にアクセスすることができ、私は削除するChroneセンスの拡張で、このコマンドを使用しています:DELETE/XXXXXX/xxxxx_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 onesに関連するいくつかのjava exampleコマンドを追加しました。 – hkulekci
- 1. 自動検索がエラスティック検索で機能しない
- 2. エラスティック検索の削除が機能しない
- 3. エラスティック検索ウォッチャーライセンス
- 4. 削除メタデータは、検索APIから
- 5. エラスティック検索のマルチテナント
- 6. QueryFilterBuilderエラスティック検索2.4
- 7. エラスティック検索URIでグループを検索する
- 8. エラスティック検索ワイルドカードクエリがテキストクエリで動作しない
- 9. YouTube APIの検索自動入力
- 10. apiテスト用のJavaベースの自動化ツールはありますか?
- 11. エラスティック検索からワイルドカード検索の電子メールアドレス?
- 12. 検索エンジンで自動的に検索
- 13. エラスティック検索5.0重複除去/最適化
- 14. 「検索」オプションを削除しても「検索列」オプションを残す
- 15. FLEXベースのアプリケーションの自動テスト
- 16. Googleマップでの検索ボックスとマーカーの削除API Javascript
- 17. iOSウェブアプリのキーボードで検索と移動ボタンを削除する
- 18. エキスパンド検索エラスティック検索で一度に複数のフィールドを更新する
- 19. マゼンタの検索候補を削除しますか?
- 20. バイナリ検索ツリー削除(C++)
- 21. Google検索(ページングの削除)
- 22. テキストファイルの検索と削除
- 23. VBの検索と削除
- 24. 削除/検索とC#
- 25. Elasticsearch - 検索でダブル結果を削除します。
- 26. List.jsは検索でJQueryデータを削除します
- 27. すべてのオブジェクトをエラスティック検索ネストしたオブジェクトにする
- 28. 2Dベクター - 検索で行を削除
- 29. 古いデータを弾性検索から削除または削除する
- 30. jqueryを使用して動的ベースで合計を検索
あなたが弾力的な検索ベースと言えば、インデックスを意味しますか? – paqash
@paqash私はすべての弾力的な検索ベースを明確にしています。 – Gudzo
ええ、私は弾力性のある検索ベースが何であるか分かりません。 Elasticsearchはインデックスにデータを格納します。 – paqash