Pengujian itu mudah. Atau cerita tentang satu sepeda

Suatu kali saya perlu menguji respons server dan memutuskan bahwa menggunakan pisau Swiss kelas berat seperti PhpUnit untuk ini tidak praktis. Semuanya dipersulit oleh fakta bahwa infrastruktur dipecah menjadi banyak layanan mikro web, yang pada gilirannya bekerja pada backend yang berbeda (PHP, NodeJS, Python, GO). Jadi saya memutuskan untuk membuat sketsa kelas sederhana yang ternyata menjadi alat yang sangat berguna untuk pengujian penerimaan sistem.

- Kami perlu memastikan bahwa dengan setiap dorongan, seluruh infrastruktur kami tidak rusak, dapatkah Anda melakukannya? -Mudah!


Perkenalkan eXo-Test. Sebuah kelas kecil php-cli yang dapat digunakan untuk menjalankan pengujian sangatlah mudah.



gambar



Instalasi
GitHub





composer require overvoidjs/exotest:dev-master


<?php 
include_once 'vendor/autoload.php';




Katakanlah Anda perlu memeriksa ketersediaan halaman dan validitas konten di dalamnya, misalnya, pastikan ada produk di katalog. Tidak bisa lebih mudah:




<?php 
include_once 'vendor/autoload.php';

$i = new Exo;

$url = 'http://localhost:7888/catalog/instrumentyi/';

$i->is_ok($url, '<div class="product-card-name">');


Sekarang jalankan saja skrip yang Anda buat dari konsol:



php test.php


Anda akan menerima pesan:



1) Berhasil:



gambar



2) Status respon adalah 200 (Ok), tetapi konten tidak ditemukan



gambar



3) Status respon tidak 200



gambar



Status respon baik, tetapi sekarang kita dihadapkan pada tugas untuk memeriksa fungsionalitas sistem. Sekali lagi - tambahkan saja air!



Di sini kami memeriksa penambahan item ke keranjang:




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


Menyoroti jawaban
:




echo "API    ... \033[32m Ok\033[0m \n";


:


echo "API    ... \033[01;31m FAIL\033[0m \n";




Bagus, fungsinya hampir diperiksa. Hampir? Hampir semua sistem akan memiliki API yang bekerja dengan file yang diunggah oleh klien. Kami juga dapat menguji ini:




//  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);


Di sini, file + payload akan dikirim ke alamat yang ditentukan dengan permintaan POST, sama seperti jika itu ditambahkan ke
 input type="file" name="new_img" 




Itu saja untuk saat ini. Saya harap alat ini bermanfaat, pertama-tama, bagi mereka yang masih belum menguji kode mereka.



All Articles