01. DADOS GERAIS
Produto: | Solucoes_totvs |
---|
Solucao | TOTVS Logística Recintos Aduaneiros |
---|
|
Solucoes_totvs_parceirosexptotvs |
---|
|
|
---|
Linha de Produto: | Linhas_totvs |
---|
Segmento | Distribuição |
---|
Region | Construção Projetos |
---|
Linha | Linha Logix |
---|
|
|
---|
Segmento: | |
---|
Módulo: | Teste de Estresse - Recintos Aduaneiros |
---|
Função: | Teste de Estresse - Recintos Aduaneiros |
---|
Ticket: |
|
---|
Requisito/Story/Issue (informe o requisito relacionado) : | - DLOGPORTOS-16646
- DLOGPORTOS-16647
|
---|
02. SITUAÇÃO/REQUISITO
Para assegurar a estabilidade e escalabilidade dos serviços desenvolvidos utilizando APIs RESTful, foi desenvolvida uma aplicação de testes que permite realizar requisições em massa às APIs, permitindo avaliar seu comportamento, estabilidade e escalabilidade. Por efetuar requisições paralelas (multithread), a aplicação efetua requisições simultaneamente no mesmo endpoint, "bombardeando" a API.
A conexão, feita através de requisições HTTP, envia ao endpoint testado uma requisição a ser processada. Ao processá-la, a API envia sua resposta, a qual não é considerada para o sucesso do teste - qualquer retorno diferente da classe 500 é considerado um sucesso. Caso o servidor apresente erros da classe 500 ou não efetive uma resposta dentro de um tempo hábil, o teste é considerado falho, apontando instabilidade no endpoint testado.
03. SOLUÇÃO
A solução, uma aplicação no modelo desktop para o sistema operacional Microsoft Windows de 64 bits, opera de forma autônoma, sem nenhuma dependência, facilitando sua utilização. Por estar em estado de MVP (Minimun Valuable Product), nem todas as funcionalidades projetadas estão disponíveis. Até o momento, é possível testar endpoints GET e POST, sendo estes últimos com corpo em formato JSON, podendo adicionar cabeçalhos à requisição em ambos os protocolosmétodos.
Totvs custom tabs box |
---|
tabs | Requisição GET,Requisição POST,Resultado,Log,Estatísticas |
---|
ids | requisicaoget,requisicaopost,resultado,log,estatisticas |
---|
|
Totvs custom tabs box items |
---|
default | yes |
---|
referencia | requisicaoget |
---|
| Totvs custom tabs box |
---|
tabs | Formatando a requisição,Adicionando cabeçalhos,Executando o teste |
---|
ids | principal,addheader,executar |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | principal |
---|
| Para executar um teste de estresse em um endpoint GET é necessário configurar, conforme a imagem abaixo: - A URL completa para o endpoint, incluindo parâmetros URL ou por Query String;
- Os parâmetros de execução, sendo:
- Threads: o número de requisições simultâneas a serem executadas, entre 1 e 5.000;
- Repetições: o número de vezes em que cada requisição é executada, entre 1 e 5.000;
- Intervalo: o intervalo, em milissegundos, entre as requisições cíclicas, quando Repetições for maior do que 1, entre 50 e 500 e;
- Os cabeçalhos, quando aplicáveis.
A URL deve conter toda a rota exposta pelo endpoint, uma vez que, se ela não estiver completa, o endpoint pode são não ser encontrado, fazendo com que o teste acuse uma falha. |
|
|
|
04. DEMAIS INFORMAÇÕES
Para uma perfeita integração com o sistema TOTVS Recintos Aduaneiros, este deve estar em sua versão 12.1.2301 ou superior, uma vez que esta versão está preparada para a integração com o sistema de integração com balanças rodoviárias TCP/IP. Em versões anteriores a esta, a tentativa de integração ocasionará falhas no processo de integração que podem paralisar o serviço de integração e, na pior das hipóteses, paralisar o servidor onde ele esteja abrigado.
...
Sendo assim, caso ela possua parâmetros de URI - https://viacep.com.br/ws/{cep}/{formato}, por exemplo -, estes devem ser adicionados, assim como quando o endpoint possuir parâmetros do tipo Query String. |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | addheader |
---|
| Ao clicar no botão para adicionar um cabeçalho, é possível adicionar os cabeçalhos exigidos pelo endpoint, como Authorization, por exemplo. Cabeçalhos são enviados nos testes para validação de seu tratamento, uma vez que não enviá-los não implicaria em uma falha de processamento no teste. Contudo, não enviar cabeçalhos para um endpoint que espera recebê-los pode indicar, na API, uma falha de tratamento da sua ausência, o que ajuda a resolver problemas relacionados à segurança no endpoint. Para incluí-los, basta preencher os campos conforme a imagem abaixo, sendo: - Cabeçalho: o nome do cabeçalho. Ex.: Authorization;
- Valor: o valor relativo ao cabeçalho. Ex.: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJSZWNpbnRvcyBBZHVhbmVpcm9zIiwiaXNzIjoiU0FSQSIsInN1YiI6IlNBUkFMb2dpbiIsImV4cCI6MTUxNjIzOTAyMn0.w8ze3iCo537hWi-VN40mMEsVYuOOwXyQ2tByYp_3d34 e;
- Ativo: flag que indica se o cabeçalho está ativo durante a requisição.
Image Added Após adicionado ao teste, o cabeçalho pode ser desativado, editado ou excluído, a qualquer momento, através das ferramentas disponíveis na barra lateral direita painel de cabeçalhos. Image Added |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | executar |
---|
| Para executar o teste, basta clicar no botão Iniciar e selecionar a opção Iniciar (F9) ou usar sua tecla de atalho F9, conforme imagem abaixo. Image Added |
|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | requisicaopost |
---|
| Assim como o procedimento para realizar o teste com endpoints GET, a aplicação permite que também seja feito o teste com endpoints POST. Para tanto, nas configurações do endpoint, basta selecionar a opção POST na caixa de seleção do método a ser executado. Isso habilitará a opção para inclusão do corpo da requisição, no formato JSON, conforme imagens abaixo. Image Added Image Added Após determinados os parâmetros de protocolo, rota e corpo, assim como numa requisição GET, basta selecionar a opção para iniciar o teste e aguardar os resultados. |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | resultado |
---|
| Após a execução de um teste, a aplicação mostrará os resultados obtidos. Em uma lista, ela exibira o Handle (identificador da thread executada), seu menor, médio e maior tempo, em milissegundos, além da taxa de sucesso e erro e o tempo total do teste, conforme imagem abaixo. Image Added |
Totvs custom tabs box items |
---|
| Após a execução do teste e a apresentação do resultado, a aplicação disponibilizará um log com as ocorrências de erros durante os testes, conforme imagem abaixo. Image Added |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | estatisticas |
---|
| Assim como a aplicação exibe seus resultados e o log de erros durante a execução dos testes, ela também exibe as estatísticas de ocorrências, separadas por sucessos e por cada ocorrência de erro, conforme imagem abaixo. Image Added |
|
04. DEMAIS INFORMAÇÕES
- Norma RFC 7231 - Protocolo HTTP/1.1: Semântica e Conteúdo
- Norma RFC 9205 - Construção de protocolos HTTP