HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
d-shop

НОВОСТИ Тестирование это просто. Или история одного велосипеда

NewsBot
Оффлайн

NewsBot

.
.
Регистрация
21.07.20
Сообщения
40.408
Реакции
1
Репутация
0
Однажды мне нужно было протестировать ответ сервера и я решил что использовать для этого тяжеловесные швейцарские ножи вроде PhpUnit — обременительно. Осложнялось все тем — что инфраструктура была разбита на множество веб-микросервисов, которые в свою очередь работали на разных бэкендах(PHP, NodeJS, Python, GO). Посему я решил набросать простой класс, который на удивление оказался очень удобным инструментом для приемочного тестирования системы.

— Нам нужно быть уверенными что при каждом пуше у нас не сломается вся инфраструктура, сможешь сделать? -Легко!​


Знакомьтесь eXo-Test. Небольшой php-cli класс с которым проводить тесты — это действительно просто.

7ac04042a5ab03ce2f35182a47581783.png


Установка
можно просто почитать на
или тут


composer require overvoidjs/exotest:dev-master


autoload.php';



Предположим Вам нужно проверить доступность страниц и валидность контента на нем, например удостовериться что в каталоге есть товары. Нет ничего проще:


autoload.php';

$i = new Exo;

$url = '

$i->is_ok($url, '
');



Теперь просто запустите созданный Вами скрипт из консоли:

php test.php


Вам прилетит отбивка:
1) Успех:
2e76887679093f516258e612b41ab05a.png

2) Статус ответа 200(Ок), но контент не найден
53a63899d0bd3e7e5f0dd226c1f80160.png

3) Статус ответа не 200
82e128ce6a59376efda3bd4e4ac21418.png


Статусы ответа это хорошо, но теперь перед нами встает задача проверить функциональность системы. Опять же — просто добавьте воды!
Тут мы проверяем добавление товара в корзину:


$payload = [
'product_id'=>'3401',
'count'=>'1'
];

@$cart_id = $i->post_it('

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 = '

$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"


Пока что это все. Надеюсь этот инструмент будет полезен в первую очередь тем — кто до сих пор не тестирует свой код.
 
Сверху Снизу