الاختبار سهل. أو قصة دراجة واحدة

في أحد الأيام كنت بحاجة لاختبار استجابة الخادم وقررت أن استخدام السكاكين السويسرية الثقيلة مثل PhpUnit كان مرهقًا. كان كل شيء معقدًا بسبب حقيقة أن البنية التحتية تم تقسيمها إلى العديد من الخدمات المصغرة للويب ، والتي بدورها عملت على خلفيات مختلفة (PHP ، NodeJS ، Python ، GO). لذلك قررت رسم فصل دراسي بسيط ، والذي كان مفاجئًا أن اتضح أنه أداة مفيدة جدًا لاختبار قبول النظام.

- نحن بحاجة إلى التأكد من أنه مع كل دفعة لا تنكسر بنيتنا التحتية بالكامل ، هل يمكنك القيام بذلك؟ -سهل!


تعرف على eXo-Test. من السهل حقًا استخدام فئة php-cli لإجراء الاختبارات.



صورة



التركيب
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) نجاح:



صورة



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




رائع ، تم فحص الوظيفة تقريبًا. تقريبا؟ حسنًا ، سيكون لأي نظام تقريبًا واجهة برمجة تطبيقات تعمل مع الملفات التي تم تحميلها بواسطة العميل. يمكننا اختبار هذا أيضًا:




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




هذا كل شئ حتى الان. آمل أن تكون هذه الأداة مفيدة ، أولاً وقبل كل شيء ، لأولئك الذين ما زالوا لا يختبرون الكود الخاص بهم.



All Articles