Você pode tentar a opção wget
with -p
:
wget -p http://site.com
Ele informará quanto tempo leva para baixar cada elemento e os códigos de retorno de cada solicitação.
Estou procurando uma ferramenta para testar um site a partir de uma linha de comando do Linux.
Na saída, preciso saber a resposta http (códigos de status), mas também comparar o tempo necessário para baixar os diferentes elementos do site.
Obrigado antecipadamente.
Você pode tentar a opção wget
with -p
:
wget -p http://site.com
Ele informará quanto tempo leva para baixar cada elemento e os códigos de retorno de cada solicitação.
Por favor, veja o Apache Benchmark:
Isso deve fornecer uma visão geral do desempenho de sua página.
Você pode querer ver as seguintes opções de curl
:
--write-out
- exibe qualquer uma das várias variáveis relacionadas ao tempo --trace-time
- Prepende um registro de data e hora para cada linha de rastreamento ou detalhada --verbose
--include
- (HTTP) Inclua o cabeçalho HTTP na saída. --trace-ascii <file>
- Ativa um rastreamento completo de todos os dados recebidos e enviados.
incluindo informações descritivas E a seguinte opção de wget
:
--timestamping
- Ativar a marcação de hora Selênio e Curl são boas opções dependendo do seu objetivo. Além disso, um utilitário que eu gostei bastante é twill
. Mais informações estão disponíveis no link .
É bom, pois tem sua própria linguagem especializada para preencher formulários, validar links e verificar códigos de resposta. Como é apenas o código Python, você pode importar facilmente as bibliotecas e automatizar seus testes, se quiser fazer algo diferente.
Use o curl para obter o cabeçalho da página e o tempo do processo:
time curl -I http://yourpage.com | grep HTTP
envolva isso em um loop while e você está pronto para ir. Da mesma forma, você pode verificar todos os elementos se souber o URL.
tente uma ferramenta de linha de comando chamada 'siege' como instruído aqui
Se você vai precisar de algo maior, então enrole e / ou wget, também há selênio
Acho que, para testar o desempenho da corrida, você pode tentar JMeter . Você pode gravar seu teste usando o proxy incorporado. Ele também é executado no modo de texto, local ou distribuído. Você pode salvar seus resultados no formato csv ou xml. Se estiver usando o formato xml, você também pode armazenar o conteúdo da página.
Para verificar cabeçalhos, eu gosto de httpie
( docs ).
pip install httpie --user
$ http -h http://serverfault.com/q/124952/113899
HTTP/1.1 302 Found
Accept-Ranges: bytes
Age: 0
Cache-Control: private
Connection: keep-alive
Content-Length: 198
Content-Type: text/html; charset=utf-8
Date: Fri, 06 Jan 2017 10:01:06 GMT
Location: http://serverfault.com/questions/124952/testing-a-website-from-linux-command-line
Set-Cookie: prov=392298d9-103e-7dfc-5b55-8738be46cf3b; domain=.serverfault.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Via: 1.1 varnish
X-Cache: MISS
X-Cache-Hits: 0
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
X-Request-Guid: 07a25de4-6e16-4aa8-acfc-12b1bbbc6180
X-Served-By: cache-hhn1543-HHN
X-Timer: S1483696865.976259,VS0,VE187
Qual ferramenta você escolhe depende do que você quer medir e da complexidade do site.
Se o comportamento do site depender de cookies (por exemplo, o usuário precisa fazer o login), então ab / curl / wget (descrito em outras respostas) não será suficiente. Uma solução é usar o link .
Todos os dados que você está solicitando estão nos registros do seu servidor web - e um simples script awk irá retorná-lo de uma forma mais legível.
benchmark the time it takes to download the different elements of the site.
Este é um indicador muito fraco de desempenho (embora seja útil para monitorar a saúde de um sistema de produção). Com exceção de recursos grandes / lentos, como relatórios volumosos, imagens iso, arquivos multimídia, a percepção de desempenho tem muito pouco a ver com o tempo necessário para processar uma única solicitação - e é realmente difícil medir isso com precisão (simplesmente adicionando% D para o seu log do apache aparece para resolver o problema, mas ignora handshakes TCP, negociação SSL, efeitos de cache, tempo de pesquisa de DNS).
Uma solução melhor é usar algo como Boomerang - mas isso é executado em um navegador compatível com Javascript. Embora isso forneça um melhor indicador do desempenho percebido do que o rastreamento de solicitações HTTP individuais, ele depende de eventos do navegador para obter um valor para o desempenho - mas o desempenho percebido é todo o tempo gasto para a viewport renderizar (novamente, há ferramentas para isso dê uma olhada nas ferramentas de tiras de filme em WebPageTest .
Há também o argumento sobre a medição do desempenho realmente entregue aos usuários do site (RUM) vs testes sintéticos.