Testes de desempenho do WordPress através do uso de ferramentas de software livre
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 4,099 views

Minha apresentação no evento WordPress Summit 2010

Minha apresentação no evento WordPress Summit 2010

Statistics

Views

Total Views
4,099
Views on SlideShare
4,020
Embed Views
79

Actions

Likes
9
Downloads
68
Comments
0

7 Embeds 79

http://www.techgig.com 39
http://blackhat.r30.com.br 19
http://www.pendenga.com.br 13
http://www 3
https://twitter.com 2
http://paper.li 2
http://115.112.206.131 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Testes de desempenho do WordPress através do uso de ferramentas de software livre Presentation 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…)