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.