Numa bela noite de domingo, nossa série de televisão favorita retorna com sua última temporada, e aqui nos preparamos para mergulhar nela para consumir a tão esperada série antes que qualquer spoiler chegue até nós. Para os consumidores, tornou-se muito fácil pegar o telefone e aproveitar conteúdo em aplicativos móveis ou aplicativos web. Streaming de mídia é acessível com apenas alguns cliques e toques. Abra o app e clique em play. Simples, rápido e instantâneo, certo?

O consumo de vídeo on-demand e streaming ao vivo se tornou generalizado em todo o mundo. Todos estão abandonando DVDs, provedores de cabo, e substituindo-os por assinaturas de streaming de vídeo on-demand. Com esse boom na demanda, desempenho consistente e alta qualidade tornam-se um tópico de preocupação. Nenhuma dessas plataformas on-demand gostaria de ver seus consumidores tendo uma experiência ruim. Mas para garantir que os usuários tenham acesso a esse streaming de mídia de forma contínua, com menos buffering e qualidade máxima, definitivamente precisamos realizar testes de carga nesses conteúdos de mídia com muitos usuários presentes em diferentes localizações geográficas e assistindo ao conteúdo por longos períodos. Mesmo o menor atraso na mídia ou na qualidade pode prejudicar a experiência do cliente e pode fazer com que a base de usuários se reduza.

 

Mídia de Streaming e Métricas Chave de Teste de Carga

Vamos primeiro discutir as principais métricas importantes que impactam o desempenho da mídia de streaming.

 

Taxa de Bits

A taxa de bits é geralmente calculada com a média de bytes por dado transferido ao usuário. Uma taxa de bits maior significa que o usuário consegue consumir conteúdo em alta resolução tanto em áudio quanto em gráficos visuais. Às vezes, podemos enfrentar latência quando a diferença de localização entre o local de onde o conteúdo está sendo buscado (servidores de mídia de streaming) e os usuários é significativa, o que afeta a taxa de bits geral.

 

Taxa de Reprodução

A taxa de reprodução é usada para calcular o número ou a porcentagem de usuários que realmente reproduziram o vídeo. Se a taxa de bits estiver na faixa baixa, também veremos uma taxa de reprodução baixa. Portanto, ambas as métricas andam juntas. Se o conteúdo não carregar dentro dos primeiros 30 segundos, os usuários tendem a fechar o serviço de streaming, o que geralmente causa uma queda alta na taxa de reprodução.

 

Tempo de Buffer

O tempo de buffer é o tempo gasto para que o conteúdo seja carregado, dependendo da latência da rede e da velocidade de download dos dados do usuário. O cálculo do tempo de buffer nos diz o tempo que o usuário gastou esperando o conteúdo carregar. O aumento do tempo de buffer pode prejudicar a experiência do usuário e ele pode até parar de assistir ao conteúdo se o tempo ultrapassar um limite crítico. O buffering também pode acontecer durante a reprodução do vídeo; geralmente, após o buffering, a mídia começa a tocar. O tempo entre o conteúdo bufferizado e a reprodução da mídia é chamado de duração do lag. A duração do lag desempenha um papel importante enquanto a mídia está sendo transmitida; se essa duração aumentar, isso afeta a continuidade geral do streaming.

 

Tempo de Duração da Reprodução

O tempo de duração da reprodução é o tempo que o usuário gasta consumindo o conteúdo, ajudando a entender quanto tempo em média o usuário permanece na plataforma e também exibe a experiência geral e o interesse do usuário no vídeo em streaming. Se recentemente nosso tempo de duração da reprodução diminuir, é hora de melhorar o conteúdo da mídia na plataforma.

 

Razão de Lag

A razão de lag é a quantidade de tempo de buffering sobre o tempo real de visualização do conteúdo pelo usuário. Ajuda a calcular a qualidade geral da mídia de streaming. Deve estar o mais próximo possível de zero, mas não pode chegar a zero. Sempre haverá algum atraso inicial, mas a consistência e a continuidade do streaming de mídia por longos períodos devem ser mantidas para obter maior tempo de duração da reprodução.

Como discutido nas métricas acima, elas nos ajudam a monitorar como os aplicativos de mídia se comportam sob carga. Também são usadas como parâmetros para melhorar o desempenho geral.

 

Por Que Precisamos Testar de Diferentes Localizações Geográficas?

Antes de responder por que precisamos testar com diferentes localizações geográficas, vamos discutir de forma simples como a solicitação é processada. Quando o usuário clica no botão Play, uma solicitação é enviada ao seu provedor de internet (ISP). O ISP a encaminha para os servidores dedicados que lidam com o site, e os servidores fornecem uma resposta que é retransmitida ao seu computador e forma o resultado. Para grandes gigantes que fornecem mídia de streaming onde milhões de horas de conteúdo de vídeo são transmitidas pela internet entre seus servidores e todos os usuários, é necessária uma rede muito maior de servidores para manter o desempenho.

Mas e se seus usuários estiverem em Los Angeles tentando transmitir conteúdo disponível em servidores na Ásia? Isso aumenta a latência e pode impactar o desempenho geral da mídia. Para resolver esse problema, os provedores de streaming usam Redes de Distribuição de Conteúdo (CDNs), que pegam o site original e o conteúdo de mídia que ele contém e os copiam para centenas de servidores espalhados pelo mundo. Assim, quando, por exemplo, usuários acessam de Budapeste, ao invés de conectar ao servidor principal nos Estados Unidos, ele carregará uma cópia exata dele de um servidor CDN que esteja mais próximo de Budapeste. Isso reduz muito a latência — o tempo entre uma solicitação e uma resposta — e tudo carrega muito rápido.

 

Quantos Usuários Meu Streaming Pode Suportar?

 

Antes de os usuários reais chegarem à plataforma, queremos testar a carga do streaming para deduzir qual tamanho de base de usuários separados em diferentes locais nosso streaming consegue gerenciar com o maior valor de taxa de bits, taxa de reprodução e o menor valor de buffering e razão de lag. Para obter o número de usuários, precisaríamos de um script que comece com x número de usuários navegando no streaming, e precisaríamos aumentar ou crescer a contagem de usuários gradualmente até começarmos a ver timeouts de conexão ou queda na taxa média de bits. O aumento dos usuários simultâneos e o monitoramento dos timeouts de conexão nos dão o resultado de qual seria o maior número de usuários que nossa infraestrutura atual pode suportar.

Planejar e criar um script que imite um comportamento de usuário próximo ao real em streaming é uma parte muito importante para obter resultados precisos. Também precisaríamos de uma ferramenta dedicada capaz de gerar a carga e garantir que o script não quebre. Vamos olhar para o LoadView para testar o caso exato e entender como ele ajuda a testar mais de 100 codecs diferentes de streaming de mídia.

Agora precisamos testar a carga dessas execuções e velocidades de CDN e ver se enfrentamos alguma latência por causa disso, ao rodar streaming com um alto número de usuários simultâneos. Isso nos ajudará a entender, com a base de usuários em crescimento a partir de diferentes locais comparados a onde o conteúdo reside no servidor, os parâmetros de desempenho e fornecer o cenário mais próximo do tempo real.

 

LoadView & Funcionalidades

 

LoadView é uma aplicação Software como Serviço (SaaS) que fornece ferramentas de teste de carga e suporte para executar testes de carga baseados na nuvem para páginas web, streaming de mídia, servidores de API back-end e outras aplicações web complexas.

Para nos ajudar a gerenciar e executar testes de desempenho para streaming, LoadView fornece infraestrutura e script de teste para testarmos o streaming e verificar quantas transmissões concorrentes nossa infraestrutura pode suportar. Ele suporta mais de 100 codecs de monitoramento de fluxo de mídia e formatos de arquivos de mídia, o que proporciona uma variedade de codecs de áudio e vídeo baseados na mídia sob teste.

LoadView possui múltiplas opções para testar streaming, uma delas é um teste dedicado onde precisamos passar a URI do streaming, e a outra envolve o uso do EveryStep Web Recorder para gravar todas as sessões de usuário no navegador com mídia, o que ajuda o gravador a criar um script e reexecutá-lo durante o teste de carga em escala maior.

 

Funcionalidades do LoadView

 

Tempo de Conexão

Fornece relatórios em tempo real com a contagem de timeouts de conexão para mostrar como a infraestrutura se comporta com o número atual de usuários simultâneos.

 

Taxa de Frames

Fornece detalhes como taxa de frames que garante a taxa na qual as imagens nos vídeos são exibidas e verifica se elas não causam tremulação ou erros de visualização.

 

Tempo de Buffer

Ajuda a entender valores de taxa de rejeição e tempos de visualização altos com limites de tempo de buffering e alertas.

 

Média de Bytes por Segundo

LoadView monitora a qualidade da imagem na saída do nosso streaming ou vídeos compartilhando métricas como a taxa de bits consumida pelo usuário.

 

Teste de Carga em Mídia de Streaming Usando LoadView

 

Como discutimos acima, LoadView oferece duas opções para testar a carga de streaming, uma com uma URI de mídia dedicada onde passamos a URL estática do mídia para executar o teste, e outra com o gravador de script que captura a interação em tempo real do navegador com a mídia e grava todas as ações realizadas pelo usuário para criar um script. Esse script gravado é usado para executar testes de carga em escala maior.

Discutiremos, passo a passo, a configuração para ambas as formas diferentes, bem como a execução de testes de carga para nossa mídia streaming usando LoadView, que oferece suporte para todos os formatos populares de arquivo de streaming.

 

Configuração da Mídia de Streaming no LoadView

 

Para criar um script de teste de carga de mídia streaming, precisaríamos de um alvo de mídia que queremos validar sob carga pesada. Será necessário inserir o URL da mídia e o caminho do protocolo do mídia, que seria o URI do recurso da mídia. Especificaremos ambos em nossos cenários de teste. Os passos gerais envolvidos enquanto rodamos o teste de carga para mídia são os seguintes:

 

Configuração da Mídia de Streaming: Passo 1

O usuário insere o URL da mídia e o tipo de mídia.

 

Configuração da Mídia de Streaming: Passo 2

Baseado na mídia sob teste, os geradores de carga tentarão consumir buscando o conteúdo da URL da mídia de streaming.

 

Configuração da Mídia de Streaming: Passo 3

As transmissões possuem múltiplos atributos como qualidade, codecs, vídeo e áudio que serão buscados do servidor e as métricas para cada atributo serão calculadas durante a execução do teste.

 

Configuração da Mídia de Streaming: Passo 4

Existe um timeout de conexão que será mencionado no cenário de teste; se o servidor de mídia streaming não conseguir enviar o conteúdo dentro do tempo limite estipulado, um erro será gerado e ficará disponível nos resultados do teste.

 

Configuração do Teste de Desempenho de Streaming no LoadView

Vamos ver os passos necessários para executar um teste de carga para mídia streaming.

 

Criar Novo Teste

Abra a página inicial do LoadView. Talvez seja necessário clicar em New Test para começar a criar nosso novo teste de carga.

Streaming Media Create New Load Test

 

Selecionar Tipo de Teste de Carga

Veremos todos os diferentes tipos de teste de carga suportados pelo LoadView como Web Applications, Web Pages, Streaming Media, HTTP/S, entre outras opções. Para nosso caso, selecionamos a opção Streaming Media para executar nosso teste de carga.

Streaming Media Select Load Testing Type

 

Configurar Tarefa de Streaming Media

Após escolher Streaming media, precisaremos inserir detalhes para o aplicativo sob teste, como tipo de mídia e URL da mídia streaming. Também será necessário definir um timeout para o aplicativo em teste. Se, por algum motivo, o aplicativo ficar sem resposta, o LoadView aguardará o tempo definido e posteriormente encerrará o teste com os detalhes do erro apropriado. Depois de atualizar, devemos clicar no botão Create Device.

Streaming Media Configure Task

Configuração do Cenário de Teste

Após configurar com sucesso o dispositivo para o qual executaremos o teste de carga, seremos redirecionados para a tela Test Scenario, que oferece múltiplas opções com base no teste necessário. Campos como Concurrent Users, Ramp Up time, Ramp Up speed, Warm Up time e Geo-distribution para nosso teste de carga podem ser definidos nessa tela. Esses valores dependem do tipo de aplicações e podem ser ajustados conforme a necessidade do teste de carga.

Streaming Media Test Scenario

Streaming Media Load Injector Payload

 

Usuários Simultâneos na Mídia de Streaming

Na tela Test Scenario, precisaremos adicionar o número de usuários simultâneos necessários para executar o teste de carga. Os injetores de carga serão iniciados com base na carga e nos usuários simultâneos requeridos para a execução do teste. Após a conclusão bem-sucedida do teste, análises detalhadas e relatórios serão gerados para ajudar a identificar falhas de desempenho, bem como como o sistema se comportou durante o teste.

 

Tempo de Conexão

O tempo de conexão é o intervalo entre iniciar uma sessão de streaming e a reprodução do primeiro quadro do vídeo streaming. Esse tempo é somado à métrica da razão de lag discutida anteriormente.

 

Duração

Duração é o valor total do tempo pelo qual o conteúdo é consumido pelo usuário, e também descreve o tempo que o motor leva para capturar o conteúdo.

 

Qualidade

Qualidade é calculada com base na quantidade de bits consumidos pelo usuário, o que ajuda a entender a representação visual do mídia transmitida.

 

Frames Por Segundo

Frames por segundo nos ajuda a calcular o número de quadros baixados durante o teste realizado.

 

Teste de Carga em Streaming Usando o EveryStep Web Recorder

 

Esta seção nos ajuda a entender como podemos testar a carga de sessões reais de navegador contendo mídia streaming junto com o conteúdo habitual do site. O EveryStep Web Recorder fornecido com LoadView pode ser usado para criar cenários de teste baseados no comportamento real do usuário em uma aplicação web com conteúdo que envolve consumo de áudio, vídeo, play/pause de vídeo, player compacto ou expandido para streaming de mídia. O gravador de script registra todas as ações e ajuda a executar novamente a experiência do usuário em maior escala para obter resultados de desempenho próximos ao real da aplicação web. O gravador suporta todos os principais navegadores para ajudar a fornecer resultados de testes de carga baseados em diferentes navegadores. Podemos modificar e configurar os scripts criados pelo EveryStep durante a gravação conforme nossa necessidade. Ele ajuda a escalar e trabalhar com múltiplas aplicações web usando Flash, JavaScript, WebSockets, HTML5, Java, PHP, Ruby, Silverlight e mais. A configuração é semelhante aos passos mencionados acima, mas varia ligeiramente ao usar o EveryStep Web Recorder. Os passos para configurar um teste de carga com o gravador de script são os seguintes:

  1. Criar um novo teste no LoadView e escolher a opção Web Applications.
  2. Seremos redirecionados para a janela de gravação do navegador, onde podemos escolher vários navegadores e URLs de aplicações. Inserir os detalhes da aplicação e clicar em Record.
  3. Quando a gravação estiver pronta, podemos navegar na aplicação web como um usuário final faria e o gravador de script ajudará a gerar um script que pode ser reproduzido novamente usando os mesmos passos seguidos por nós.
  4. Podemos configurar atrasos no script criado clicando com o botão direito na última linha do script. Esse atraso ajuda os cenários de teste a esperar pela mídia.
  5. Quando terminarmos, podemos clicar em Create Script e seremos redirecionados para a tela Test Scenario, onde poderemos definir as localizações geográficas necessárias para nosso teste, junto com o número de usuários simultâneos necessários e velocidades de ramp up/ramp down.

 

Streaming Media Web Application

Streaming Media Web Application Recorded Steps

 

 

Conclusão: Como Testar a Carga de Streaming: Servidores, Scripts e Mais

Com a demanda recente por vídeo e mídia streaming ao vivo, e o tráfego por esses meios, isso desafia as indústrias a fornecer o melhor serviço e qualidade para permanecer no negócio. Garantir que estressamos a mídia streaming com antecedência é uma necessidade e não pode ser negligenciada. Vimos um guia passo a passo de como configurar um cenário de teste e executar testes de carga na nossa aplicação de streaming usando LoadView, que oferece suporte amplo para codecs de áudio, vídeo e múltiplos formatos de mídia. Também analisamos abordagens para testar a aplicação conforme a necessidade. LoadView oferece amplo suporte para teste de carga de conteúdo de mídia streaming usando o EveryStep Web Recorder e o teste dedicado com URI de streaming.

Saiba mais sobre teste de carga para sua mídia streaming e inscreva-se para o teste gratuito para obter até 5 testes de carga grátis.