O projeto foi lançado para executar testes de aceitação

Olá a todos, hoje tenho uma boa notícia: saiu a versão beta do at2k , projeto de gerenciamento e execução de testes de aceitação de web services. Vamos dar uma olhada em seus principais recursos, que você também pode conferir aqui .



Introdução



AT2K é um projeto de código aberto escrito em Golang (para a linguagem de backend) e Angular (para o lado do cliente). A ideia e o objetivo principais são permitir que os usuários (programadores, engenheiros de controle de qualidade e possivelmente gerentes) escrevam e executem testes em uma linguagem próxima à sua área de assunto.



Alguns exemplos



Antes de começarmos a examinar a IU e as várias opções para personalizar testes, deixe-me mostrar um exemplo de serviço que deve ser testado e testado diretamente.



Portanto, a implementação do serviço (node.js):



import express from 'express';
import uuid4 from 'uuid4';

const app = express();
const users = express.Router();
const port = process.env.PORT || 4444;
let usersRepository = [];

app.use(express.json());
app.use('/api/v1/user', users);

function resetRepository() {
  usersRepository = [
    {hash: uuid4(), name: 'John'},
    {hash: uuid4(), name: 'Nick'}
  ];
}

users.get('/:hash', (req, res) => {
  const user = usersRepository.find(u => u.hash === req.params.hash);

  if (user) {
    res.status(200).send({
      status: 'ok',
      data: user
    });
  } else {
    res.status(200).send({
      status: 'error',
      data: 'user-not-found'
    });
  }
});

users.post('/', (req, res) => {
  const { name } = req.body;
  const hash = uuid4();

  usersRepository.push({
    hash, name
  });
  res.status(200).send({status: 'ok', hash});
});

app.listen(port, () => {
  resetRepository();
  console.log(`Stub AT2K is available on localhost:${port}`);
});


Sem mais delongas, aqui estão alguns testes:



BEGIN
    createUserResponse = CREATE USER {"name": "Joe"}

    ASSERT createUserResponse.status EQUALS ok

    userResponse = GET USER ${createUserResponse.hash}

    ASSERT userResponse.status EQUALS ok
    ASSERT userResponse.data.name EQUALS Joe
    ASSERT userResponse.data.hash EQUALS ${createUserResponse.hash}
END

BEGIN
    userResponse = GET USER not-exists-hash

    ASSERT userResponse.status EQUALS error
    ASSERT userResponse.data EQUALS user-not-found
END


Como você pode ver, tudo é muito simples.



Por onde começar



Para começar, precisamos criar uma conta seguindo o link e inserindo o nome de usuário e a senha que desejamos usar.



.



, ,

- ( ):



imagem



, ,

, :



BEGIN
  createUserResponse = CREATE USER {"name": "Joe"}
END




  • createUserResponse – ,

  • CREATE –
  • USER – ,
  • {"name": "Joe"} –


, -



  1. ,




, . Create object :



imagem



. USER.



, Create, :



imagem



, 2 – GET CREATE. GET. (. ) :



imagem



Add command , :



imagem



Create ( , .. ).



CREATE:



imagem



, :



imagem



imagem



.



-



-. , ngrok.



node.js:



mkdir at2k-stub && cd at2k-stub
npm init -y
npm i express uuid4
touch index.js


index.js



node .


ngrok, - :



ngrok http 4444


http://56dd9be41097.ngrok.io



, , , . , General settings Base URLs. Base URL http://56dd9be41097.ngrok.io Choose all:



imagem



Update .





, 1 – . (, get_create_tests.txt) . , Run tests, Tests file , . Run tests , , :



imagem



, .



?



, , (USER), , .





Quaisquer sugestões para melhorar o projeto são bem-vindas - estou aqui para obter feedback.



Se alguém decidir estudar o código no repositório e sugerir melhorias ou comentários, também ficarei feliz (melhor no carrinho - @ilyaWD).




All Articles