Adicionando novas definições de browser ao Visual Studio Web Performance And Load Test

Se você já usou as ferramentas de Teste Web do Visual Studio Ultimate (Web Performance Test e Load Test), provavelmente já deve ter visto uma caixa de diálogo similar a esta logo acima. Com ela, é possível indicar qual navegador será simulado durante seus testes. Isso é particularmente útil para aplicações Web que tenham renderização condicional – ou seja, que geram HTML específico para um dado browser. Simular vários browsers permite, portanto, exercitar esses vários mecanismos de geração condicional.

O problema

Recentemente, num cliente da Lambda3, tivemos uma demanda específica: rodar um teste de carga que simulasse os seguintes clientes:

  • Internet Explorer 8 no Windows XP;
  • Internet Explorer 9 no Windows 7;
  • Chrome 27 no Linux (Ubuntu); e
  • Chrome 31 no Windows 7.

Olhando para a caixa de diálogo acima, fica óbvio que tínhamos um problema. Mais especificamente com o Chrome. Não havia, entre as opções disponíveis, as versões de Chrome que o cliente precisava.

A solução

Felizmente, resolver isso é bem fácil. Essa lista de browsers é um sub-diretório na pasta de instalação do Visual Studio. Abra o diretório C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Templates\LoadTest\Browsers (“C:\Program Files” num Windows de 32 bits) e você vai encontrar vários arquivos com a extensão .browser, um para cada definição de browser:

Diretório com as definições de browsers

Esses arquivos são meros arquivos XML com a descrição dos browsers. Como era de se esperar, a definição mais importante para nosso caso é a string de user-agent (o cabeçalho HTTP que identifica qual browser está acessando o servidor). Veja, por exemplo, o conteúdo do arquivo Chrome2.browser:

1
<Browser Name="Chrome 2" MaxConnections="6"> <Headers> <Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.1;) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.169.1 Safari/530.1"/> <Header Name="Accept" Value="*/*" /> <Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" /> <Header Name="Accept-Encoding" Value="gzip,deflate" /> <Header Name="Accept-Charset" Value="ISO-8859-1,*,utf-8" /> </Headers> </Browser>

DICA: Para descobrir qual a string de user-agent eu devia usar para as duas versões de Chrome, consultei a lista presente no site UserAgentStrings.com.

Agora, o resto foi fácil. Criei duas cópias do arquivo Chrome2.browser (que usei como referência) e salvei-as, respectivamente, como Chrome27-Linux.browser e Chrome31.browser.

Chrome 27 no Linux (Ubuntu)

1
<Browser Name="Chrome 27 (Ubuntu 13.10)" MaxConnections="6"> <Headers> <Header Name="User-Agent" Value="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu/13.10 Chromium/27.0.1453.93 Chrome/27.0.1453.93 Safari/537.36"/> <Header Name="Accept" Value="*/*" /> <Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" /> <Header Name="Accept-Encoding" Value="gzip,deflate" /> <Header Name="Accept-Charset" Value="ISO-8859-1,*,utf-8" /> </Headers> </Browser>

Chrome 31 no Windows 7

1
<Browser Name="Chrome 31 (Windows 7)" MaxConnections="6"> <Headers> <Header Name="User-Agent" Value="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1623.0 Safari/537.36"/> <Header Name="Accept" Value="*/*" /> <Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" /> <Header Name="Accept-Encoding" Value="gzip,deflate" /> <Header Name="Accept-Charset" Value="ISO-8859-1,*,utf-8" /> </Headers> </Browser>

Se o Visual Studio estiver aberto, não esqueça de reiniciá-lo. Agora, temos duas novas opções de navegadores para uso no Web Performance Test e no Load Test:

Caixa de diãlogo de seleção de browsers com as novas opções

Um abraço,
Igor



04/02/2014 | Por Igor Abade V. Leite | Em Técnico | Tempo de leitura: 2 mins.

Postagens relacionadas