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

, ,
, :
BEGIN
createUserResponse = CREATE USER {"name": "Joe"}
END
- createUserResponse – ,
- CREATE –
- USER – ,
- {"name": "Joe"} –
, -
- ,
, . Create object :

. USER.
, Create, :

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

Add command , :

Create ( , .. ).
CREATE:

, :


.
-
-. , 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
, , , . , General settings Base URLs. Base URL http://56dd9be41097.ngrok.io Choose all:

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

, .
?
, , (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).