Нам нужно быть уверенными что при каждом пуше у нас не сломается вся инфраструктура, сможешь сделать? -Легко!
Знакомьтесь eXo-Test. Небольшой php-cli класс с которым проводить тесты это действительно просто.
или тут
composer require overvoidjs/exotest:dev-master
<?php include_once 'vendor/autoload.php';
Предположим Вам нужно проверить доступность страниц и валидность контента на нем, например удостовериться что в каталоге есть товары. Нет ничего проще:
<?php include_once 'vendor/autoload.php';$i = new Exo;$url = 'http://localhost:7888/catalog/instrumentyi/';$i->is_ok($url, '<div class="product-card-name">');
Теперь просто запустите созданный Вами скрипт из консоли:
php test.php
Вам прилетит отбивка:
1) Успех:
2) Статус ответа 200(Ок), но контент не найден
3) Статус ответа не 200
Статусы ответа это хорошо, но теперь перед нами встает задача проверить функциональность системы. Опять же просто добавьте воды!
Тут мы проверяем добавление товара в корзину:
$payload = [ 'product_id'=>'3401', 'count'=>'1'];@$cart_id = $i->post_it('http://localhost:7888/api/cart/add',$payload);if(is_int($cart_id)){ echo "API Добавления в корзину ... Ok \n";} else { echo "API Добавления в корзину ... FAIL \n";}
echo "API Добавления в корзину ... \033[32m Ok\033[0m \n";
Красным:
echo "API Добавления в корзину ... \033[01;31m FAIL\033[0m \n";
Отлично, функционал почти проверили. Почти? Ну почти у любой системы будет API которое работает с файлами загруженными клиентом. Это мы тоже можем протестировать:
//Тут необходим CURL - но думаю он у всех есть$i = new Exo;$url = 'https://site.com/api/sameimg';$payload = [ 'data'=>'data'];$post_file_name = 'new_img';$post_file_path = './new_img.jpg';$test = $i->post_it_file($url,$payload,$post_file_name,$post_file_path);
Тут по заданному адресу будет отправлена POST запросом полезная нагрузка + файл так же как если бы он был добавлен в
input type="file" name="new_img"
Пока что это все. Надеюсь этот инструмент будет полезен в первую очередь тем кто до сих пор не тестирует свой код.