English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O Elasticsearch fornece um arquivo jar, que pode ser adicionado a qualquer IDE Java e usado para testar código relacionado ao Elasticsearch. Você pode executar uma série de testes usando o framework fornecido pelo Elasticsearch. Neste capítulo, discutiremos esses testes em detalhes.-
Testes unitários
Testes integrados
teste aleatório
Para começar o teste, você precisa adicionar dependências de teste do Elasticsearch ao seu programa. Você pode usar Maven para esse propósito e pode adicionar o seguinte conteúdo ao seu pom.xml.
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>2.1.0</version> </dependency>
EsSetup foi inicializado para iniciar e parar nós do Elasticsearch e criar índices.
EsSetup esSetup = new EsSetup();
A função com createIndex no esSetup.execute() criará o índice, você precisa especificar as configurações, o tipo e os dados.
Testes unitários são realizados usando JUnit e o framework de teste do Elasticsearch. Pode-se usar classes do Elasticsearch para criar nós e índices e executar testes usando o método test. As classes ESTestCase e ESTokenStreamTestCase são usadas para este teste.
Testes integrados usam vários nós no cluster. A classe ESIntegTestCase é usada para este teste. Existem várias maneiras de simplificar o trabalho de preparação dos casos de teste.
número sequencial | métodos e descrições |
---|---|
1 | refresh() Atualizar todos os índices no cluster |
2 | ensureGreen() Certificar o estado de cluster de saúde verde |
3 | ensureYellow() Certificar o estado de cluster de status amarelo |
4 | createIndex(name) Criar índice usando o nome passado para este método |
5 | flush() Atualizar todos os índices no cluster |
6 | flushAndRefresh() flush() e refresh() |
7 | indexExists(name) Verificar se o índice especificado existe |
8 | clusterService() Retornar classe de serviço de cluster java |
9 | cluster() Retornar classe de teste de cluster |
número sequencial | métodos e descrições |
---|---|
1 | ensureAtLeastNumNodes(n) Certificar que o número mínimo máximo de nós no cluster seja maior ou igual ao número especificado |
2 | ensureAtMostNumNodes(n) Certificar que o número máximo de nós no cluster seja menor ou igual ao número especificado |
3 | stopRandomNode() Parar nó aleatório no cluster |
4 | stopCurrentMasterNode() Parar nó principal |
5 | stopRandomNonMaster() parar um nó não mestre aleatório no cluster |
6 | buildNode() criar um novo nó |
7 | startNode(settings) iniciar um novo nó |
8 | nodeSettings() sobrescreva este método para alterar as configurações do nó |
O cliente é usado para acessar diferentes nós no cluster e executar algumas operações. O método ESIntegTestCase.client() é usado para obter o cliente aleatório. O Elasticsearch também fornece outros métodos para acessar o cliente, que podem ser usados pelo método ESIntegTestCase.internalCluster().
número sequencial | métodos e descrições |
---|---|
1 | iterator() Isso ajuda você a acessar todos os clientes disponíveis |
2 | masterClient() Isso retornará um cliente que se comunica com o nó mestre |
3 | nonMasterClient() Isso retornará um cliente que não se comunica com o nó mestre |
4 | clientNodeClient() Isso retornará o cliente atual no nó do cliente |
Este teste é usado para testar o código do usuário com todos os possíveis dados, para que não haja falha de tipo de dados em futuro. Os dados aleatórios são a melhor escolha para executar este teste.
Neste teste, a classe Random é instanciada pelo RandomizedTest e fornece muitos métodos para obter diferentes tipos de dados.
método | valor de retorno |
---|---|
getRandom() | instância de classe aleatória |
randomBoolean() | booleano aleatório |
randomByte() | byte aleatório |
randomShort() | short aleatório |
randomInt() | inteiro aleatório |
randomLong() | long aleatório |
randomFloat() | float aleatório |
randomDouble() | double aleatório |
randomLocale() | região local aleatória |
randomTimeZone() | fuso horário aleatório |
randomFrom() | elemento aleatório do array |
As classes ElasticsearchAssertions e ElasticsearchGeoAssertions contêm afirmações, essas afirmações são usadas para executar algumas verificações comuns durante o teste. Por exemplo, observe o código fornecido aqui-
SearchResponse seearchResponse = client().prepareSearch(); assertHitCount(searchResponse, 6); assertFirstHit(searchResponse, hasId("6")); assertSearchHits(searchResponse, "1", "2", "3", "4",5",),6");