Eu ainda não consegui testar direito esta nova funcionalidade, mas para a próxima versão do Rails teremos um novo generator para testes de performace.
Ao executar no terminal o seguinte comando:
[carlosbrando:edge]$ ./script/generate performance_test Login
exists test/performance/
create test/performance/login_test.rb
Será criado um arquivo chamado test/performance/login_test.rb. Veja o código gerado:
require 'performance/test_helper'
class LoginTest < ActionController::PerformanceTest
# Replace this with your real tests.
def test_homepage
get '/'
end
end
Neste arquivo podemos colocar todos os testes que desejarmos e ao executá-lo teremos informações sobre cada um dos testes como tempo de processamento, uso de memória e outros. Para realizar o teste executamos no terminal:
[carlosbrando:edge]$ ruby test/performance/login_test.rb
Loaded suite test/performance/login_test
Started
LoginTest#test_homepage (32 ms warmup)
process_time: 11 ms
memory: unsupported
objects: unsupported
.
Finished in 0.870842 seconds.
Acredito que esta implementação ainda não está 100%, tanto que não consegui testar corretamente. Mas vou continuar de olho e aviso quando tivermos novidades sobre isto.
Interessante.
2 perguntas:
- Existe uma forma de ele executar X vezes e me retornar a média de tempo gasto? Acho mais confiável do que executar apenas uma vez.
- Sabes se já existe ou está planejado alguma ferramenta para fazer uma comparação entre os resultados? Isso seria bem interessante.
[]s
Vitor, quanto a primeira pergunta, até agora não apareceu nada deste tipo, mas acho meio difícil aparecer… mas de qualquer forma é algo simples de se implementar, mas não sei se realmente é necessário.
Quanto a segunda, também não acredito que o core team faça, já que a idéia é rodar uma vez, alterar o código, rodar de novo e ver se ficou mais rápido ou lento… então não precisaria de uma ferramenta para isto.
Mas como eu disse no post, é tudo muito novo, algumas coisas ainda nem estão funcionando direito… então nunca se sabe o que pode vir por aí.