testes de desempenho do wordpress através do uso de ferramentas de software livre
Post on 04-Dec-2014
4.258 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
Testes de desempenho do WordPress através do uso de ferramentas de software livre
Mauro Pichiliani (pichiliani@uol.com.br)
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…)
top related