... | ... | @@ -4,7 +4,7 @@ Testes de carga para chatbots implementados com a stack Rasa |
|
|
|
|
|
# Rasa
|
|
|
|
|
|
A versão do rasa utilizada nos testes de carga é a 1.2.2. Essa versão possui como dependência o projeto Senic, que é utilizado para servir os endpoints de integração com frontends diversos como rocketchat e telegram. O Senic é um servidor web asíncrono e utiliza a arquitetura asyncio do python (introduzida no python 3.4) para a implementação dos endpoints. O rasa possui um endpoint específico para integração com os frontends que é a rota /webhooks/rest/webhook. No asyncio cada chamada a um método asíncrono dispara um nova thread no sistema operacional para a execução da chamada. O número de threads que um endpoint do Senic pode criar é definido pela regra: `os.cpu_count() * 5`. Essa regra mudou a partir do python 3.7 (https://bugs.python.org/issue35279).
|
|
|
A versão do rasa utilizada nos testes de carga é a 1.2.2. Essa versão possui como dependência o projeto Senic, que é utilizado para servir os endpoints de integração com frontends diversos como rocketchat e telegram. O Senic é um servidor web asíncrono e utiliza a arquitetura asyncio do python (introduzida no python 3.4) para a implementação dos endpoints. O rasa possui um endpoint específico para integração com os frontends que é a rota **/webhooks/rest/webhook**. No asyncio cada chamada a um método asíncrono cria um nova thread no sistema operacional. O número de threads que um endpoint do Senic pode criar é definido pela regra: `os.cpu_count() * 5`. Essa regra mudou a partir do python 3.7 (https://bugs.python.org/issue35279).
|
|
|
O ambiente de testes possui 6 cpus, então teremos, para cada instância (Pod) do Senic no máximo trinta threads disponíveis. Isso implica que, em media, para cada instância do Senic teremos a capacidade de processamento de 30 requisições por vez. Para avaliar se essa media condiz com a realidade, iremos utilizar o software JMeter (https://jmeter.apache.org) para executar cenários de teste em que requisições serão disparadas na api do Rasa, e a partir do tempo de resposta e requisições corretamente processadas estimaremos a infraestrutura necessária para diferentes volumes de acesso.
|
|
|
|
|
|
# Testes
|
... | ... | |