テストは簡単です。または1台の自転車の話

サーバーの応答をテストする必要があり、PhpUnitのような重量のあるスイスのナイフを使用するのは面倒だと判断したことがあります。インフラストラクチャが多くのWebマイクロサービスに分割され、それらがさまざまなバックエンド(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(OK)ですが、コンテンツが見つかりませんでした



画像



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




素晴らしい、機能はほとんどチェックされています。ほぼ?まあ、ほとんどすべてのシステムには、クライアントによってアップロードされたファイルを処理する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" 




それは今のところすべてです。まず第一に、まだコードをテストしていない人にとって、このツールが役立つことを願っています。



All Articles