【PHP學習筆記】一個基於PHP的簡版後臺HTTP介面測試案例
阿新 • • 發佈:2019-01-05
專案越寫越大,多多少少會有點不敢運行了,就像下面這幅圖一樣(皮一下^ . ^)
不過還是得硬著頭皮去測試,手動測試?是有點浪費時間了,,在此分享一個自動測試的小指令碼,僅供參考。
公共方法
<?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;
}