Como gerar dados de teste para seu Magento 2 (Performance Toolkit)
Desenvolvimento, Gerenciar minha loja, Magento 2
Atualizado em 11 de setembro de 2020
Há algum tempo atrás eu publiquei um teste de performance com Magento 2 em uma hospedagem de $10.
Neste teste eu carreguei 42 mil produtos, e com algumas otimizações fiz a loja carregar em menos de um segundo.
Nos dias de hoje, a loja levantada se tornou a loja de treino para os alunos dos cursos de Magento 2 do Magenteiro. Sem os 42 mil produtos desnecessários (é claro), ela é reiniciada a cada 6 horas.
Dados de teste para Magento 2 – Como carregar
O que muita gente pergunta quando vê aquele exemplo é como foram gerados tais dados.
O Magento 2 possuí uma ferramenta oficial para gerar todo tipo de entidade de teste que você quiser.
Desde produtos, usuários de admin, regras de preços, imagens, e até websites adicionais e taxas. Praticamente tudo que você precisa para testar a performance de seu Magento em cenários extremos.
Estou falando do Magento Performance Toolkit. Note que o URL aponta para uma pasta dentro do próprio Magento. Oops! Sim, você já tem ele aí com você.
Pré-requisitos
Embora seja óbvio para quem trabalha a sério com Magento 2, é necessário acesso SSH ao bin/magento. Também é necessário que tenha instalado seu Magento com as permissões corretas.
Se você já é aluno do Magento 2: O Curso, consulte a seção “Bônus: Magento 2 na nuvem – 42 mil produtos em menos de 2 segundos. Como fazer.” e a aula “Criando usuários e grupos no sistema“.
❗️Antes de executar o gerador de dados, certifique-se de pausar/desabilitar qualquer trabalho que esteja sendo executado pelo cron do Magento.
❗️❗️Lembre de fazer backup da sua base, pois não há forma segura para remover as entidades adicionadas. Você precisará restaurar seu backup.
Perfis de dados
O toolkit possuí uma série de perfis de dados com tamanhos diferentes: pequeno (small), médio (medium), grande (large) e gigante (extra large).
Os arquivos de perfil estão localizados na pasta /setup/performance-toolkit/profiles/ce
(ou /ee no final, se você estiver usando Magento Commerce).
Veja na tabela abaixo a quantidade de dados de cada tamanho de perfil.
Parâmetro Small profile Medium profile Medium multi-site profile Large profile Extra large profile websites 1 3 25 5 5 store_groups 1 3 25 5 5 store_views 1 3 50 5 5 simple_products 800 24,000 4,000 300,000 600,000 configurable_products 16 with 24 options 640 with 24 options 800 with 24 options & 79 with 200 options 8,000 with 24 options 16,000 with 24 options product_images 100 images / 3 images per product 1000 images / 3 images per product 1000 images / 3 images per product 2000 images / 3 images per product 2000 images / 3 images per product categories 30 300 100 3,000 6,000 categories_nesting_level 3 3 3 5 5 catalog_price_rules 20 20 20 20 20 catalog_target_rules 5 5 5 5 5 cart_price_rules 20 20 20 20 20 cart_price_rules_floor 2 2 2 2 2 customers 200 2,000 2,000 5,000 10,000 tax rates 130 40,000 40,000 40,000 40,000 orders 80 50,000 50,000 100,000 150,000
Executando o gerador de dados
O comando a ser executado é o setup:perf:generate-fixtures, seguido pelo caminho do XML do perfil que queremos gerar.
Exemplo:
bin/magento setup:perf:generate-fixtures /var/www/html/magento2/setup/performance-toolkit/profiles/ce/medium.xml
Resultado obtido (exemplo):
Generating profile with following params: |- Websites: 1 |- Store Groups Count: 1 |- Store Views Count: 1 |- Categories: 30 |- Attribute Sets (Default): 3 |- Attribute Sets (Extra): 10 |- Simple products: 800 |- Configurable products: 0 |--- 5 products for attribute set "Attribute Set 1" |--- 5 products for attribute set "Attribute Set 2" |--- 5 products for attribute set "Attribute Set 3" |--- 40 products for attribute set "Dynamic Attribute Set 1-24" |- Product images: 100, 3 per product |- Customers: 200 |- Cart Price Rules: 20 |- Catalog Price Rules: 20 |- Catalog Target Rules: 5 |- Orders: 80 Generating websites, stores and store views... done in
Após executar a importação, um reindex deve ser feito. Eventualmente, ativar novamente seu cron deve ser suficiente.
Resultado obtido
O Magento irá gerar entidades simples apenas para fins de carga. O nome dos produtos, clientes, etc não são amigáveis como aqueles gerados com o comando bin/magento sampledata:deploy
.
Por exemplo, o nome de um produto configurável será algo como “Produto Configurável 1432”.
A quantidade de entidades, e formato dos atributos pode ser facilmente entendida ao navegar nos arquivos da pasta /setup/performance-toolkit
.
Conclusão
Simples de usar e implementar, a ferramenta de criação de dados é fantástica para testes de performance.
No entanto se o objetivo é apenas carregar alguns produtos com imagens, clientes de teste, e outras entidades básicas apenas para demonstração, este não é o caminho. Neste caso, use o sampledata:deploy
.
Além dos recursos exibidos aqui, o Toolkit de Performance do Magento 2 ainda traz alguns testes para JMeter, disponíveis na pasta raíz da ferramenta (*.jmx). As instruções de uso estão no arquivo README.md na mesma pasta.
Por fim, embora seja possível executar uma série de melhorias em nossa infraestrutura utilizando uma VPS dedicada de baixo custo e ter um Magento super rápido (como mostrado aqui), a maioria das lojas que vejo ter problemas de performance são hospedadas em servidores compartilhados de valores ainda menores. Em outras palavras, a maioria dos problemas de performance em lojas pequenas se dão por conta da hospedagem e não apenas de má configuração.
Outros materiais úteis sobre o assunto podem ser encontrados em:
- Documentação oficial
- Repositório da ferramenta (diretório dentro do repositório oficial)
- Curso Magento 2: O Curso – Aprenda a otimizar, e desenvolver para Magento 2
- Lista de hospedagens especializadas em Magento
- Entrevista com César Galvani (A culpa nem sempre é da hospedagem)
- PagSeguro (PagBank) para Magento 1 recebe a Nova Geração - 9 de abril de 2024
- Recorrência no WooCommerce Sem Plugins Pagos - 28 de janeiro de 2024
- Chargeback. O que é, e como se livrar deles. - 19 de dezembro de 2023
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-2/dados-de-teste-para-seu-magento-2/"]