17
1 Testes de desempenho do WordPress através do uso de ferramentas de software livre Mauro Pichiliani ([email protected] )

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

Embed Size (px)

DESCRIPTION

Minha apresentação no evento WordPress Summit 2010

Citation preview

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

1

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

Mauro Pichiliani ([email protected])

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

2

Apresentar e discutir algumas abordagens de

software gerais para testes no WordPress

Objetivo

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

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

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

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, $$$

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

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!

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

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

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

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

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

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

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

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

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

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

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

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)

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

12

Testes de banco de dados (1)

Modelo de dados do WordPress em 2D

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

13

Testes de banco de dados (2)

ou em 3D

Diva (http://migre.me/1niwS) e iFree3d (http://migre.me/1niwW)

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

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

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

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

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

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)

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

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…)