测试很容易。或一辆自行车的故事

一旦我需要测试服务器响应并决定使用像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(确定),但未找到内容



图片



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,该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