Você sabe o que é Flutter?

Você sabe o que é Flutter?

Flutter, uma ferramenta de desenvolvimento lançada em maio de 2017, que vem ganhando o mercado de desenvolvimento de aplicativos por agregar grande agilidade no processo de desenvolvimento e atender as mais diversas plataformas de dispositivos.

 

Flutter é um framework criado e mantido pelo Google em projeto com código aberto open source, atualmente (até a data de publicação desta matéria) se encontra na versão 2.0.2 lançada em março de 2021 e utiliza a linguagem Dart como a principal linguagem. Foram anunciadas melhorias para atender as várias plataformas existentes como Android, iOS, Google Fuchsia, Web, Linux, macOS e Windows.

Mas quais os benefícios para meu projeto?

Um dos benefícios é o reaproveitamento de componentes de tela e aplicando técnicas de responsividade de layout conseguimos criar com um único código e aplicar em várias plataformas, poupando tempo e recursos.

Flutter trás desempenho semelhante a aplicações nativas, escritas para Android e/ou iOS.

Principais características:

– Ser uma multiplataforma – com ele, é possível desenvolver aplicações em qualquer sistema operacional (Windows, Linux e MacOS)

– Permite a criação de apps nativos, a partir de um único código-base, nele você desenvolve aplicações nativas para Android e iOS.

– Acesso direto aos recursos nativos do sistema. Uma aplicação criada com Flutter pode ter acesso nativo aos recursos do dispositivo como a câmera, o wi-fi, a memória etc.

Quem está usando?

A adoção da linguagem cresce a cada dia e podemos destacar empresas como Google, Nubank, Sua música, iFood, BMW, Toyota dentre outras. O intuito é agilizar o processo de desenvolvimento que antes precisava ser escrita em linguagens específicas para cada plataforma, gerando custos duplicados, além de necessitar de mais tempo para desenvolvimento.

Quer saber mais como desenvolver o seu aplicativo?

A Dart Digital é especializada em desenvolvimento customizado de software web e aplicativos móveis.
Temos diversos projetos dos nossos clientes publicados na Apple Store e Play Store, projetos utilizando Flutter, React Native, dentre outras tecnologias.

Nossos especialistas estão preparados para orientar e ajudar os nossos clientes a definir a melhor tecnologia para seu projeto, levando em consideração as funcionalidades, desafios presente e futuros do projeto.

Já pensou em desenvolver o seu aplicativo e não sabe como? Fale com a gente e transforme sua ideia em tecnologia.

comercial@dartdigital.com.br

Links :
https://flutter.dev/showcase
https://www.youtube.com/watch?v=IdrCyS7EF8M
https://flutter.dev/
https://github.com/victoroliveira1605/e_commerce_concept

[Como Usar ?] — Sonarcloud

E ai !! Tudo bem ?

Hoje em dia sabemos que independentemente do tamanho da seu equipe a qualidade de código é muito importante.
Então nesse contexto super importante que entra a ferramenta SonarCloud, um serviço em nuvem no qual conseguimos enviar nosso código e colocar regras para detectar problemas na qualidade do código, sendo possível detectar codesmell, bugs, vulnerabilidades e analisar a cobertura de código.

O SonarCloud é gratuito para qualquer repositório público, para repositório privado porém é necessário adquirir uma assinatura paga.
Além disso o SonarCloud consegue analisar mais de 20 linguagens, incluído C#, Java, Python, C/C++ e até JavaScript (Imagina o trabalho para analisar JS, brincadeira galera do front-end ❤)


Para nosso exemplo, subi um repositório no GitHub em .Net Core contendo dois projetos bem simples, um sendo uma API e o outro uma ClassLib, e cada um com seu respectivo teste unitário.
Os dados enviados para o SonarCloud é gerado no build da aplicação, para isso, vamos usar o Dockerfile e gerar uma imagem da aplicação executando o build.
Outro detalhe importante para a cobertura de código (Coverage) é a necessidade de instalar o pacote coverlet.msbuild nos projetos de testes unitários. Não se esqueça ?.

 

Não deixe de conferir o projeto de demonstração no qual uso nesse post no meu Github.


Agora, vamos fazer login no SonarCloud e criar um projeto novo dentro do SonarCloud.
Quando criamos um novo projeto, devemos gravar as credenciais que ele gera para usa-las ao fazer o envio do código para o SonarCloud.
Caso você já tenha uma conta no SonarCloud, e já passou pela configuração do projeto, pode descer até a sessão que começamos a criar nosso Dockerfile que fará o build e o envio para o SonarCloud.

Sem mais delongas, bora colocar a mão na massa ! ?‍♂️


SonarCloud — Configurando sua conta

Faça o login utilizando a conta do seu repositório, no meu caso estou utilizando o GitHub, a seguir verá uma tela igual a essa que está abaixo.

Feito o login utilizando a conta do GitHub, vamos clicar na opção “Import projects from GitHub”, ao fazer isso o SonarCloud vai pedir autorização para acessar sua conta do GitHub.

Basta permitir o acesso a todos os repositórios ou apenas nos que você deseja, e depois clique no botão Install.

No passo seguinte temos que criar uma organização dentro do SonarCloud. Pode escolher qualquer nome seguindo as regrinhas de nomenclatura, porém guarde a Key, pois vamos utilizar ela depois.

Pronto, agora, escolha o plano e clique em “create organization”.

Após criar a organização, o SonarCloud vai listar os repositórios que você tem no seu GitHub, selecione qual você deseja que seja feita a análise.

Pronto, agora sua conta está configurada com um novo projeto.
Após clicar em novo projeto, ou seguir os passos acima, vai aparecer a tela abaixo, basta clicar na opção “manually

Porque a opção Manual ? Pois vamos enviar nosso código para ser analisado na hora do build, no nosso exemplo vamos fazer isso ao criar uma imagem docker da nossa aplicação.

A imagem é um pouco grande, e a visualização não é das melhores, mas nessa tela você deve guardar alguns dados, lembra das credenciais que falei no começo? É agora que elas aparecem, então vamos salvar o sonar.login e todo o texto destacado em cinza em uma notepad para não perder.

Pronto, SonarCloud configurado.


SonarCloud — Build

Agora temos o projeto iniciado no SonarCloud e as credenciais necessárias para envio.
Vamos usar nesse primeiro exemplo as configurações de regra default do SonarCloud, mesmo com as regras default já conseguimos enviar nosso repositório e fazer a primeira análise.

Abaixo conseguimos ver as regras de qualidade default do SonarCloud.

Seguindo as regras default, nosso código precisa ter uma cobertura de código acima de 80%, não podendo ter mais 3% de código duplicado e assim por diante até bater todas as regras listada acima.

Lembrando que para enviar a cobertura de código para o SonarCloud precisamos do pacote msbuild coverlet.msbuild instalado nos projetos de testes unitários.

Bom, agora vamos montar nossa imagem no Docker e fazer o build para envio para o SonarCloud.

Lembrando, o repositório que estou usando já está correto, caso queira basta dá uma olhada nele.
https://github.com/claudiospinelli93/MySonarCloud 

Vamos detalhar os pontos interessantes no arquivo Dockerfile.

FROM mcr.microsoft.com/dotnet/sdk:5.0-alpine AS build
WORKDIR /app

# Step 01 # set sonarcloud variables.
ARG SONAR_PROJECT_KEY=claudiospinelli93_MySonarCloud
ARG SONAR_OGRANIZAION_KEY=claudiospinelli93
ARG SONAR_HOST_URL=https://sonarcloud.io
ARG SONAR_TOKEN=2bb4d49a3db0293ffe40ea0a305dfb4b8877284c

# Step 02 # installs tools to use dotnet-sonnarscanner and reportgenerator.
RUN mkdir -p /usr/share/man/man1
RUN apk update && apk add openjdk11
RUN dotnet tool install --global dotnet-sonarscanner --version 5.0.4
RUN dotnet tool install dotnet-reportgenerator-globaltool --version 4.8.4 --tool-path /tools
ENV PATH="$PATH:/root/.dotnet/tools"

# copy csproj and restore as distinct layers.
COPY MySonarCloud.sln ./
COPY src/ ./src/
COPY test/ ./test/

# copy everything else and build app
RUN dotnet restore MySonarCloud.sln

# Step 03 # run test unit and generates the coverage file.
RUN dotnet test ./test/Api.Test/Api.Test.csproj /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:Exclude="[xunit.*]*%2c[StackExchange.*]*"; exit 0
RUN dotnet test ./test/Service.Test/Service.Test.csproj /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:Exclude="[xunit.*]*%2c[StackExchange.*]*"; exit 0

# Step 04 # run reportgenerator to unify the files and save to the testresult folder.
RUN /tools/reportgenerator MySonarCloud.sln "-reports:./test/Api.Test/coverage.cobertura.xml;./test/Service.Test/coverage.cobertura.xml;" "-targetdir:./testresult" "-reporttypes:SonarQube;"

# finalize the build
RUN dotnet build-server shutdown

# Step 05 # start sonarscanner to send data to sonarcloud.
RUN dotnet sonarscanner begin \
  /k:"$SONAR_PROJECT_KEY" \
  /o:"$SONAR_OGRANIZAION_KEY" \
  /d:sonar.host.url="$SONAR_HOST_URL" \
  /d:sonar.login="$SONAR_TOKEN" \
  /d:sonar.coverageReportPaths=./testresult/SonarQube.xml

RUN dotnet publish -c Release -o out

# Step 06 # end of sonnarscan to send data to sonarcloud.
RUN dotnet sonarscanner end /d:sonar.login="$SONAR_TOKEN"

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS runtime
WORKDIR /app
COPY --from=build /app/testresult ./testresult
COPY --from=build /app/out .

ENTRYPOINT ["dotnet", "Api.dll"]

Vou destacar apenas o que é interessante para a execução do sonar:

# Step 01 # Credencial para login no sonarcloud, pode ser feito passando argumentos no build, porém deixei no arquivo Dockerfile para ficar mais fácil. Essas credenciais são as que pegamos na hora de criar o projeto.

# Step 02 # Instalar ferramenta dotnet-sonnarscaner e reportgenerator na imagem.

# Step 03 # Executar os testes unitários e também gerar um arquivo .xml na raiz de cada projeto de teste unitário de cobertura de código.

# Step 04 # Executar reportgenerator para unificar os xmls gerados pelos testes unitários gerando um arquivo único.

# Step 05 # Iniciar o sonnarscan setando as credenciais de conexão que gravamos no Step 01 no SonarCloud, além disso passamos o arquivo unificado da cobertura de código.

# Step 06 # Finaliza o dotnet scanner.

Agora que entendemos o nosso Dockerfile, vamos executar o build do docker para criar uma image do Dockerfile e consequentemente o build do dotnet.

Pronto nesse momento os dados já foram enviados para o SonarCloud.

Agora se a gente acessar novamente a tela do projeto veremos que o projeto foi analisado mas não passou pelo Quality Gate.

Porém precisamos fazer uma última configuração, escolher qual versão vamos analisar.

Temos três opções.

Previous version: Todo o código enviando anterior mente é considerado novo código.
Number of days: Essa opção faz com que a análise do código seja feita nós últimos X dias.
Specific date: Muito semelhante a opção de cima, porém você escolhe uma data. e tudo que mudou desde da data especificar é feita a analise.

Eu escolhi a opção Previous version, mesmo assim a tela não vai mudar.

Execute novamente o build do Dockerfile, para reenviar os dados para ser processado e validar se passou no Quality Gate.

E no nosso projeto falhou, pois a porcentagem de cobertura de código está abaixo de 80% e nossa manutenção do código está com nota ?.
Agora basta fazer os ajustes necessários no código para atender as regras necessárias e fazer o build novamente que os valores vão ser atualizados.

Pronto, finalizamos o envio para o SonarCloud, simples não é ?
Agora galera não há nada que impeça você de usar essa grande ferramenta que pode ser utilizada inicialmente de graça, podendo levantar pontos de vulnerabilidades, qualidade de código e até de possíveis bugs.

É tudo por hoje, pessoal. Espero que este artigo tenha ajudado você de alguma forma.

Cuidado e boa codificação!


Referências

SonarCloud Documentation
Docker Documentation
Meu GitHub

Apple descontinua funcionalidade de aplicativos híbridos

É hora de atualizar seus aplicativos!

A Apple começou a comunicar via e-mail sobre os aplicativos híbridos que utilizam UIWebView que irá descontinuar a utilização dessa Webview.

Aplicativos novos que utilizam UIWebView baseados em Ionic/Cordova só serão aceitos nas lojas da Apple Store até Abril de 2020, já para aplicativos existentes, será permitido a atualização até Dezembro 2020.

Mas vamos lá, algumas perguntas precisam ser respondidas antes de entrar em pânico.

O que é o UIWebView?

Os aplicativos híbridos como é o caso do Ionic, ao executá-lo em uma plataforma (iOS ou Android) é aberto em algo que chamamos de Webview, onde todos os eventos/interfaces disponíveis para o usuário são de um navegador.

A imagem acima retrata bem a arquitetura do Ionic, onde o desenvolvedor cria as telas, funcionalidades, etc.

Porém há mais ferramentas por baixo disso para fazer o aplicativo funcionar, os plugins nativos do Cordova são responsáveis por fazer a comunicação com os recursos do dispositivo, no caso de hardwares, seja para acessar câmera, verificar permissões, GPS, etc.

Também existe a camada de Webview, que é a responsável por controlar o que está sendo mostrado para o usuário do aplicativo quanto para propagar seus eventos para as camadas de baixo, essa também é uma camada nativa.

Na Apple a classe utilizada para essa camada de Webview é chamada de UIWebView que foi depreciada devido a motivos de “segurança e confiabilidade”.

Para quais tecnologias se aplica?

Basicamente será para aplicativos desenvolvidos em Ionic Cordova, ou qualquer outra tecnologia hibrida que utilize a UIWebView.

Preciso migrar o Ionic para outra tecnologia?

Não, nesse momento só será necessário trocar essa webview por uma que a Apple suporte. A longo prazo não sabemos se a Apple ira descontinuar mais alguma funcionalidade do Ionic/Cordova.

Algumas tecnologias hibridas têm avançado de forma significativa para o desenvolvimento de aplicações mobile, como por exemplo React Native e Flutter e tem acompanhado as mudanças necessárias para atender as exigências da Apple e Android.

 

Quer saber como resolver esse problema ou migrar a tecnologia do seu aplicativo? Entre em contato com a gente que podemos te ajudar.

comercial@dartdigital.com.br

Aplicativos Móveis

Qual a importância dos aplicativos móveis?

Você sabia que atualmente no Brasil existem mais de 234 milhões de linhas habilitadas? Esses dados foram revelados pela Anatel em Agosto de 2018. Isso representa mais de um aparelho por habitante e cada vez mais os usuários buscam facilidades nos aplicativos móveis para facilitar o seu dia a dia, seja com aplicativos de compras online, mobilidade urbana e aplicativos de benefícios como programas de descontos e acúmulos de pontos.

Os usuários de internet estão em movimento estão em movimento e as empresas precisam estar na palma na mão dos seus clientes. A necessidade de alinhar estratégias à conexão constantes dos usuários em seus dispositivos tem se tornado cada vez mais emergentes.

Para que serve os aplicativos móveis?

É infinita as possibilidades da utilização dos aplicativos móveis, além das redes sociais, que são os aplicativos mais utilizados, empresas, como bancos, adotaram essa tecnologia para facilitar a vida dos seus clientes.

As Startups são um exemplo das possibilidades de criação de aplicativos móveis, hoje você consegue alugar um patinete elétrico em algumas partes do mundo, apenas utilizando um aplicativo, onde o usuário poderá encontrar o patinete mais próximo por GPS, desbloquear e sair guiando e será descontado de seu cartão de crédito o valor cobrador por minuto de utilização.

Por que criar um APP para minha empresa?

O desenvolvimento de aplicativos serve para todos os tipos de empresas e tamanho, seja você de pequeno, médio ou grande porte, a implantação de um aplicativo serve para automatização de alguns processos por meio de soluções personalizadas, e de forma individual é possível analisar as necessidades do seu negócio e criar uma solução que automatize os processos que atualmente são realizadas por diversos sistemas, ou controlado por planilhas e até mesmos com controles manuais.

Além disso a criação de uma solução mobile permite estender valor agregado para seu cliente, fornecedores ou para seus colaboradores internos.

Quais as vantagens dos Aplicativos Móveis?

  1. Maior Visibilidade
    • Imagina sua marca ganhando um espaço na tela de um smartphone, você erá lembrado assim que o potencial cliente passar pelo seu aplicativo, o que maximiza sua visibilidade e aumenta as suas chances frente aos concorrentes.
  2. Interatividade e Fidelização de Clientes
    • Apenas ter um aplicativo por si só não é o suficiente, o grande desafio é manter a interatividade com seu potencial cliente, manter um contato direto com os usuários é muito importante para o sucesso do seu aplicativo, você pode utilizar funcionalidades tais como pode saber qual a loja mais próxima ao potencial cliente a partir do GPS, ou até mesmo os pontos de fidelidade pelas compras realizadas ou cupons de desconto.
  3. Relacionamento
    • A personalização do aplicativo com a sua marca permite a criação de relacionamento direto com o cliente, você pode informar o seu cliente sobre o que quiser da sua marca através de notificações push, e disponibilizar informações de sua empresa para que seu cliente não tenha dúvida do que a sua empresa realmente faz, aumentando o seu relacionamento com os clientes.
  4. Fonte de Informações
    • Os aplicativos são uma fonte valiosa de informações, com eles é possível coletar dados dos seus usuários permitindo com que o dano dos aplicativos consigam coletar informações como e-mails para geração de e-mails marketing, idade, localização, hábitos de consumo e outras informações relevantes para cada negócio e conhecer ainda mais os seus clientes.

Se sua empresa ainda não está na “ERA MOBILE” está na hora de começar a planejar os próximos passos para construir o aplicativo personalizado.

A Dart Digital é especialista em desenvolvimento web e mobile nas tecnologias Android e iOS, além de consultoria para elaboração de documentação de levantamento e análise de projetos.

Fale com a gente, mande seu e-mail para contato@dartdigital.com.br

Quer mais? Clique no link para ver o video sobre Desenvolvimento mobile:

 

Imagem Bird – Fonte: Uol Tecnologia – Publicada em 14/06/2018.

https://tecnologia.uol.com.br/noticias/redacao/2018/06/14/patinetes-eletricos-podem-mudar-mobilidade-urbana-mas-apresentam-dilemas.htm

 

Dinamismo com Katalon em testes automatizados

Introdução

O Katalon Studio é uma solução gratuita para testes automatizados de sistemas Web e Mobile, a ferramenta possui uma IDE própria a base da linguagem Java, similar à IDE Eclipse, e faz uso do framework de testes automatizados Selenium, como padrão, o Katalon já possui integração com os drivers dos navegadores mais famosos como Chrome, Firefox, Internet explorer, e também permite o teste em tempo real com um dispositivo mobile. Seu funcionamento apresenta soluções completas, permitindo o envio de e-mails com relatórios precisos de testes, integração com JIRA e Bitbucket, customização de código personalizado internamente com a linguagem Java, uma plataforma online de relatórios analíticos entre outros diversos destaques.

O Katalon é livre para uso comercial e pessoal, a maior parte de suas ferramentas são gratuitas, possuindo apenas algumas vantagens pagas, mas para utilizar o Katalon é obrigatório criar uma conta, ela concede acesso ao programa e também a ferramenta do Katalon Analytics no site oficial.

Usos comuns do Katalon Studio:

  • Testes automatizados com aplicações Web/Mobile
  • Testes de stress
  • Testes de entrada e diversidade de valores, efetuando combinações aleatórias entre os dados informados

Tecnologias inclusas

Java é a linguagem base do Katalon, permitindo o desenvolvimento dos Test Cases tanto em código direto como visualmente através de Keywords.
A IDE é desenvolvida em cima do Eclipse, portanto o suporte para o Katalon requere a JVM como qualquer outra IDE Java.

Como uma alternativa para a linguagem Java, o Katalon aderiu ao Groovy para o desenvolvimento de código personalizado, sendo utilizado para a programação via código direto de Test Cases e a customização de Keywords. Sua sintaxe é similar ao Java, apenas se diferenciando por pequenos detalhes.

Para efetuar o controle remoto do browser, o Katalon desfruta das funcionalidades do Selenium, podendo controlá-lo diretamente através de código. O framework possui suporte para as mais variadas linguagens incluindo o Java, o que abriu portas para a sua utilização no Katalon Studio.

As integrações para o JIRA e o Bitbucket são disponibilizadas livremente dentro da IDE. Também há uma integração gratuita com o Katalon Analytics, oferecida pela própria desenvolvedora do Katalon.

Além das ferramentas para o controle do front-end, o Katalon possui suporte para conexão com os SGBDs mais famosos por padrão para serem utilizados nos seus Checkpoints e Test Datas, suprindo um pouco da necessidade de confirmação de teste via back-end.

Destaques do Katalon

  • Integração com JIRA. A integração com o JIRA permite que tarefas sejam criadas especificamente para os testes automatizados em questão. O Katalon irá subir relatórios detalhados sobre sucessos e falhas referentes ao teste diretamente para a tarefa apontada.
  • Integração com Git/Bitbucket. Para controle de versionamento, o Katalon fornece integração com repositórios Git.
  • Relatórios avançados de testes. Os relatórios do Katalon são extremamente precisos e detalhados, permitindo também uma customização bem ampla para suas informações.
  • Katalon Analytics. Uma das ferramentas disponibilizadas online e gratuitamente pelo Katalon é seu sistema de relatório analítico. O Katalon Analytics armazena dados dos testes efetuados em seus projetos, apresentando relatórios e gráficos com sucessos, falhas, tempos de execução, total de testes, ferramentas de exportação, entre outros.
  • O Katalon Studio possui suporte para as plataformas Mobile e Web. As ferramentas como Spy e Recorder também possuem suporte e podem ser executados livremente em tempo real.
    Como o Katalon continua em desenvolvimento, é possível que mais plataformas venham a ser disponibilizadas no futuro.
  • Para todos. Graças a suas ferramentas de abstração, o Katalon é capaz de ser utilizado por qualquer pessoa que possua conhecimento básico de informática, e até dar abertura para ser perfeitamente customizável por uma pessoa conhecimento avançado sem deixar a desejar.
    Ferramentas como o Recorder são capazes de gravar os passos do usuário em tempo real, reproduzindo-os em forma de código e convertendo em um Test Case, desta maneira não é necessário ter conhecimento em programação para se desenvolver um teste automatizado.
    A demonstração visual dos Test Cases em listas permite o entendimento dos processos sem a necessidade do conhecimento da sintaxe. Já que todos os comandos são demonstrados como Keywords, eles podem ser compreendidos por um usuário com menos conhecimento, também abrindo espaço para pequenas manutenções.

Estrutura dos projetos Katalon

Test Cases

Um Test Case como a própria tradução sugere, é um caso de teste. Apesar de se tratar de um caso, ele não precisa ser necessariamente um caso específico, deixando em aberto a possibilidade de montar qualquer modelo para o projeto de testes.

Object Repository

Os objetos da tela ficam armazenados com dados referentes á sua localização, desta maneira o Katalon pode encontrar o objeto em questão durante um Test Case. É recomendável que os objetos fiquem organizados por página.

Test Suites

Os Test Suites são ambientes para a execução de Test Cases, é possível a utilização de um ou mais Test Cases em sequência, também possibilitando sua integração com Test Datas.
Test Suite Collection
Assim como os Test Suites são conjuntos de Test Cases, os Test Suite Collection são conjuntos de Test Suites, com eles é possível adicionar um ou mais Test Suites, selecionar quais serão executados, qual navegador será utilizado para cada teste e se a execução será sequencial ou paralela, permitindo uma realização de todos os testes de uma única vez.

Data Files

Test cases geram variáveis, e apesar de possuir valores padrão, é muito útil que elas se alterem ao longo da sua reprodução, já que os Test suites permitem um ambiente onde as variáveis possam ser retiradas um arquivo de valores para que possam ser testadas.
Um Test Data é este arquivo em questão. Ele possui uma planilha de dados que serão posteriormente utilizados em um Test Suite, estes dados podem ser escritos manualmente, como também podem ser importados de um arquivo em Excel, CSV ou de uma pesquisa SQL.

Checkpoints

Semelhante ao Test Data, os Checkpoints são uma planilha de dados. Mas seu intuito é serem utilizados para comparação de dados em um Test case, firmando a certeza de valores consistentes e concluindo um teste de sucesso.

Keywords

São linhas de instruções do Katalon para serem utilizadas em Test Cases. Há uma série de Keywords padrão já contidas no Katalon.
Nesta seção é possível criar pacotes e próprias Keywords utilizando o Groovy como linguagem base.

Test Listeners

Para ações que tenham necessidade de serem executadas antes ou depois de iniciar um Test Case ou Test Suite, pode ser criado um Test Listeners para derivar tais funções utilizando o Groovy como linguagem base.

Reports

Toda vez que um Test Suite ou Test Suite Collection é executado, seu relatório é armazenado organizadamente dentro desta pasta.

Profiles

Os perfis são variáveis globais associadas à usuários, por isso são denominados “Perfis”. Para a execução de testes independentes, sempre é utilizado o perfil Default, mas para Test Suite Collections é possível selecionar um perfil específico pra cada execução de Test Suite.

Criando um teste automatizado profissional e dinâmico

O uso da ferramenta Record do Katalon pode auxiliá-lo muito para a montagem de um teste automatizado, mas ao mesmo tempo para um desenvolvedor avançado, ele pode comprometer seu teste á instruções muito objetivas, resultando em um teste pouco flexível e completamente sensível á modificações. Com isso, qualquer pequena modificação pode resultar na necessidade de dar manutenção á todos os testes por coisas extremamente simples.

O mesmo vale para a ferramenta Spy para seleção de objetos, ela necessita de uma atenção extra para quais propriedades são relevantes para a identificação de um objeto. Algumas informações como placeholder ou text são muito voláteis em futuras atualizações, mudando constantemente com uma simples tradução do website por exemplo. O mesmo se aplica a propriedade automática xpath, já que traça o caminho completo do documento até o objeto e qualquer mudança de estrutura no corpo da página faria com que o objeto não fosse encontrado. Informações mais concretas e específicas como id, name, class ou tag são muito mais aplicáveis.

Fazendo um exemplo de teste com Recorder

Como exemplo, montaremos um teste automatizado capaz de acessar a página do www.google.com e efetuar uma pesquisa para “Lorem Ipsum”. O teste deverá clicar na segunda ocorrência de resultado.

Com o Record Web basta inserir a URL desejada e clicar no ícone do navegador, fazendo com que uma página da web seja aberta na URL especificada. Após isso, qualquer ação efetuada neste navegador será registrada como uma instrução (Keyword) do Katalon resultando em um teste automatizado ao fechar a janela.

Obs: Caso o seu Katalon tenha problemas de compatibilidade com o uso de teclas, clique no botão “Pesquisa google” ao invés de apertar a tecla ENTER.

Como resultado, tivemos todos os passos armazenados e ordenados em ordem de entrada.

Número da instrução Ação
1 Abre o navegador
2 Acessa a URL do Google
3 Digita a pesquisa no campo de texto
4 Envia o pressionamento da tecla ENTER
5 Clica no terceiro resultado que aparece na pesquisa
6 Fecha o navegador

Até aí está tudo ok, o teste gerado é capaz de atingir nosso objetivo. A ferramenta Record é muito boa para testes pequenos e objetivos como este, por poupar tempo comparado a montar todas as instruções manualmente, mas como garantimos de que este teste continuará funcionando em futuras atualizações?

A primeira etapa é analisar as propriedades que identificam nossos objetos, para garantir de que eles continuarão sendo identificados com modificações futuras. A segunda etapa é otimizar o caso de teste transformando valores constantes em variáveis do Test Case.

Para a primeira etapa, basta analisar o botão “Show Captured Objects” do Recorder, clicando em cada um dos objetos para visualizar suas propriedades.

O objeto “input_q” utilizado para preencher o texto de pesquisa deverá constar somente com as propriedades mais específicas selecionadas, mesmo que o Katalon nos traga outras propriedades na lista. Propriedades como Tag, Id e Name são suficientes para identificar nosso objeto com bastante especificidade.

Quanto ao link de resultado, temos um problema bem grande. As propriedades href e text estão sendo utilizadas para identificar o objeto, isso quer dizer que o Katalon não está selecionando a segunda ocorrência como foi proposto em nosso caso de teste, e sim aquele link em específico. Ainda que isso resolva o problema do nosso caso de teste, os identificadores são extremamente voláteis, e se futuramente o link em questão vier á mudar de endereço ou o título da página, o nosso teste irá falhar por não conseguir encontrar o objeto especificado.

Isso é um problema muito comum encontrado no desenvolvimento dos testes, como solução, o Katalon fornece a possibilidade de passar parâmetros para os objetos através do caso de teste.

Transformando seu Test Case em um teste profissional e dinâmico

Na propriedade XPath, insira o valor (//h3/a)[position() = ‘${index’}] e ative sua seleção na checkbox. Lembre-se de desativar todas as outras propriedades que não seja a XPath.

Explicando sobre o código informado, (//h3/a) é o caminho que encontrará todos os links (a) dentro de cabeçalhos (h3) dentro do HTML, com isso, iremos selecionar apenas os links do Google que pertencem ao resultado da pesquisa, não correndo risco de selecionar links aleatórios dentro do documento como o link para home na logo, o link para visualizar Imagens, vídeos, etc. Após isso o seletor position() é responsável por retornar apenas um dos links encontrados, no nosso caso, o terceiro link, mas note a presença do ${index} no lugar do respectivo numero “3” que deveríamos informar, essa sintaxe é usada para especificar ao Katalon um parâmetro, nomeada da seguinte maneira ${nomedoparametro}, este parâmetro irá vir como nulo por padrão, por isso devemos acessar o nosso Test Case e informar o parâmetro no objeto alvo da instrução número 5.

Na região de “Object Parameters”, adicione um novo parâmetro chamado “index” com o valor 2, com isso, nosso teste será capaz de ser executado sem erros e completamente dinâmico para que futuras modificações não venham á fazer o teste falhar, Isto conclui a primeira etapa, agora precisamos otimizar nossos valores para que sejam facilmente manipuláveis em casos de teste futuros. Note que o valor “2” que utilizamos no nosso parâmetro é uma constante, também note que a pesquisa “Lorem Ipsum” se trata de uma constante, caso o teste seja extremamente especifico, o uso destas constantes são adequados para atingir as expectativas, mas caso várias pesquisas sejam feitas e cada uma com um link diferente, o ideal será transformar estas constantes em variáveis, evitando assim a necessidade de criar múltiplos testes para cada caso específico.

A aba inferior “Variables” do Test Case pode registrar várias variáveis pro nosso contexto de acordo com a nossa necessidade, é possível adicionar um valor padrão para as variáveis também, evitando a obrigatoriedade de um Test Suite ou Test Data para a execução do Test Case, e também evitando a especificidade de cada variável para cada caso de teste visto que elas já possuem valores por si só. Para o caso desenvolvido, isso iremos adicionar as seguintes variáveis:

Para aplicar as variáveis ao lugar das constantes, basta alterar os valores do parâmetro Input das instruções do Test Case, como no caso da instrução 3 (Set Text):

Irá ser substituída por:

Para os parâmetros de objeto, como no exemplo da instrução 5 (Click), teremos:

Essa modificação nos dará maior liberdade para criar múltiplos testes com valores diferentes, visto que todo o comportamento é padrão. Além de também nos fornecer maior facilidade quanto à manutenção do Test Case.

Para otimizar ainda mais seus testes automatizados, esta prática também lhe dá abertura para usar seu Test Case em um Test Suite, e até mesmo combinando seus valores com um Test Data, desta forma, o Test Case será executado repetidas vezes com valores diferentes, podendo até mesmo combinar seus dados de acordo com sua configuração na integração do Test Suite, abrindo a possibilidade para um Teste de Stress ou Teste de possibilidades com entrada de valores aleatórios.

Exemplo de Test Data com Internal Data

Exemplo de Test Suite integrando o Test Data

Conclusão

O Katalon é uma ferramenta robusta e completa quando falamos de testes automatizados, atendendo à todas as necessidades de aplicações Web e Mobile e apresentando diversos destaques de variadas tecnologias úteis para testes automatizados, com uma grande vantagem de ser gratuito e tendo apenas algumas ferramentas específicas como pagas, possuir alguns pequenos problemas em sua IDE, está em desenvolvimento por sua equipe, oferecendo constantes correções, suporte e melhorias.
A ferramenta não se apresenta complexa, mas atualmente encontra-se poucas informações específicas na internet comparadas a ferramentas maiores, devido á ter uma publicação relativamente recente. Graças ao seu gravador de passos, o Katalon pode ser utilizado por qualquer pessoa que possua conhecimento básico de informática, mas infelizmente sua tecnologia continua precária e se mostra pouco adaptável a mudanças, resultando em testes pouco tolerantes, e com alguns intermitentes bugs, ainda requerendo configurações manuais. Atualmente a estrutura ideal para os projetos encontrada foi da montagem de testes genéricos e manuais, sem o uso do gravador.