Як кажуть по запиту продовжу тему про Ollama та інтеграція в постан)
Запустити Ollama як локальний API це прям просто)
Спочатку треба підняти Ollama в режимі сервісу (він тоді слухає HTTP-запити на localhost:11434).
ollama serve
Потім у вас є REST API, куди можна стукати з Postman чи будь-якого іншого інструмента.
Як базові API-запити до Ollama
Ну спочатку класика перевіряємо, що все працює. У Postman робимо POST:
POST http://localhost:11434/api/generate
Content-Type: application/json
Ну і само Body
{
"model": "llama3.1",
"prompt": "Напиши тест-кейси для API логіну користувача у форматі JSON"
}У відповідь буде щось типу:
{
"response": "{ \"tests\": [ {\"name\": \"Login success\", \"expectedStatus\": 200}, {\"name\": \"Login fail wrong pass\", \"expectedStatus\": 401} ] }"
}Ну і вже по цікавіше це інтеграція в Postman через Pre-request Script
Тут магія. У колекції/запиті в Postman заходимо в Pre-request Script і вставляємо:
pm.sendRequest({
url: 'http://localhost:11434/api/generate',
method: 'POST',
header: {
'Content-Type': 'application/json'
},
body: {
mode: 'raw',
raw: JSON.stringify({
"model": "llama3.1",
"prompt": "Згенеруй JSON з тестами для ендпоінта /login: статуси, позитивний і негативний сценарії"
})
}
}, function (err, res) {
if (!err) {
let aiResponse = res.json().response;
console.log("AI Response:", aiResponse);
pm.variables.set("generatedTests", aiResponse);
}
});Що тут буде відбуватися, перед кожним викликом твого API Postman стукає в Ollama, и сам Ollama генерує тести, а сам результат зберігається у змінну generatedTests.
Як використання в Test Script теж буде.
Тепер у Tests можна брати generatedTests і виконувати:
let tests = JSON.parse(pm.variables.get("generatedTests"));
tests.tests.forEach(t => {
pm.test(t.name, function () {
pm.response.to.have.status(t.expectedStatus);
});
});Тобто Ollama сам придумує асерти, а ти їх юзаєш.
Про автоматизація в CI/CD (Newman) ви спитаєте і вона є)
Колекцію можна запускати через Newman (CLI-ранер Postman):
newman run my_collection.json
А далі додаємо в Jenkins/GitHub Actions, і кожен пуш у репо буде запускати автогенерацію + автотести від Ollama.
Як лайхак від мене, То можна дати Ollama прямий доступ до Swagger/OpenAPI і написати prompt: типо щось "Проаналізуй цей swagger.json і створи повний набір API-тестів у форматі JSON", І він реально згенерить колекцію.
Та в результаті ви отрумуєте,
- Ollama генерує ідеї тестів,
- Postman виконує,
- Newman ганяє в CI/CD,
- QA економить купу часу.
Всім гарного дня
Дуже скоро покажу вам новий проект на Ютуб - який повинен вам зайти я думаю, ще чучуть трошки треба все доробити як надо)
Сильні💙