Desenvolvimento - ASP. NET

Teste de Performance em Aplicações .NET

Para podermos testar a performance em aplicações desenvolvidas em .Net podemos utilizar a ferramenta ACT. Esta ferramenta do próprio sistema operacional nos possibilita listar alguns pontos importantes para aplicações desenvolvidas em .Net...

por Flavio Goncalves Araujo



Para podermos testar a performance em aplicações desenvolvidas em .Net podemos utilizar a ferramenta ACT. Esta ferramenta do próprio sistema operacional nos possibilita listar alguns pontos importantes para aplicações desenvolvidas em .Net. Como por pool de conexões, Garbage Collection, Estouro de Sessões, como também algumas configurações do próprio Computador/Servidor que já não é o foco desse artigo. Estes testes podem ser representados graficamente e impressos por relatórios.

Opções desejadas deverão ser selecionadas à lista chamada Performance Object, onde cada item da lista mostra uma grande quantidade de opções. Quando escolhida uma opção, basta clicar em Add, que esta será adicionada a caixa de texto Performance counters.

Existem alguns pontos interessantes a serem analisados, como o estouro do pool de conexões, ou seja, se um determinado banco de dados suporta uma determinada quantidade de usuários acessando–o ao mesmo tempo. Para verificar essa opção, basta selecionar em Perfomance Object -> .NET CLR Data.

Quando as opções forem listadas, poderão ser escolhidas, como exemplo:

• SqlClient: Current # connection pools;
• SqlClient Current # pooled or nonpooled connections;
• SqlClient: Current # pooled connections.

Outro ponto que poderá ser verificado é quanto ao espaço que o GC (Garbage Collection) ocupa na memória, prejudicando a aplicação. Basta selecionar Performance Object -> .NET CLR Memory. Na lista, por exemplo, poderão ser selecionadas as seguintes opções:

• # GC Handles;
• % Time in GC.

O estouro de sessões também é outro ponto interessante a ser analisado em uma aplicação Web. Dependendo de quanto tempo a aplicação ficar ociosa, poderá estourar a sessão. Para verificar isso, selecione Performance Object -> ASP.NET Applications e na lista selecione a opção Sessions Timed Out.

A quantidade de Transações Ativas dentro de uma aplicação também é importante, pois podem ser desnecessárias (como por exemplo em uma Consulta), e isso com certeza estará prejudicando a performance e a estalabilidade da aplicação.

Para verificar o número de Transações Ativas dentro de uma aplicação, em Performance counters selecione SQL Servers: Databases. Na lista selecione a opção Active Transactions. Será necessário, neste caso, selecionar um banco de dados (por exemplo Northwind) na lista chamada Select instances from list.

Importante : Essa possibilidade de listar o numero de transações ativas dentro da aplicação serve independente do banco que esteja utilizando. Porém para especificar estas transações dentro do banco de dados, somente utilizando a ferramenta SQL Server.

Existem várias opções dentro de Performance counters que podem ser escolhidas para os testes, estes são apenas alguns exemplos. Se desejar verificar o que significa cada opção, selecione o botão Explain, que exibirá uma breve descrição do que cada uma delas realiza.

Quando selecionadas todas as opções desejadas, basta clicar em Close e estas estarão listadas em Perfomance counters. Nesta tela clique em OK para encerrar as configurações das propriedades (Properties), como mostra a figura.


Agora, todas as propriedades estão ajustadas para a realização de um teste. Para executá–lo, selecione o teste desejado na Tree View, clique com o botão direito e selecione a opção Start Test ou no menu, Actions -> Start Test. A figura mostra como será a tela do teste.




Na tela são mostrados:

• Quanto tempo o teste será executado;
• Quantas requisições são feitas durante o teste;
• Os tipos de erros que podem ser gerados durante o teste (HTTP Errors, DNS Errors e Socket Errors) e que serão mostrados no gráfico;
• O comportamento da aplicação será demonstrado no gráfico.

Se, em qualquer momento, desejar encerrar o teste, basta clicar em Stop Test, mas se o teste for concluído, clique em Close para retornar à tela principal.

Interpretanto os Testes

Para verificar os resultados dos testes, na Tree View, selecione a opção Results. Será mostrada uma tela dos testes realizados, como mostra a figura.



Selecione o teste desejado em Test Runs e visualize os resultados gerados pelo ACT. Em Report, selecione a opção Overview. Em seguida selecione Summary.

Serão mostrados alguns aspectos que foram analisados no teste para a aplicação Web. No topo temos alguns itens de configuração, a saber:

• Test Name (Nome do Teste);
• Test Run Name (Nome do teste que foi executado);
• Test Started (Início do teste);
• Test Duration (Duração do teste);
• Test Iterations (Iterações que tiveram o teste);
• Test Notes.

Logo abaixo é mostrado o gráfico com os possíveis erros gerados durante o teste. Para verificá – los, clique em Show Errors.

As propriedades que são visualizadas (Properties) são aquelas que foram colocadas para a realização do teste (Simultaneous browser connections, test duration).

Em Summary, algo muito importante que deve ser observado é a quantidade de requisições feitas durante o teste (Total number of requests) e o número de conexões/respostas que foram retornadas . (Total number of connections).

Erros Counts mostra a quantidade de erros que foram gerados pelo teste e que podem ser visualizados no gráfico (HTTP, DNS e Socket).

Additional Network Statistics são informações adicionais, onde algumas são interessantes, como:

Number of connections errors;
Number of send errors;
Number of receive errors;
Number of timeout errors.

Response Codes é um dos resultados mais importantes do teste, pois mostra a porcentagem de requisições que obtiveram sucesso dentro da aplicação Web. Existem vários códigos de resposta, mas o que determina o percentual de sucesso da aplicação é o código 200 (The request completed successfully).

A porcentagem ideal, que mostra que a aplicação precisa ser melhorada ou não, será determinada pela quantidade de usuários que acessam a aplicação ao mesmo tempo, o tempo que foi utilizado para o teste, entre outros aspectos, onde cada teste será interpretado de uma forma diferente.

A figura a seguir mostra um exemplo de um teste realizado em Report Overview, Summary.

Flavio Goncalves Araujo

Flavio Goncalves Araujo - MCP pela Microsoft em .Net . Bacharel em Sistemas de Informação .Atualmente trabalhando como Analista de Sistemas no Banco Triângulo S/A , desenvolvendo aplicações web utilizando tecnologia .net , com conhecimento e experiência nas tecnologias da Sybase e Oracle. Colunista do Site Linha de Codigo , DevMedia e MSDN.