Simular uma request com HttpSimulator

De uns tempo pra cá, eu assumo que virei uma viciadinha em testes automatizados (estou atrasada nessa tendência, eu sei). Sempre que eu tenho a oportunidade de colocar um projetinho de testes em algum lugar, eu ponho, e cada dia aprendo um pouquinho mais e melhoro minha técnica. Esses dias, encontrei um empecilho no caminho que poderia colocar grande parte dos meus testes em risco, mas felizmente eu rapidinho encontrei uma solução fácil para o meu problema. Hoje, eu queria falar sobre como simular uma request com o HttpSimulator, desenvolvido pelo Phil Haack do You’ve Been Haacked.

As três atrizes do filme "Estrelas além do tempo", uma delas segurando um prêmio e dizendo "These women didn't complain, they focused on solutions"
Essas mulheres não reclamaram, elas focaram em soluções.
Continuar lendo Simular uma request com HttpSimulator

O que é o tipo dynamic?

Trabalhando com alguns projetinhos pessoais, encontrei em diversos locais a sugestão de usar um tal de tipo dinâmico no C#, para recuperar resultados de APIs, por exemplo. Como boa fã de tipagem forte, não botei muita fé, mas acabei usando na resolução de um problema e confesso que, agora, estudando melhor para fazer esse post, até que vi vantagem. No meu post anterior, a última parte de um tutorial sobre Twitter API e C#, eu prometi escrever mais sobre ele, com mais detalhes e embasamento. E aqui está: afinal de contas, o que é o tipo dynamic, no C#?

Uma garotinha loira, de maria chiquinhas, chacoalhando a cabeça com os braços levantados.
Onde vive? Do que se alimenta? Hoje, no Olivia Repórter!
Continuar lendo O que é o tipo dynamic?

Twitter API e C#: um tutorial – parte 3

E aí, beleza? Essa é a terceira e última parte desse xodózinho que eu tenho escrito: um tutorial de como fazer uma aplicação simples com a Twitter API e C#. Na parte 1, criamos nossa app na Twitter e pegamos as chaves de consumo que precisávamos e na parte 2 salvamos nossas chaves em um XML no projeto e fizemos a classe de autorização. Vamos finalizar, pegando os tweets e mostrando-os no nosso Console?

Um homem está sentado na frente do PC coçando o queixo enquanto a frase "I am a programming god!" aparece.
Eu sou um deus da programação!
Continuar lendo Twitter API e C#: um tutorial – parte 3

Twitter API e C#: um tutorial – parte 2

Oi! Seja bem vindo à segunda parte do meu singelo tutorial de como fazer uma aplicação simples com a Twitter API e C#. Na parte 1 nós criamos a nossa app no Twitter for Developers e pegamos as consumers keys que vamos precisar para conectar a nossa aplicação ao Twitter. Agora vamos de fato iniciar a programação do nosso sisteminha! Bora codar juntos?

Um gatinho bate com as patinhas freneticamente em um computador, como se estivesse digitando.
Continuar lendo Twitter API e C#: um tutorial – parte 2

Twitter API e C#: um tutorial – parte 1

Quando eu decidi fazer o bot da Pepita, percebi que não seria possível pegar os stories dela no Instagram, como eu queria desde o começo. Além disso, a API do Instagram também não me parecia muito amigável, o que me fez desistir dela bem rápido. Em compensação, encontrei muito material sobre a API e os Apps do Twitter e percebi que ali as coisas pareciam fluir muito mais fácil. Decidi ir por esse caminho e me dei bem! Por isso, decidi trazer para vocês (e também documentar para um uso futuro hehe) como fazer uma aplicação simples com a API do Twitter e C#! #bembackendela🙆

Dois logos do Twitter "conversando" entre si
Continuar lendo Twitter API e C#: um tutorial – parte 1

Um novo projeto pessoal: o Hey, Pepita bot!

Desde o começo do ano, eu estava com alguns dias de férias marcados agora em Julho. Altas expectativas, viagens planejadas, meus pais viriam me visitar… mas o Covid-19 decidiu estragar tudo. 😢 Conclusão: as férias chegaram e eu fiquei em casa. Decidi fazer o quê? Primeiro, dar uma descansada, porque eu não sou de ferro. 😆 Depois, decidi sentar e finalizar um projeto pessoal que eu estava muitíssimo empolgada quando comecei e depois acabou ficando um pouco de lado por conta da correria da vida: o bot Hey, Pepita no Telegram!

Kermit, o sapo, comemorando sentado em cima de uma escrivaninha.
Continuar lendo Um novo projeto pessoal: o Hey, Pepita bot!

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)

Como converter timestamp Unix para DateTime?

Estou desenvolvendo um projeto pessoal que, entre outras coisas, envolve um bot do Telegram. E, na hora de pegar os updates desse bot, me deparei com o seguinte retorno para um campo de data: Date the message was sent in Unix time. Na hora, não dei muita atenção. Mas quando efetivamente estava desenvolvendo e encontrei com um int ENORME na resposta da request que eu fiz, fui lá procurar o que era esse tal de Unix timestamp e como convertê-lo para um DateTime.

Um pug olhando para trás com cara de "WTF"
Continuar lendo Como converter timestamp Unix para DateTime?

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