【PHP学习笔记】一个基于PHP的简版后台HTTP接口测试案例

版权声明:本文为博主原创文章,转载请注明出处!!!(●'◡'●) https://blog.csdn.net/Small_Mouse0/article/details/85843769

项目越写越大,多多少少会有点不敢运行了,就像下面这幅图一样(皮一下^ . ^)在这里插入图片描述

不过还是得硬着头皮去测试,手动测试?是有点浪费时间了,,在此分享一个自动测试的小脚本,仅供参考

公共方法

<?php
/**
 * Created by PhpStorm.
 * User: xianyu
 * Date: 2019/1/5
 * Time: 11:10
 */

/**
 * 模拟post进行url请求
 * @param $url
 * @param $data
 * @return bool|string
 */
function request_post($url, $data)
{
    $postdata = $data;
    $opts = array('http' =>
        array(
            'method' => 'POST',
            'header' => 'Content-type: application/json',
            'content' => $postdata
        )
    );

    $context = stream_context_create($opts);
    $result = file_get_contents($url, false, $context);
    return $result;
}

/**
 * @param $info
 * @return string
 * 数据加密
 */
function encryption($info)
{
    if (empty($info)) return "";
    $info = is_string($info) ? $info : json_encode($info);
    return $info;
}

function checkResult($responseStr, $code)
{
    $info = json_decode($responseStr, true);
    if (!isset($info['code']) || $info['code'] != $code) return false;
    return true;
}

配置文件格式参考

<?php
/**
 * Created by PhpStorm.
 * User: xianyu
 * Date: 2019/1/5
 * Time: 11:45
 */

return array(
    "prefix" => "#",
    "suffix" => ".html",
    "tests" => [
        [
            "url" => "aa",
            "param" => ["tocken" => "aa"],
            "code" => 0
        ],
        [
            "url" => "aa",
            "param" => ["tocken" => "aa"],
            "code" => 0
        ]
    ]
);

入口方法

<?php
/**
 * Created by PhpStorm.
 * User: xianyu
 * Date: 2019/1/5
 * Time: 11:14
 */


include_once "common.php";
$conf = include_once "conf.php";
$prefix = $conf['prefix'];
$suffix = $conf['suffix'];

foreach ($conf['tests'] as $key => $test) {
    $url = $prefix . $test['url'] . $suffix;
    $info = $test['param'];
    $responseStr = request_post($url, encryption($info));
    $info = json_encode($info);
    echo "接口:【{$url}】" . PHP_EOL;
    echo "参数:【{$info}】" . PHP_EOL;
    if (checkResult($responseStr, $test['code']))
        echo "测试结果:【OK】";
    else
        echo "测试结果:【error】" . PHP_EOL;

    echo "请求结果:【{$responseStr}】" . PHP_EOL;
}

猜你喜欢

转载自blog.csdn.net/Small_Mouse0/article/details/85843769