Criando testes de carga no Visual Studio (com Selenium)

Olar!

Há algum tempo atrás, no meu trabalho, fiquei responsável por criar testes automatizados e de carga para o sistema que desenvolvemos. Em relação à testes automatizados, eu já tinha alguma ideia de como me virar – apesar de eu (ainda!) não ter nenhum conhecimento formal sobre o assunto. Agora, em relação à testes de carga… o conhecimento era zero mesmo! Eu nem imaginava que fossem possíveis de uma forma tão fácil pelo Visual Studio. E bem… digamos que EU CONSEGUI:

Mas antes de mais nada, para você é que é júnior do júnior e chegou no mundo da TI agora: o que é um teste de carga?

Os testes de carga testam se o aplicativo pode tratar de uma carga especificada de usuários para um determinado cenário e ainda atender à meta de resposta. O aplicativo é executado sob condições normais.

Testes de carga (e testes de estresse) são importantes para garantir que um aplicativo Web seja eficaz e escalonável. – Documentação da Microsoft

Estamos entendidos até aqui? Então bora: vamos montar o seu primeiro teste de carga no Visual Studio!

Continuar lendo Criando testes de carga no Visual Studio (com Selenium)

Testes automatizados com C# e Selenium – parte 2

E aí! Vamos (finalmente!) escrever aquele teste com Selenium!

Oprah com um microfone gritando e apontando para a platéia

🔙 Caso você não tenha visto a parte 1 desse post, com todas as configurações para fazer esse teste, corre lá!

⚠️ Lembrando: estamos criando um projeto de teste solo e vamos testar algo bem básico; no caso, vamos pesquisar algo no Google e conferir se o primeiro resultado vem preenchido. Também quero recordar que estou usando e passando somente os conhecimentos que estão dentro da minha alçada, ou seja: .NET Framework e IEDriver como navegador para o Selenium.

Continuar lendo Testes automatizados com C# e Selenium – parte 2

Testes automatizados com C# e Selenium – parte 1

Quem nunca quis morrer por conta de um sistema legado, que atire a primeira pedra! Esse era exatamente o sentimento que eu tinha há algum tempo, com o atual sistema que trabalho. Ele é um senhorzinho que funciona muitíssimo bem, mas que aos poucos está sendo atualizado e, junto com isso, veio a oportunidade de aplicar alguns testes automatizados nele.

Mas é claro que nada é tão simples assim…

Elmo dando de ombros

Por conta da maneira que ele estava desenvolvido, a única automação de teste possível seria com o Selenium – ou seja, desenvolver um projeto de testes que simulasse o usuário utilizando o sistema e suas inúmeras possibilidades de fluxos. Já é alguma coisa, não?

Eu nunca tinha trabalhado com o Selenium puro, somente com o SpecFlow, que eu vejo como uma ferramenta facilitadora: ele faz com que seja mais fácil incluir a gerência no processo de desenvolvimento de casos de teste, por exemplo.

Dada essa introdução, vim fazer um mini-tutorial (em partes) de como fazer seu primeiro teste automatizado com Selenium e C#!

Continuar lendo Testes automatizados com C# e Selenium – parte 1

Como mudar o número de usuários máximo do seu teste de carga de maneira fácil

Recentemente, fiquei responsável na minha equipe por desenvolver testes automatizados e de carga no sistema. Foi um desafio novo: por mais que eu já tivesse feito alguns testes automatizados antes, começar tudo do zero era algo que eu nunca tinha feito; especialmente os testes de carga, que eu nem sabia que eram possíveis de serem feitos tão fácil pelo Visual Studio.

Depois de desenvolvidos os testes automatizados e criados vários testes de carga diferentes a partir deles (cada um deles com seu próprio .loadtest), foi me pedido uma alteração específica, nos testes de carga que eram executados por tempo: que o número máximo de browsers que fossem abertos fossem 15 (inicialmente foi programado 25).

Já irritada, pensei: vou ter que apagar todos os testes e criar de novo, porque essa é uma das informações que é definida em uma espécie de wizard de criação de testes de carga.

Print screen do wizard de criação de testes de carga do Visual Studio

Mas como eu sou brasileira e não desisto nunca, fui procurar se havia alguma maneira mais fácil de alterar os testes sem precisar apagar tudo e fazer de novo. E existe!

Continuar lendo Como mudar o número de usuários máximo do seu teste de carga de maneira fácil

Detalhes desconhecidos: como recuperar a seção applicationSettings de um arquivo App.config?

Esses dias, enquanto estava configurando um serviço em um dos projetos do trabalho, tive um momento de nervoso porque não fazia a menor ideia de como recuperar um dado da seção applicationSettings, que fica dentro do arquivo App.config.

Explico: trabalhar com os .config da vida não é algo novo para mim; praticamente todos os projetos do meu trabalho tem um. É um arquivinho deveras útil quando precisamos parametrizar certos aspectos do sistema (e não queremos que este seja recompilado para que a parametrização funcione).

Um homem negro digita em um computador enquanto uma fogueira arde ao seu lado.

Porém, eu só havia me deparado com dois cenários esse tempo todo:

1- criar uma seção de appSettings e declarar meus parâmetros ali dentro, com chave e valor:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <appSettings>
      <add key="NomeDoParametro" value="Valor do parâmetro" />
   </appSettings>
</configuration>

E recuperá-los via ConfigurationManager, da biblioteca System.Configuration:

using System.Configuration;

private string _recuperandoParametroArquivoConfig = ConfigurationManager.AppSettings["NomeDoParametro"];

2- criar uma seção relativa à algo específico e ali criar os parâmetros com chave e valor:

<NomeDaSecao>
      <Autenticacao>
         <add key="Username" value="Usuario" />
         <add key="Password" value="SenhaDoUsuario" />
      </Autenticacao>
      <Constantes>
         <add key="Endereco" value="ValorDoEndereco" />
      </Constantes>
</NomeDaSecao>

E recuperá-los com o NameValueCollection e ConfigurationManager:

NameValueCollection Autenticacao = (NameValueCollection)ConfigurationManager.GetSection("NomeDaSecao/Autenticacao");
NameValueCollection Constantes = (NameValueCollection)ConfigurationManager.GetSection("NomeDaSecao/Constantes");

string Url = Constantes.Get("Endereco");

Pois bem, ali estava eu, em um cenário totalmente novo: eu tinha uma tag applicationSettings e precisava do valor que ficava ali dentro dela.

    <applicationSettings>
        <Projeto.Properties.Settings>
            <setting name="NomeDaConfiguracao" serializeAs="String">
                <value>ValorDaConfiguracao</value>
            </setting>
        </Projeto.Properties.Settings>
    </applicationSettings>

Depois de uns 10 segundinhos de nervoso pensando: “como é que eu chego ali?”, fui consultar o Oráculo (Google + Stack Overflow) e a solução é MUITO mais simples do que eu podia imaginar. (Às vezes eu esqueço que o Visual Studio pode facilitar bastante a nossa vida…)

Robert Downey Jr. fazendo sinais de joinha com as mãos.
Continuar lendo Detalhes desconhecidos: como recuperar a seção applicationSettings de um arquivo App.config?