私は安心して自動化された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. エラスティック検索クエスチョンエスケープ
- 5. 削除メタデータは、検索APIから
- 6. エラスティック検索のマルチテナント
- 7. QueryFilterBuilderエラスティック検索2.4
- 8. エラスティック検索URIでグループを検索する
- 9. エラスティック検索設定がlaravel v5.3で動作していない
- 10. エラスティック検索ハイライトがカスタムアナライザ/トークナイザで動作しない
- 11. エラスティック検索ワイルドカードクエリがテキストクエリで動作しない
- 12. スウィフト3:検索バーの外側を押すと、検索は自動的に削除されます。
- 13. apiテスト用のJavaベースの自動化ツールはありますか?
- 14. YouTube APIの検索自動入力
- 15. エラスティック検索からワイルドカード検索の電子メールアドレス?
- 16. エラスティック検索での問い合わせ
- 17. 検索エンジンで自動的に検索
- 18. 弾性検索5.1.1ログファイルは自動的に削除されません
- 19. エラスティック検索5.0重複除去/最適化
- 20. 「検索」オプションを削除しても「検索列」オプションを残す
- 21. FLEXベースのアプリケーションの自動テスト
- 22. エラスティック検索でダウンしているノードを返す方法
- 23. バイナリ検索ツリーの追加、削除、包含、イテレータが動作しているかどうかをテストしたい
- 24. Lodashでオブジェクトを削除する方法(検索と削除)
- 25. 検索バーの削除テキストがxamarin iosで動作しない
- 26. iOSウェブアプリのキーボードで検索と移動ボタンを削除する
- 27. マゼンタの検索候補を削除しますか?
- 28. footableどのように検索ボックスを削除しますか
- 29. バイナリ検索ツリー(python)から削除しますか?
- 30. Googleマップでの検索ボックスとマーカーの削除API Javascript
あなたが弾力的な検索ベースと言えば、インデックスを意味しますか? – paqash
@paqash私はすべての弾力的な検索ベースを明確にしています。 – Gudzo
ええ、私は弾力性のある検索ベースが何であるか分かりません。 Elasticsearchはインデックスにデータを格納します。 – paqash