Das Projekt wurde freigegeben, um Abnahmetests durchzuführen

Hallo allerseits, heute habe ich gute Nachrichten: Eine Beta-Version von at2k , einem Projekt zum Verwalten und Ausführen von Abnahmetests für Webdienste, ist erschienen. Werfen wir einen Blick auf die Hauptfunktionen, die Sie auch hier überprüfen können .



Einführung



AT2K ist ein Open Source-Projekt, das in Golang (für die Backend-Sprache) und Angular (für die Client-Seite) geschrieben wurde. Die Hauptidee und das Hauptziel besteht darin, Benutzern (Programmierern, QS-Ingenieuren und möglicherweise Managern) das Schreiben und Ausführen von Tests in einer Sprache zu ermöglichen, die ihrem Fachgebiet nahe kommt.



Ein paar Beispiele



Bevor wir uns mit der Benutzeroberfläche und den verschiedenen Optionen zum Anpassen von Tests befassen, möchte ich Ihnen ein Beispiel für einen Dienst zeigen, der getestet und direkt getestet werden soll.



Also die Service-Implementierung (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}`);
});


Hier sind ohne weiteres ein paar 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


Wie Sie sehen können, ist alles ziemlich einfach.



Wo soll ich anfangen?



Um zu beginnen, müssen wir ein Konto erstellen, indem wir dem Link folgen und den Benutzernamen und das Passwort eingeben, die wir verwenden möchten.



.



, ,

- ( ):



Bild



, ,

, :



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




  • createUserResponse – ,

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


, -



  1. ,




, . Create object :



Bild



. USER.



, Create, :



Bild



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



Bild



Add command , :



Bild



Create ( , .. ).



CREATE:



Bild



, :



Bild



Bild



.



-



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



Bild



Update .





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



Bild



, .



?



, , (USER), , .





Vorschläge zur Verbesserung des Projekts sind willkommen - ich bin hier, um Feedback zu erhalten.



Wenn sich jemand entscheidet, den Code im Repository zu studieren und Verbesserungen oder Kommentare vorzuschlagen, bin ich auch glücklich (besser im Warenkorb - @ilyaWD).




All Articles