Em 7 de agosto de 2023, a plataforma de teste contínuo de código aberto completa da MeterSphere lançou oficialmente a versão v2.10.5 LTS. Desde o lançamento da versão v2.10 LTS em maio de 2023, a equipe do projeto de código aberto MeterSphere tem insistido em lançar pequenas versões a cada duas semanas, reparando e atualizando problemas continuamente e otimizando algumas funções.
A versão MeterSphere v2.10.5 LTS lançada desta vez realizou atualizações e otimizações importantes em termos de desempenho de página de front-end, algoritmos de teste de desempenho, permissões de interface de back-end e experiência de operação de alta frequência, trazendo uma melhor experiência aos usuários. usuários da comunidade para atualizar e usar.
Otimização de desempenho da página de front-end
Anteriormente, alguns usuários da comunidade relataram que algumas páginas da plataforma MeterSphere, principalmente a página inicial de cada módulo, eram carregadas lentamente. O principal motivo é que o pacote de recursos front-end é relativamente grande em tamanho, a página inicial carrega totalmente mais de 30 MB de recursos e o tamanho dos recursos JavaScript individuais é próximo a 3 MB. Em resposta ao feedback do usuário, a versão MeterSphere V2 otimizou de forma concentrada o desempenho do front-end das seguintes maneiras e lançou-o na versão v2.10.2 LTS. O conteúdo otimizado inclui:
■ Divisão de pacote: use webpack-bundle-analyzer para construir o produto para análise e desmonte o pacote;
■Extração de biblioteca pública: extraia recursos compartilhados em bibliotecas públicas para reduzir o empacotamento repetido ao empacotar módulos de aplicativos;
■Compartilhamento de cache: coloque os recursos da biblioteca pública em um diretório unificado, e cada aplicativo do módulo usa um link externo para importar o mesmo recurso, fazendo pleno uso da estratégia de cache HTTP para reduzir o carregamento repetido;
■ Simplificação do corpo do pacote: alguns recursos do npm são modificados para importar sob demanda, reduzindo a introdução de código inútil;
■Carregamento dinâmico: alguns plug-ins de terceiros são relativamente grandes, como PDF e ECharts, que são usados em algumas páginas, não em todas as páginas. Esta parte foi dividida, não introduzida diretamente no main.js, mas carregada dinamicamente quando usada.
Após essas medidas de otimização de front-end, o efeito de otimização de desempenho da plataforma MeterSphere é óbvio. Após a otimização, o maior tamanho de arquivo de pacote também está dentro de 330 KB, o tamanho geral do recurso de carregamento é reduzido em mais de 60% e o tempo de carregamento total é reduzido de 20s para cerca de 7,5s.
Comparação antes e depois da otimização:
Otimização do algoritmo de teste de desempenho
O módulo de teste de desempenho da versão open source do MeterSphere é processado da mesma forma que o JMeter, mas no caso de alta simultaneidade, especialmente testes de vários nós distribuídos, os dados do teste de pressão são diferentes dos do JMeter executado localmente. Em resposta a esta situação, o MeterSphere Enterprise Edition realizou uma otimização de algoritmo especial, que atingiu o mesmo nível do JMeter nativo em termos de precisão de dados de teste e desempenho em tempo real. Em comparação com o cenário de teste de nós de teste duplos acessando o Nginx, os resultados do teste do MeterSphere Enterprise Edition e do JMeter nativo são quase os mesmos.
Os resultados do teste JMeter são comparados com os resultados do teste MeterSphere Enterprise Edition da seguinte forma:
Além da otimização de algoritmo, o MeterSphere Enterprise Edition também oferece suporte a pools de recursos do Kubernetes. Ao executar uma tarefa de teste de desempenho, a plataforma chama a API do Kubernetes para criar rapidamente um trabalho de teste de desempenho correspondente. Após a execução do teste, os recursos correspondentes são recuperados automaticamente e os pools de recursos usados por diferentes equipes são diferenciados para evitar influência mútua. Ao mesmo tempo, o MeterSphere Enterprise Edition fornece serviços profissionais originais de fábrica, fornecendo aos clientes análise de demanda de teste de pressão de teste de desempenho, design de modelo de tráfego e serviços especializados de teste de desempenho, como construção, execução, análise e otimização de ambientes de teste de pressão distribuídos.
Aumento de chamadas de API de back-end
Requer permissões
A equipe de design de produto da plataforma de teste contínuo de código aberto MeterSphere atribui grande importância à segurança, flexibilidade e capacidade de manutenção do produto.
Desde o MeterSphere v2.10.2 LTS, todas as chamadas de API de back-end foram adicionadas com a verificação "Requires Permissions". Ao adicionar a etapa de verificação "Requer permissões" na chamada da API, pode-se garantir que apenas usuários ou funções com as permissões correspondentes possam acessar e executar a API, protegendo efetivamente os dados e funções confidenciais do sistema e impedindo o acesso e as operações não autorizadas.
Esse design também melhora a manutenibilidade do sistema.Quando o sistema precisa ajustar ou atualizar as permissões, apenas as permissões correspondentes precisam ser modificadas sem alterar o próprio código da API, reduzindo assim a complexidade da manutenção e atualizações do sistema.
Os usuários podem personalizar se o acesso ao URL Swagger do MeterSphere requer autenticação de autorização, ou seja, modificar a configuração a seguir em docker-compose-gateway.yml para controlar se a autenticação é necessária.
■SWAGGER_ENABLED: falso
Otimização da experiência da função de operação de alta frequência
■ Rastreamento de teste: otimização da experiência do caso de teste da função de execução do plano de teste (etapas de operação simplificadas);
■ Teste de interface: nova otimização de caso de interface (etapas de operação simplificadas);
■ Teste de interface: o método de asserção de interface oferece suporte a asserção XPath do corpo da resposta no formato HTML;
■ Teste de interface do usuário: otimização de desempenho de carregamento da etapa de automação da cena da interface do usuário;
■ Funções gerais: cada módulo funcional do sistema cancela a restrição de 8 níveis da árvore de módulos;
■ Recursos comuns: A pesquisa avançada oferece suporte à pesquisa em campos personalizados.