линия

Главная

пятница, 11 февраля 2022 г.

Laravel - вывод SQL запроса из конструктора запросов

 Часто работая со сложной логикой построения запроса необходимо посмотреть итоговый SQL запрос. Если на проекте есть веб морда, то это можно легко  посмотреть используя DebugBar, но как быть если у приложения есть только api ? Есть несколько решений: например логировать весь sql запрос. В методе boot класса AppServiceProvider  добавить такой код который записывает все сгенерированные запросы в файл.

----

<?
\DB::listen(function ($query) {
			$log = ["query" => $query->sql, "duration" => $query->time];
			Log::channel('mysql_info')->info(json_encode($log, JSON_UNESCAPED_UNICODE));
		});

---

среда, 9 февраля 2022 г.

Тестирование API через POSTMAN

Недавно я писал API для мобильного приложения на Битрикс. Проект был очень интересный  и разработка шла быстрыми темпами. Сроки , как обычно, поджимали, заказчик стоял  над душой и времени ковыряться в носу (образное выражение) не было совсем. И когда эндпоинтов перевалило за 30  заметил что все чаще и чаще отваливались некоторые методы с ошибкой. Бывало сам замечал, а иногда и  сам заказчик писал мне: у тебя метод возвращает  ошибку. Срочно исправьте. Было решено что то сделать с этими ошибками. Благо, у постмана есть функционал тестирования. Как же я был приятно удивлен тем , что процесс написания тестов очень простой. Радости были полные штаны. Итак, сегодня протестируем апи, в ответе ожидаем статус 200 и еще до кучи проверим тип Content-Type.



понедельник, 7 февраля 2022 г.

Laravel - Dusk регрессионное тестирование оформление заказа

 Тестирование приложения неотъемлемая часть  процесса правильной разработки программного продукта. Сегодня расскажу как легко можно  написать тест оформления заказа. Проект, на котором нужно было написать тест, довольной сложный: фронт на Vue , бек на Laravel . 

Юнит тест для оформления заказа можно  было выполнить на уровне контроллеров, но тогда  ошибки возникающие на фронте не отловишь. Поэтому было решено использовать так называемый регрессионное тестирование.

Для этой задачи прекрасно подойдет Laravel Dusk . Устанавливает сие дело очень просто. Переходите по ссылке для установки:  https://laravel.su/docs/8.x/dusk