Treinamentos
o que significa treinar a minha assistente virtual? é o ato de colocar sua assistente para entender como serão as interações com o usuário considerando os diálogos construídos sempre que forem adicionadas novas interações é preciso treinar novamente sua assistente para que ela consiga reagir da maneira esperada em uma conversa o único pré requisito para agendar um treinamento da sua assistente virtual é haver ao menos um diálogo construído antes de começar tenha certeza que todas as configurações de parametrização e infraestrutura foram realizadas corretamente procedimento agendar treinamento após acessar a plataforma, acesse o menu treinamentos; clique o botão agendar; defina qual será o escopo da atualização que deseja, sendo as opções diálogos, completo, habilidades (texto – botão – imagem) ou habilidades personalizadas; informe o dia e horário em que o treinamento deverá ser realizado observação lembre se de escolher datas e horários que irão ter menos impactos nos atendimentos em andamento, caso haja !!! note "informação" o tempo de duração de cada treinamento vai variar de acordo com o volume de fluxos de conversação construídos, mas não se preocupe, assim que for concluído sua assistente está automaticamente pronta para atuar, seja no teste de conversa dentro da plataforma ou no ambiente de produção solução de problemas após iniciado um treinamento, o aplicativo não disponibiliza opção ao usuário para finalizar o processo, mas às vezes pode ser necessário as instruções a seguir conduzem na realização desta tarefa, que consiste em limpar a fila de tarefa e finalizar a máquina adquirida para este fim 1\ acesse o serviço simple queue service no painel de serviços da aws 2\ localize a fila denominada citsmart anuvaassistant training \<ambiente> e selecione a por exemplo, o nome para o ambiente "homologation" na fila seria citsmart anuvaassistant training homologation 3\ clique em actions e selecione "purge" 4\ escreva o termo solicitado e clique no botão "purge" 5\ após este procedimento, a fila deverá estar limpa para finalizar a instância adquirida, siga as instruções a seguir 1\ acessar o serviço ec2, no painel de serviços da aws 2\ clicar no link para instâncias (rodando) 3\ pesquisar por uma instância que possua o termo “spot” 4\ selecionar a instância desejada 5\ clicar em actions e solicitar para parar a instância, confirmando a escolha no botão "stop" 6\ clicar em actions e solicitar para finalizar a instância, confirmando a escolha no botão "terminate" 7\ após esse procedimento, uma mensagem deverá aparecer indicando a instância removida ao tentar iniciar um treinamento agendado, pode ocorrer um erro e o treinamento não inciar uma das causas desta ocorrência está relacionado ao schedule do python que sofre uma quebra, deixando de colocar o treinamento na fila 1\ para confirmar se o erro está relacionado ao schedule do python, observe a fila do aws, no simple queue service, denominada "citsmart anuvaassistant training homologation" 2\ em situações normais, a fila em questão deveria mostrar suas mensagens zeradas 3\ caso haja erro, a fila apresentará 1 job agendado na coluna de mensagens 4\ nesse caso, é necessário parar e reiniciar a instância ec2 "anuvamultitenancyapihom app" 5\ após reiniciar a instância, remova o treinamento que estava agendado e realize novo agendamento este problema ocorre quando a instância anuvamultitenancyapihom app tem o seu ip alterado, por motivo qualquer, e este passa a não constar na regras de autorização de acesso do serviço elasticsearch neste caso, uma mensagem indicando a falha na apresentação dos rankings aparece em diversos pontos da aplicação para resolver o problema, o ip da instância anuvamultitenancyapihom app deve ser acrescentado na lista de autorizados, nas políticas de acesso ao serviço elasticsearch para isto, é necessário obter o ip atual da ec2 anuvamultitenancyapihom app, acessar o painel do serviço elasticsearch e incluir o ip na lista de autorizados para obter o ip, siga o procedimento a seguir 1\ acesse o painel administrativo de instâncias ec2 2\ filtre as instâncias que estão rodando/ativas 3\ selecione a instância em questão e copie o número do seu ip para acessar o painel do elasticsearch e incluir o ip na lista 1\ selecione o menu analytics > elasticsearch service 2\ no dashboard, clique em my domains e selecione o serviço relacionado 3\ após selecionar o serviço, clique no botão actions > modify access policy 4\ nesta página, inclua o número do ip copiado na relação de autorizados e clique no botão submit para aplicar a alteração testes automatizados os testes de softwares estão inseridos no gerenciamento de ciclo de vida de aplicativos (mais conhecido como alm) é uma etapa primordial para garantir a qualidade do produto entregue para o cliente, ou mesmo para ser utilizado pela própria equipe de desenvolvimento para assegurar se de sua assertividade nós automatizamos para evitar trabalho manual repetido, obter um feedback mais rápido, economizar tempo executando testes repetidamente, e assegurar que estamos sempre executando testes de forma consistente com as mesmas precondições e expectativas de modo geral, os motivos para a abordagem da existência dos testes são verificar se o programa está dentro das expectativas do cliente; verificar quaisquer bugs antes dos seus clientes verem; detectar problemas no design; ter certeza de que o sistema é estável; garantir que o trabalho desenvolvido pela equipe é de qualidade; para a automatização de testes do projeto em questão, está sendo utilizado a ferramenta cypress um dos principais diferenciais do cypress é que enquanto a maioria das ferramentas de testes operam fora do navegador, executando comandos remotos na rede, o cypress é exatamente o oposto, ele é executado no mesmo loop de execução do aplicativo que está sendo testado isso permite uma interatividade muito grande os procedimentos a seguir apresentam instruções sobre a instalação e configurações básicas para iniciar e interagir com este projeto de testes, assim como documentar os critérios e padrões adotados para a boa prática na sua condução e implementações seguintes testa os requisitos funcionais da aplicação resumidamente verificar se a aplicação está apta a realizar as funções para a qual foi desenvolvida para fazer, podendo abranger as funcionalidades em todo o seu escopo, tanto backend quanto frontend preliminarmente, você já deve possuir o node js instalado e, a nível de sugestão a ide vscode tendo estes pré requisitos, siga o procedimento a seguir se necessário, instruções completas podem ser obtidas junto à documentação oficial !!! note "nota" se desejar instalar uma versão específica, como 4 6 2 por exemplo, faça da seguinte forma \<i>$ npm install cypress\@4 6 2\</i> como sugerido anteriormente, estaremos utilizando o vscode como ide para o desenvolvimento de nossos testes, portanto o mesmo já deve estar previamente instalado vamos acrescentar ao arquivo package json o comando que utilizamos para executar o projeto isto irá agilizar o procedimento edite o arquivo package json, e no tópico script, acrescente o comando, conforme exemplo tendo sido incluído o comando, conforme instrução anterior, o projeto pode ser executado via linha de comando ou através do vscode, pelo caminho outline > npm scripts > package json > cypress\ open > botão "play" a seguinte estrutura de arquivos é proposta para se manter um padrão organizacional do projeto porém, não existem restrições técnicas para outras abordagens, sendo as boas práticas a seguir mera convenção para o projeto em questão o uso de fixtures é uma boa prática para agilizar o desenvolvimento e manutenção do projeto, pois agrega em única área os dados variáveis utilizados pelo projeto por questão organizacional, deve se ter um arquivo fixture para cada arquivo de teste devem ser evitados blocos muito extensos quando o volume for grande, é sugerido a sua divisão em tópicos os commands não devem lidar com os dados diretamente os dados devem ser manipulados nas intents estes arquivos devem se restringir à lógica dos testes e manipulação dos dados, deixando a cargo dos commands a execução dos procedimentos com as devidas interações com telas e api ‘ s por questão organizacional, deve se ter um arquivo command para cada arquivo de teste os arquivos de testes não devem lidar com os componentes de tela diretamente, ficando isto a cargo dos arquivos em commands assim sendo, não devem importar arquivos locators os arquivos de testes importam os arquivos fixtures, para a manipulação de dados e passagem destes para os commands commands estes arquivos são utilizados pelos testes, localizados no diretório integration devem conter os códigos dos comandos utilizados pelos testes além dos arquivos commands individuais para cada arquivo de testes, temos também um de uso global algumas boas práticas são llocators diretório destinado a conter os arquivos que registram os endereços de acesso aos widgets de tela, urls e demais endereços como determinado nas boas práticas deste projeto, os arquivos locators devem ser importados e utilizados pelos commands além dos arquivos locators individuais para cada arquivo de testes, temos também um de uso global algumas boas práticas são foi adotado o seguinte padrão para a criação e denominação de arquivos exemplos \ arquivos do fixtures datascontext js / datastheme js \ arquivos de commands commandscontext js / commandslogin js \ arquivos de locators locatorslogin js / locatorstheme js !!! note "nota" observar que o plural deve ser utilizado apenas no conteúdo, pois o conteúdo habitualmente se refere a mais de um item observe também que a identificação do módulo se inicia com letra maiúscula nesta esta estrutura, temos uma exceção quanto aos arquivos de testes propriamente ditos, que estão contidos no diretório integration estes arquivos devem seguir o seguinte padrão exemplos \ context spec js \ login spec js \ theme spec js