Giter Site home page Giter Site logo

aws-tests's Introduction

aws-tests

Ferramentas de testes relacionados aos serviços da AWS usadas pela itexto

Escrevendo seus testes

O primeiro passo consiste em criar sua suite de testes, que é um arquivo no formato XML. Atualmente temos apenas quatro tipos de testes envolvendo os serviços S3 e SQS, no entanto a idéia é ir aumentando a variedade dos testes conforme nossas necessidades demandem.

Nota importante: neste primeiro release não estamos incluindo no repositório nossos testes automatizados.

Formato do arquivo

Todos os testes encontram-se contidos na tag . Atualmente fornecemos testes apenas para os serviços S3 e SQS.

Tags de testes

A tag que usamos para definir nossos testes é <test>, que possuí os atributos a seguir:

  • type - O tipo de teste a ser executado. Atualmente há apenas SQSTest e S3Test
  • id - O nome do teste
  • endpoint - Opcional, aponta para a URL do endpoint caso esteja usando alguma ferramenta como ElasticMQ ou S3Ninja

Para todos os testes você também deve definir suas credenciais de acesso. Para tal usamos a tag que possuí dois atributos:

  • accessKey - Seu access key da AWS
  • secretKey - Seu secret key da AWS

S3 - Simple Storage Service

Duas tags fundamentais: e . A primeira define qual o bucket que iremos testar, e a segunda o que desejamos verificar.

Tag possuí dois atributos:

  • name - O nome do bucket
  • region - Em que região o bucket se encontra

Tag Já contém alguns atributos a mais:

  • type - Qual o tipo de teste? Valores disponíveis: get|put
  • key - Qual o identificador do conteúdo no bucket?
  • file - Opcional: para quando estamos submetendo um arquivo para o bucket. Diz o nome deste arquivo, que pode ser o caminho completo ou relativo ao diretório no qual o usuário se encontra no momento.

O corpo da tag coresponde ao conteúdo que iremos validar em nossos testes.

Exemplos:

Verificando a submissão de um arquivo para o S3

<test type="S3Test" id="Send file to S3">
        <bucket name="itexto" region="us-east-1"/>
        <credentials 
            accessKey="access key" 
            secretKey="secret key "/>
        <action type="put" key="itexto-key-test-file" file="input.txt"/>
    </test>

Verificando se um arquivo que submetemos para o S3 possuí o conteúdo esperado

  <test type="S3Test" id="Get file from S3">
        <bucket name="itexto" region="us-east-1"/>
        <credentials 
            accessKey="access key" 
            secretKey="secret key"/>
        <action type="get" key="itexto-key-test-file">test</action>
    </test>

SQS - Simple Queue Service

Duas tags fundamentais: e . Vamos primeiro à tag que possuí dois atributos:

  • name - O nome da fila
  • region - A região na qual a fila se encontra

Já a tag define quais os testes que executaremos. Esta possuí os seguintes atributos:

  • type - Qual teste a ser executado? Opções: publish|receive

O corpo da tag corresponde ao conteúdo que desejamos publicar ou receber em nosso teste.

Exemplo: testando o envio de mensagens

<test type="SQSTest" id="Publish message in SQS">
        <queue name="itexto" region="us-east-1"/>
        <credentials 
            accessKey="access key" 
            secretKey="secret key"/>
        <action type="publish">testData</action>
    </test>

Exemplo: checando o recebimento de mensagens

<test type="SQSTest" id="Receive message stored in SQS">
        <queue name="itexto" region="us-east-1"/>
        <credentials 
            accessKey="access key" 
            secretKey="secret key"/>
        <action type="receive">testData</action>
    </test>

Exemplo de uma suite completa de testes

<?xml version="1.0" encoding="UTF-8"?>
<aws-tests>
    
    <test type="SQSTest" id="Publish message in SQS">
        <queue name="itexto" region="us-east-1" endpoint="sqs.us-east-1.amazonaws.com"/>
        <credentials 
            accessKey="access key" 
            secretKey="secret key"/>
        <action type="publish">testData</action>
    </test>
    
    <test type="SQSTest" id="Receive message from SQS">
        <queue name="itexto" region="us-east-1"/>
        <credentials 
            accessKey="access key" 
            secretKey="secret key"/>
        <action type="receive">testData</action>
    </test>
    
    <test type="S3Test" id="Send file to S3">
        <bucket name="itexto" region="us-east-1"/>
        <credentials 
            accessKey="access key" 
            secretKey="secret key"/>
        <action type="put" key="itexto-key-test-file" file="input.txt"/>
    </test>
    
    <test type="S3Test" id="Get file from S3">
        <bucket name="itexto" region="us-east-1"/>
        <credentials 
            accessKey="access key" 
            secretKey="secret key"/>
        <action type="get" key="itexto-key-test-file">test</action>
    </test>
</aws-tests>

Construindo o projeto

Faça o clone deste repositório e construa o projeto usando Maven com o comando abaixo:

mvn package

Será gerado um arquivo JAR no diretório target que consiste no binário da aplicação.

Como executar o S3-tests da itexto

Com Java instalado (1.7 ou posterior) execute o comando abaixo:

  java -jar aws-tests-[versão].jar [arquivo de testes.xml]
´´´

O resultado será exposto no console.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.