1. 程式人生 > >【PHP學習筆記】一個基於PHP的簡版後臺HTTP介面測試案例

【PHP學習筆記】一個基於PHP的簡版後臺HTTP介面測試案例

專案越寫越大,多多少少會有點不敢運行了,就像下面這幅圖一樣(皮一下^ . ^)在這裡插入圖片描述

不過還是得硬著頭皮去測試,手動測試?是有點浪費時間了,,在此分享一個自動測試的小指令碼,僅供參考

公共方法

<?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;
}