Testando um site da linha de comando do Linux [closed]

25

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.

    
por Embreau 22.03.2010 / 15:12

10 respostas

30

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 22.03.2010 / 15:29
9

Por favor, veja o Apache Benchmark:

Apache Benchmark

Isso deve fornecer uma visão geral do desempenho de sua página.

    
por 22.03.2010 / 15:27
6

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
por 22.03.2010 / 15:49
3

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.

    
por 22.03.2010 / 16:50
2

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.

    
por 22.03.2010 / 15:24
1

tente uma ferramenta de linha de comando chamada 'siege' como instruído aqui

    
por 03.09.2013 / 14:13
0

Se você vai precisar de algo maior, então enrole e / ou wget, também há selênio

    
por 22.03.2010 / 15:53
0

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.

    
por 21.03.2011 / 15:48
0

Para verificar cabeçalhos, eu gosto de httpie ( docs ).

Instalação

pip install httpie --user

Uso

$ 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
    
por 06.01.2017 / 11:03
0

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.

    
por 06.01.2017 / 12:50