Тестування php-скриптів через curl

Відео: Планування та проектування скриптів. Написання коду. Тестування та налагодження

Тестування PHP-скриптів через cURL

У цій статті я збираюся розповідати про досить складні речі, тому якщо Ви не знаєте PHP на належному рівні, то спочатку почитайте статті по основам PHP. Насправді, матеріал цієї статті не стільки складний в плані коду, скільки він важкий для розуміння того, навіщо це потрібно. Щоб зрозуміти всю важливість написання тестів для PHP-скриптів, потрібно дуже добре розбиратися в програмуванні в цілому і мати пристойний досвід. Якщо це так, то з цієї статті Ви дізнаєтесь, як проводити тестування PHP-коду через cURL.

Перш ніж приступати до тестування PHP-скрипта, необхідно його написати, що ми зараз з Вами і зробимо (файл "script.php"):

lt ;?php
$ a
= $ _POST[`A`] -
$ b
= $ _POST[`B`] -
echo $ a
+ $ b-
?gt;



Ось цей скрипт ми тепер повинні протестувати на коректну роботу. Зараз наше завдання придумати якомога більше тестів, які будуть перевіряти наш скрипт не тільки на загальні випадки, але і на приватні. Ось приблизний варіант скрипта, який буде запускати тестування і виводити його результати:

lt ;?php
function test($ curl, $ post, $ result){
curl_setopt
($ curl, CURLOPT_POSTFIELDS, $ post) -
$ out
= curl_exec($ curl) -
if($ out == $ result) echo "Тест ($ post) пройдено"-
else echo "Тест ($ post) провалився!"-
echo
"
"
-
}
$ start_date
= microtime(true) -
if( $ curl = curl_init()){
curl_setopt
($ curl, CURLOPT_URL,`Http: //temp.local/script.php`) -
curl_setopt
($ curl, CURLOPT_RETURNTRANSFER,true) -
curl_setopt
($ curl, CURLOPT_POST,true) -

test
($ curl,"A = 5b = 8",13) -
test
($ curl,"A = 0b = 0",0) -
test
($ curl,"A = -2b = 2",0) -
test
($ curl,"A = -2.5b = 7.2",4.7) -
test
($ curl,"A = 5",5) -

curl_close
($ curl) -
}
echo
"Час виконання всіх тестів:".(microtime(true)- $ start_date)."Секунди"-
?gt;



Що тут відбувається? По-перше, ми створили функцію "test", Яка приймає ідентифікатор cURL, рядок із запитом і очікуваний результат. У цій функції ми відправляємо POST-запит на наш тестований скрипт, отримуємо від нього відповідь і порівнюємо цей відповідь з очікуваним результатом. Якщо значення збігаються, значить, тест пройдено, якщо немає, то тест провалився. В наведеному вище прикладі видно, що ми запустили 5 різних тестів, які перевіряють наш скрипт з усіх боків. І Ваше завдання полягає в тому, щоб придумувати, як можна більше самих різних варіантів вхідних даних, і перевіряти скрипт на коректність роботи.

Відео: Тестування коду з PHPUnit

Крім тестування результатів PHP-скрипта, ми перевіряємо і його продуктивність. Тому після виконання всіх тестів ми дізнаємося, наскільки швидко працює наш тестований код. Безумовно, цей час приблизно, але тут головне не точний час. Тут важливо розуміти, що код часто потребує рефакторінгу. І після його проведення, треба дивитися, наскільки змінилася продуктивність. І якщо недостатньо добре, то продовжити поліпшення коду далі.

І наостанок поговоримо про сенсі тестування коду. Взагалі кажучи, це відноситься до будь-якої мови, а не тільки до PHP. Фактично, при внесенні будь-яких змін в код, Вам не треба вручну проганяти його на самі різні випадки (а їх буває іноді сотні, а то й тисячі). Ви просто запускаєте Ваш тест і дивіться: чи нічого не зламалося після Ваших змін? Таким чином, написання тестів - це дуже зручно, дуже швидко і дуже якісно! І при проектуванні складних систем без написання тестів не обійтися, інакше можна забути про якість, продуктивності і стабільності.

Поділися в соціальних мережах:

Схожі
Застосування curlЗастосування curl
Відправка cookie через curlВідправка cookie через curl
Відправка get-запитів в curlВідправка get-запитів в curl
Як дізнатися країну по ip-адресою через phpЯк дізнатися країну по ip-адресою через php
Тестування з jаvascriptТестування з jаvascript
Скасування повторної відправки формиСкасування повторної відправки форми
Як відправити referer через curlЯк відправити referer через curl
Написання скриптів на bashНаписання скриптів на bash
Відправка post-запитів через jаvascriptВідправка post-запитів через jаvascript
Вивчаємо sass. Стиль написання коду.Вивчаємо sass. Стиль написання коду.
» » Тестування php-скриптів через curl