Teste rápidoJS
Speed-testJS é um teste de velocidade baseado em JavaScript que fornecerá aos usuários uma visão enriquecida da velocidade da Internet. Fornecendo aos usuários não apenas sua latência, velocidades de upload e download e contexto em torno de toda a sua experiência na Internet. Usando dados de nível de velocidade para adicionar uma métrica qualificada aos resultados de testes de velocidade padrão, os usuários agora saberão se sua experiência é ruim, boa ou ótima
Implantação
Para implantar em um servidor de teste, consulte o README na pasta ansible .
Configuração do servidor cliente
O aplicativo consiste em um software node/express executando o servidor e javascript/html simples no cliente. O servidor alimenta endpoints de redefinição, comunicação de websocket, interações de banco de dados e o site do cliente.
Servidor
Index.js é o ponto de partida do aplicativo que contém as funções necessárias para executar o aplicativo. As configurações significativas neste arquivo são:
Endereço IP e portas: o servidor se vinculará automaticamente aos endereços ipv4 e ipv6 da máquina host na qual está implantado (ou seja, app.listen(SERVERPORT,'::');). Além disso, as portas podem ser atribuídas com app.listen(ADDITIONALPORT);
Solicitação HTTP: a configuração http é definida para permitir postagens http e solicitações entre domínios.
WebSockets: a comunicação dos websockets é definida
Endpoints REST: os endpoints REST são expostos para concluir um teste de velocidade e incluem o seguinte:
- testplan: testplan retornará dados json contendo os endereços IPv4, ipv6 e portas usadas para endpoints restantes e websockets em execução no servidor e no endereço IP do cliente. Também recursos adicionais de teste de velocidade (ou seja, sinalizadores de roteamento baseados em latência podem ser retornados)
- latência: retorna mensagem simples de pong
- download: dados binários com base na solicitação
- upload: aceita postagem para uploads
- downloadProbe: retorna o tamanho de teste de largura de banda de download recomendado com base na solicitação
- calculadora: retorna cálculos com base na matriz de solicitação, fornecendo estatísticas sobre dados.
- testServer: usado em roteamento baseado em latência. Ele retornará URLs de servidores de teste que podem ser usados para encontrar o servidor mais próximo para um cliente
Configuração: A configuração genérica (portas, latencyBasedRouting,...) é definida em index.js. Personalização específica (ou seja, banco de dados) pode ser colocada na pasta de configuração
- Parâmetros de configuração
- Pontos finais de descanso
- WebSockets
- A pasta Módulos contém módulos personalizados usados para o aplicativo.
Cliente
Cliente: o aplicativo cliente reside na pasta pública e consiste em javascript simples. Index.html é a página inicial padrão do aplicativo e conterá um exemplo completo de um teste de velocidade de largura de banda. O seguinte descreve a estrutura de pastas do aplicativo cliente:
- lib: A pasta lib contém arquivos javascript usados para medir a largura de banda e medidas relacionadas.
- exemplo: A pasta de exemplo contém arquivos html usados para testar os arquivos javascript de medição na pasta lib
- Objetos base xmlhttprequest e websocket
- Diferentes conjuntos de testes usando os objetos base Base xmlhttprequest e websocket
- teste: a pasta de teste contém testes de unidade
- uilib: arquivos javascript específicos para UI.
- img: imagens para teste ou interface do usuário
Implantação manual
Grunt está sendo usado para empacotar os arquivos e pastas necessários para implantar o aplicativo em um servidor para executar o aplicativo. As etapas estão listadas abaixo:
- execute o pacote grunt da pasta raiz
- tar, zip ou compactar a pasta dist resultante
- implantar e descompactar em seu servidor
- execute o nó index.js no console.
Executando o aplicativo
Para executar o aplicativo localmente
- Clonar repositório
- execute npm install da pasta raiz
- execute o nó index.js
- navegue até o endereço ipad: número da porta (ou seja, localmente será http://localhost:port
Banco de dados
Para definir o Dynamodb localmente
- Siga as instruções no link para baixar e executar o dynamodb localmente http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
- Configure as credenciais da AWS localmente http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html
- Assim que o Dynamodb estiver configurado localmente. Use o script a seguir para criar uma tabela e inserir os dados no Dynamodb (execute o nó database.js do terminal)
- Ao executar o script, altere o nome da tabela e as informações do servidor