Testes de desempenho do WordPress através do uso de ferramentas de software livre

  • 3,365 views
Uploaded on

Minha apresentação no evento WordPress Summit 2010

Minha apresentação no evento WordPress Summit 2010

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,365
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
69
Comments
0
Likes
9

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Testes de desempenho do WordPress através do uso de ferramentas de software livre Mauro Pichiliani ( [email_address] )
  • 2.
    • Apresentar e discutir algumas abordagens de software gerais para testes no WordPress
    Objetivo
  • 3. Roteiro
    • Preparação do ambiente
    • Testes de usabilidade
    • Teses de código
    • Testes de banco de dados
    • Testes de carga
    • Conclusões e recomendações
  • 4. Preparação do ambiente (1)
    • Planejamento de testes: o quê, quando, onde, como, quem e porquê
    • Montar ambiente adequado:
      • Homologação x Produção
      • Local x Remoto
      • Versão atual x Versão nova x Versão alternativa
    • Alocar e configurar recursos
      • Hardware, software, link, usuários, etc
      • Avisar responsáveis (hosting, designers, programadores, etc)
      • Tempo, paciência, custo x benefíco, $$$
  • 5. Preparação do ambiente (2)
    • Desenvolvimento no WP != Desenvolvimento ‘padrão’:
      • Não há build
      • Uso de plug-ins
      • Conteúdo variado e postado pelo usuário
      • Altíssima disponibilidade
      • Pouca modelagem e programação
      • Baixa reusabilidade
      • Cenário de hosting
    • Conclusão: metodologias formais de teste não se adequam muito bem
    • AVISO: TESTES NÃO SUBSTITUEM VALIDAÇÃO E HOMOLOGAÇÃO!
  • 6. Preparação do ambiente (3)
    • Como começar?
      • Definir bem objetivos
      • Saber as métricas a serem utilizadas
      • Montar pequena escala (Ex: MythBusters)
      • Análise crítica (sucesso, falha, adequado, agradável, suficiente, necessário, etc)
      • Faça um teste por vez!
      • Teste várias ferramentas/serviços e escolha a mais adequada
      • Avalie a modificação da ferramenta
      • Artigos sobre criação de ambiente de desenvolvimento/testes:
        • http://migre.me/1nicu
        • http://migre.me/1nicJ
        • http://migre.me/1nide
        • http://migre.me/1nidX
    • Informações importantes sobre testes no WP:
      • http://migre.me/1nieo
  • 7. Testes de usabilidade (1)
    • Se possível, envolver o usuário e realizar testes de acessibilidade:
    • Teste automatizado de usabilidade: Selenium ( http://migre.me/1nieS )
    • Checagem de links, trackbacks, RSS e pingbacks:
      • Xenu ( http://migre.me/1nif9 )
      • LinkChecker ( http://migre.me/1nifm )
      • W3C Link Checker ( http://migre.me/1nifG )
      • Diversors web crawlers open source ( http://sf.net e http://www.codeprojetct.com )
    • Visualização em diversos browsers pela Web (screenshots e videos):
      • Browsershots ( http://migre.me/1nigr )
      • Spoon Browser SandBox ( http://migre.me/1nigI )
      • CrossBrowserTesting ( http://migre.me/1nihB )
      • IETester ( http://migre.me/1nihM )
      • Browsrcamp.com ( http://migre.me/1nihX )
      • Adobe BrowserLab ( http://migre.me/1nii9 )
      • iPhoneTester ( http://migre.me/1nijC ) e TestiPhone ( http://migre.me/1nijS )
      • Teste do Android com o SDK: http://migre.me/1nik7
    • Recomendação: instalar SO+browser+emulador+SDK em ambiente virtual (VMWare, VirtualBox, Wine, Parallels, etc) para testar interação
  • 8. Testes de usabilidade (2)
    • HeatMap com opção trial: Clickdensity ( http://migre.me/1nilB )
    • Clicktale ( http://migre.me/1nilK )
    • Perl + Javascript+ imageMagick: http://migre.me/1nimB
    • Web Click Stream Analysis: Degaa.NET ( http://migre.me/1nimI )
    • MySQL + Log Apache + Beowulf: http://migre.me/ibm/6V
    • Outros projeto open source para análise de log:
      • Apache2dot: http://migre.me/1nioo
      • Visitors: http://migre.me/1nioz
      • StatViz: http://migre.me/1nioH
      • Pathalizer: http://migre.me/1nioU
      • Web Utilization Miner (WUM): http://migre.me/1nip2
      • phpOpenTracker: http://migre.me/1nipp
  • 9. Testes de usabilidade (3)
    • Visualizando tráfego do site em tempo real: glTail ( http://migre.me/1nipF ), Logstalgia ( http://migre.me/1nipQ ) e Hummingbird ( http://migre.me/1niq0 )
    • Alternativas ao Google Analytics (não open source)
      • Plugin WP: Google Analytics for WordPress: http://migre.me/1niq8
      • Ommiture: http://migre.me/1niqm
      • Yahoo! Web Analytics: http://migre.me/1nir4
      • Overstat: http://migre.me/1nire
      • Woopra: http://migre.me/1nirq
      • Coremetrics: http://migre.me/1nirA
      • ClickTale: http://migre.me/1nirL
      • Webtrends: http://migre.me/1nisI
      • Lyrics: http://migre.me/1nisP
      • FireClick: http://migre.me/1nisT
  • 10. Testes de código (1)
    • WordPress = PHP + MYSQL
    • Verificação do código PHP:
      • Regras (Static Code Analysis)+duplicação de código: PMD ( http://migre.me/1nit4 )
      • Ferramenta de análise estática do código: PHP-Sat ( http://migre.me/1nitC )
      • Adequação à convenção de códigos: Spike PHPCheckstyle ( http://migre.me/1nitI )
      • Validação de padrões de código: CodeSnigger ( http://migre.me/1nitR )
      • Testes unitários com o PHP: PHPUnit ( http://migre.me/1niuc )
      • Verificador de testes de cobertura: PHP Test Coverage Tool ( http://migre.me/1nium ) e PHP Gcov ( http://migre.me/1niut )
      • Integração contínua: phpUnderControl ( http://migre.me/1niuH )
      • Artigo sobre técnicas de debug no PHP: http://migre.me/ibm/6W
  • 11. Testes de código (2)
    • Auxílio na programação:
      • Add-ons do Firefox:
        • PHP Developer Toolbar ( http://migre.me/1nivi )
        • PHP manual ( http://migre.me/1nivz )
        • WordPress Helper ( http://migre.me/1nivC )
      • IDE e debug do PHP onLine: Ideo.com ( http://migre.me/1nivJ )
      • Teste de expressões regulares: http://migre.me/1nivR e http://migre.me/1nivU e http://migre.me/1niw2
      • Validador geral: Validador do W3C: http://validator.w3.org/
    • Verificação contra SQL Injection e vulnerabilidades no PHP+MySQL:
      • Pixy ( http://migre.me/1niwj )
      • SQLPowerInjector: ( http://migre.me/1niwl )
      • SQLMap ( http://migre.me/1niwp )
      • OWASP SQLiX Project ( http://migre.me/1niwt )
      • Pangolin ( http://migre.me/1niwy )
      • MySQLoit ( http://migre.me/1niwJ )
  • 12. Testes de banco de dados (1)
    • Modelo de dados do WordPress em 2D
  • 13. Testes de banco de dados (2)
    • ou em 3D
    • Diva ( http://migre.me/1niwS ) e iFree3d ( http://migre.me/1niwW )
  • 14. Testes de banco de dados (3)
    • Meu artigo sobre modelo de dados do WordPress e assuntos relacionados: http://migre.me/1nixm
    • Ferramentas para testes e preenchimento do banco de dados do WP:
      • MySQL Test Framework ( http://migre.me/1nixv )
      • Apache JMeter ( http://migre.me/1nixF )
      • Alguns dados de testes para o DB do WordPress ( http://migre.me/1nixK )
      • Geração de massa de teste: DBMonster ( http://migre.me/1nixX )
      • Web Site GenerateData.com ( http://migre.me/1niy8 )
      • Geração de logs do apache: GenLog ( http://migre.me/1niyf )
      • Teste de stress simples: mysql-stress-test ( http://migre.me/1niyE )
      • Distributed load testing tool: Tsung ( http://migre.me/1niyr )
      • Projeto LTP (Linux Test Projetct) + Suíte para testes em banco de dados: http://migre.me/1niyN
  • 15. Testes de carga (1)
    • Muitas ferramentas para realizar o teste de carga. Muitas mesmo!
    • Basicamente enviam requisições para o servidor+opções
    • É preciso monitor o desempenho (mais ferramentas...)
    • Artigo bom sobre testes de carga com o WP: http://migre.me/1nkgc
    • Ferramentas prontas:
      • AB - Apache http server benchmarking tool. ( http://migre.me/1nkgD é uma ferramenta de linha de comando. Exemplo: “ab -n 100 -c 5 http://www.exemplo.com ”
      • JMeter ( http://migre.me/1nkgM )
      • Testes simples com o Raw Load Tester ( http://migre.me/1nkgV )
      • Visualização com monitoração+webservice: IxoraRMS ( http://migre.me/1nkhd
      • Teste de stress em níveis de profundidade JCrawler ( http://migre.me/1nkhu )
      • Microsoft WCAT (Web Capacity Analysis Tool): http://migre.me/1nkhF
      • Ferramenta nativa do WP: XDebug + mysqlnd ( http://migre.me/1nkhO )
      • Plug in do Wordpress para testes (requer XDebug): http://migre.me/1nkhU
  • 16. Testes de carga (2)
    • Plataformas de testes:
        • Plataforma para testes distribuídos Opensta ( http://migre.me/1nki6 )
        • Automação de testes+linguagem programação Watir ( http://migre.me/1nkic )
        • Gera classes de testes com requisição http Fast Web Performance Test Tool ( http://migre.me/1nkit )
        • Configuração baseada em texto e protocolo HTTP: Apache Flood ( http://migre.me/1nkiH )
        • Plataforma em Java Grinder ( http://migre.me/1nkiT )
  • 17. Conclusões e recomendações
    • Planeje o que você vai testar
    • Testes não resolvem problemas: no máximo comprovam a solução efetuada
    • Monitoria ajuda muito a controlar ambiente e evitar testes específicos
    • Escolha as ferramentas mais adequadas para o teste
    • Ferramentas simples de linha de comando até plataformas e frameworks para testes distribuídos
    • Testar não é luxo e precisa ser realizado para evitar situações desagradáveis (principalmente com o cliente…)