Testando um site na linha de comando do Linux [fechado]

29

Estou procurando uma ferramenta para testar um site a partir de uma linha de comando do Linux.

Na saída, preciso conhecer a resposta http (códigos de status), mas também comparar o tempo que leva para baixar os diferentes elementos do site.

Agradeço antecipadamente.

Embreau
fonte
O que você encontrou, analisou ou está considerando (adequado / não adequado) até agora?
Mctylr 22/03
Nenhuma dessas respostas me parece muito boa. Você ainda tem que idades de espera para um negativo
geotheory

Respostas:

35

Você pode tentar wgetcom a -popção:

wget -p http://site.com

Ele informará quanto tempo leva para baixar cada elemento e os códigos de retorno para cada solicitação.

Dan Andreatta
fonte
2
wget -p URL -O /dev/null
Fedir RYKHTIK 30/03
9

Consulte o Apache Benchmark:

Apache Benchmark

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

andre
fonte
O Apache benckmark não pode ser usado para isso, pois é uma fonte externa; na verdade, é uma lista de reprodução de vídeo do youtube. Estamos monitorando o acesso a este recurso. TY
Embreau 22/03/10
Não vejo por que você não pode usar ab; como o wget na próxima resposta, ele funcionará desde que o URL do seu site esteja acessível na máquina em que você está executando a ferramenta de benchmarking.
22410 Gareth_bowles
O benchmark do Apache não se restringe aos recursos locais, deve ser uma ferramenta de medição de desempenho completo (incluindo latência da rede, E / S, etc.).
andre
É bom saber, vou avaliar esta opção, obrigado.
Embreau 22/03/10
6

Você pode querer olhar para as seguintes opções de curl:

  • --write-out - exibe qualquer uma das várias variáveis ​​relacionadas ao tempo
  • --trace-time - Anexa um carimbo de data / hora a cada rastreamento ou linha detalhada
  • --verbose
  • --include - (HTTP) Inclua o cabeçalho HTTP na saída.
  • --trace-ascii <file> - Permite um rastreamento completo de todos os dados recebidos e enviados, incluindo informações descritivas

E a seguinte opção de wget:

  • --timestamping - Ativar registro de data e hora
Pausado até novo aviso.
fonte
curl --trace-ascii <file> --trace-time -o /dev/null <url>era exatamente o que eu precisava. Obrigado!
Dsummersl 17/05
3

Selênio e Onda 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 em http://twill.idyll.org/ .

É bom, pois possui sua própria linguagem especializada para preencher formulários, validar links e verificar códigos de resposta. Como é apenas código Python, você pode importar facilmente as bibliotecas e automatizar seus testes se quiser fazer algo diferente.

McJeff
fonte
2

Use curl para obter o cabeçalho da página e cronometrar o 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.

Sideshowcoder
fonte
1

tente uma ferramenta de linha de comando chamada 'cerco', conforme instruído aqui

lefterav
fonte
6
Não é isso que ele está pedindo. e você está também 3 anos de atraso =)
mveroone
1

Qual ferramenta você escolhe depende do que você deseja medir e da complexidade do site.

Se o comportamento do site depender de cookies (por exemplo, o usuário precisa fazer login), ab / curl / wget (descrito em outras respostas) não será suficiente. Uma solução é usar o http :: recorder / www :: mechanize .

Todos os dados que você está solicitando estão nos logs do servidor da web - e um script awk simples os retornará de forma mais legível.

compare o tempo que leva para baixar os diferentes elementos do site.

Esse é um indicador de desempenho muito ruim (embora seja útil para monitorar a integridade 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 com precisão (simplesmente adicionando% D no log do apache parece resolver o problema, mas ignora os handshakes TCP, negociação SSL, efeitos de cache, tempos de pesquisa de DNS).

Uma solução melhor é usar algo como o Boomerang - mas isso é executado em um navegador compatível com Javascript. Embora isso ofereça um melhor indicador de desempenho percebido do que rastrear solicitações HTTP individuais, ele depende de eventos do navegador para obter um valor para o desempenho - mas o desempenho recebido é o tempo necessário para a exibição da viewport (novamente, existem ferramentas para isso - veja as ferramentas de tira de filme no WebPageTest ).

Há também o argumento sobre como medir o desempenho realmente entregue aos usuários do site (RUM) versus testes sintéticos.

symcbean
fonte
0

Se você vai precisar de algo maior do que enrolar e / ou wget, também há selênio

Desrazão
fonte
0

Eu acho que para executar o teste de desempenho, você pode tentar o JMeter . Você pode gravar seu teste usando o proxy embutido. Também é executado no modo de texto, local ou distribuído. Você pode salvar seus resultados no formato csv ou xml. Se você estiver usando o formato xml, também poderá armazenar o conteúdo da página.

ghm1014
fonte
0

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

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
Martin Thoma
fonte