Cursos Magento

Como gerar dados de teste para seu Magento 2 (Performance Toolkit)

, ,

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âmetroSmall profileMedium profileMedium multi-site profileLarge profileExtra large profile
websites132555
store_groups132555
store_views135055
simple_products80024,0004,000300,000600,000
configurable_products16 with 24 options640 with 24 options800 with 24 options & 79 with 200 options8,000 with 24 options16,000 with 24 options
product_images100 images / 3 images per product1000 images / 3 images per product1000 images / 3 images per product2000 images / 3 images per product2000 images / 3 images per product
categories303001003,0006,000
categories_nesting_level33355
catalog_price_rules2020202020
catalog_target_rules55555
cart_price_rules2020202020
cart_price_rules_floor22222
customers2002,0002,0005,00010,000
tax rates13040,00040,00040,00040,000
orders8050,00050,000100,000150,000
Tamanho da amostra de dados de cada perfil

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”.

Sample storefront with generated data

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:

Últimos posts por Ricardo Martins (exibir todos)
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-2/dados-de-teste-para-seu-magento-2/"]