Hola a todos, hoy tengo una buena noticia: ya está disponible una versión beta de at2k , un proyecto para administrar y ejecutar pruebas de aceptación para servicios web. Echemos un vistazo a sus principales características, que también puedes consultar aquí .
Introducción
AT2K es un proyecto de código abierto escrito en Golang (para el lenguaje de backend) y Angular (para el lado del cliente). La idea principal y el objetivo es permitir que los usuarios (programadores, ingenieros de control de calidad y posiblemente administradores) escriban y ejecuten pruebas en un idioma cercano a su área temática.
Un par de ejemplos
Antes de comenzar a ver la interfaz de usuario y las diversas opciones para personalizar las pruebas, permítame mostrarle un ejemplo de un servicio que se supone que debe probarse y probarse directamente.
Entonces, la implementación del servicio (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}`);
});
Sin más preámbulos, aquí hay un par de pruebas:
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 puede ver, todo es bastante simple.
Dónde empezar
Para comenzar, debemos crear una cuenta siguiendo el enlace e ingresando el nombre de usuario y la contraseña que queremos usar.
.
, ,
- ( ):
, ,
, :
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), , .
Cualquier sugerencia para mejorar el proyecto es bienvenida. Estoy aquí para recibir comentarios.
Si alguien decide estudiar el código en el repositorio y sugerir mejoras o comentarios, también estaré contento (mejor en el carrito - @ilyaWD).