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