24 Feb
matte

matte il 24 February 2007 parla di Rails Snippet, Risorse

Controlla il tuo sito con “spider fuzz plugin”

Girellando nel sito di Caboose ho trovato il plugin spider fuzz utilissimo per testare svariate cose all’interno delle nostre applicazioni Ruby on Rails.

Come funziona:

Il plugin effettua i seguenti task per voi:

  • analizza l’html di ogni pagina per trovare html invalido di cui sarai avvisato.
  • trova ogni link nel sito e lo segue.
  • trova ogni chiamata Ajax.Updater e la segue.
  • trova ogni form e ne effettua il submit, riempiendolo con valori se possibile.

Questo consente di:

  • Trovare pagine statiche mancanti (.html)
  • Routing incorretti
  • Copertura scarsa del codice - testa tutta l’applicazione prima che ti avverta un utente
  • Testa i percorsi dei form e capisce se puntano a pagine incorrette

Come installarlo

Lanciare da console i seguenti comandi:

    1 $ ./script/plugin install spider_tester
    2 $ ./script/generate integration_test spider_test

Come utilizzarlo

Mettere all’interno del file spider_test.rb il seguente codice:

    1 require "#{File.dirname(__FILE__)}/../test_helper"
    2 
    3 class SpiderTest < ActionController::IntegrationTest
    4   fixtures :users, :roles, :images, :categories
    5   include Caboose::SpiderIntegrator
    6 
    7   def test_spider
    8     get '/'
    9     assert_response :success
   10 
   11     spider(@response.body, '/')
   12   end
   13 
   14 end

Se avete anche un’area utenti potete anche aggiungere il seguente metodo al precedente file:

    1 def test_spider
    2   get '/sessions/new'
    3   assert_response :success
    4   post '/sessions/create', :login => 'admin', :password => 'test'
    5   assert session[:user]
    6   assert_response :redirect
    7   assert_redirected_to '/'
    8   follow_redirect!
    9 
   10   spider(@response.body, '/')
   11 end

lanciando da riga di comando:

    1 rake test:integration

Lanciarete tutti gli integration test tra cui quelli del fuzz plugin. Ogni volta che il test troverà qualcosa che non va si interromperà e vi segnalerà il problema. State attenti ad inserire include Caboose::SpiderIntegrator invece di include SpiderIntegrator altrimenti l’applicazione non vi funzionerà.

Io ho avuto anche dei problemi in applicazioni che contenevano dei feed rss. Se trovo come risolvere il problema ve lo farò sapere.

Scrivi un commento