Le projet a été lancé pour exécuter des tests d'acceptation

Bonjour à tous, aujourd'hui, j'ai une bonne nouvelle: une version bêta de at2k , un projet de gestion et d'exécution de tests d'acceptation pour les services web, est sortie. Jetons un coup d'œil à ses principales fonctionnalités, que vous pouvez également vérifier ici .



introduction



AT2K est un projet open source écrit en Golang (pour le langage backend) et Angular (pour le côté client). L'idée et l'objectif principaux sont de permettre aux utilisateurs (programmeurs, ingénieurs QA et éventuellement responsables) d'écrire et d'exécuter des tests dans un langage proche de leur domaine.



Quelques exemples



Avant de commencer à examiner l'interface utilisateur et les différentes options de personnalisation des tests, permettez-moi de vous montrer un exemple de service censé être testé et testé directement.



Donc, l'implémentation du service (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}`);
});


Sans plus tarder, voici quelques tests:



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


Comme vous pouvez le voir, tout est assez simple.



Où commencer



Pour commencer, nous devons créer un compte en suivant le lien et en entrant le nom d'utilisateur et le mot de passe que nous voulons utiliser.



.



, ,

- ( ):



image



, ,

, :



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




  • createUserResponse – ,

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


, -



  1. ,




, . Create object :



image



. USER.



, Create, :



image



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



image



Add command , :



image



Create ( , .. ).



CREATE:



image



, :



image



image



.



-



-. , 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:



image



Update .





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



image



, .



?



, , (USER), , .





Toutes les suggestions pour améliorer le projet sont les bienvenues - je suis ici pour obtenir des commentaires.



Si quelqu'un décide d'étudier le code dans le référentiel et de suggérer des améliorations ou des commentaires, je serai également heureux (mieux dans le panier - @ilyaWD).




All Articles