Русский
Русский
English
Статистика
Реклама

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

Однажды мне нужно было протестировать ответ сервера и я решил что использовать для этого тяжеловесные швейцарские ножи вроде PhpUnit обременительно. Осложнялось все тем что инфраструктура была разбита на множество веб-микросервисов, которые в свою очередь работали на разных бэкендах(PHP, NodeJS, Python, GO). Посему я решил набросать простой класс, который на удивление оказался очень удобным инструментом для приемочного тестирования системы.
Нам нужно быть уверенными что при каждом пуше у нас не сломается вся инфраструктура, сможешь сделать? -Легко!

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

image

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

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) Успех:

image

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

image

3) Статус ответа не 200

image

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

Тут мы проверяем добавление товара в корзину:

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


Пока что это все. Надеюсь этот инструмент будет полезен в первую очередь тем кто до сих пор не тестирует свой код.
Источник: habr.com
К списку статей
Опубликовано: 20.08.2020 20:06:34
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Open source

Тестирование it-систем

Php

Тестирование веб-сервисов

Testing tools

Testing

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru