文件
mashangyoujiu/_ai_archive/scripts/test_update_rider_api.php

234 行
6.7 KiB
PHP

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
/**
* updateRider接口测试脚本
* 测试 /Retail/Rider/updateRider 接口的各种情况
*/
// 测试配置
$base_url = 'http://localhost/mss.nahaichuan.com'; // 根据实际情况修改
$test_rider_id = 1; // 测试用的骑手ID,请根据实际数据修改
echo "=== updateRider接口测试 ===\n\n";
/**
* 发送POST请求
*/
function sendPostRequest($url, $data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
'User-Agent: UpdateRider-Test-Script/1.0'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
return ['error' => $error, 'http_code' => $httpCode];
}
return ['response' => $response, 'http_code' => $httpCode];
}
/**
* 测试用例1:正常更新骑手基本信息
*/
echo "测试1:正常更新骑手基本信息\n";
echo "----------------------------------------\n";
$test_data = [
'rider_id' => $test_rider_id,
'rider_name' => '张三测试',
'rider_phone' => '13800138001',
'emergency_name' => '李四',
'emergency_phone' => '13900139001',
'emergency_relation' => '父亲',
'work_status' => 1,
'status' => 1
];
$result = sendPostRequest($base_url . '/index.php/Retail/Rider/updateRider', $test_data);
if (isset($result['error'])) {
echo "请求错误: " . $result['error'] . "\n";
} else {
echo "HTTP状态码: " . $result['http_code'] . "\n";
echo "响应内容: " . $result['response'] . "\n";
$response_data = json_decode($result['response'], true);
if ($response_data) {
echo "解析结果: \n";
echo "- 状态: " . ($response_data['status'] ? '成功' : '失败') . "\n";
echo "- 消息: " . $response_data['msg'] . "\n";
if (isset($response_data['data'])) {
echo "- 更新字段: " . implode(', ', $response_data['data']['updated_fields']) . "\n";
}
}
}
echo "\n";
/**
* 测试用例2:参数验证 - 缺少rider_id
*/
echo "测试2:参数验证 - 缺少rider_id\n";
echo "----------------------------------------\n";
$test_data = [
'rider_name' => '测试骑手'
];
$result = sendPostRequest($base_url . '/index.php/Retail/Rider/updateRider', $test_data);
if (isset($result['error'])) {
echo "请求错误: " . $result['error'] . "\n";
} else {
echo "HTTP状态码: " . $result['http_code'] . "\n";
echo "响应内容: " . $result['response'] . "\n";
}
echo "\n";
/**
* 测试用例3:数据验证 - 手机号格式错误
*/
echo "测试3:数据验证 - 手机号格式错误\n";
echo "----------------------------------------\n";
$test_data = [
'rider_id' => $test_rider_id,
'rider_phone' => '12345678901' // 错误的手机号格式
];
$result = sendPostRequest($base_url . '/index.php/Retail/Rider/updateRider', $test_data);
if (isset($result['error'])) {
echo "请求错误: " . $result['error'] . "\n";
} else {
echo "HTTP状态码: " . $result['http_code'] . "\n";
echo "响应内容: " . $result['response'] . "\n";
}
echo "\n";
/**
* 测试用例4:数据验证 - 身份证号格式错误
*/
echo "测试4:数据验证 - 身份证号格式错误\n";
echo "----------------------------------------\n";
$test_data = [
'rider_id' => $test_rider_id,
'id_card' => '123456789012345678' // 错误的身份证号格式
];
$result = sendPostRequest($base_url . '/index.php/Retail/Rider/updateRider', $test_data);
if (isset($result['error'])) {
echo "请求错误: " . $result['error'] . "\n";
} else {
echo "HTTP状态码: " . $result['http_code'] . "\n";
echo "响应内容: " . $result['response'] . "\n";
}
echo "\n";
/**
* 测试用例5:数据验证 - 健康证过期时间为过去时间
*/
echo "测试5:数据验证 - 健康证过期时间为过去时间\n";
echo "----------------------------------------\n";
$test_data = [
'rider_id' => $test_rider_id,
'health_cert_expire' => '2020-01-01' // 过去的时间
];
$result = sendPostRequest($base_url . '/index.php/Retail/Rider/updateRider', $test_data);
if (isset($result['error'])) {
echo "请求错误: " . $result['error'] . "\n";
} else {
echo "HTTP状态码: " . $result['http_code'] . "\n";
echo "响应内容: " . $result['response'] . "\n";
}
echo "\n";
/**
* 测试用例6:位置信息更新
*/
echo "测试6:位置信息更新\n";
echo "----------------------------------------\n";
$test_data = [
'rider_id' => $test_rider_id,
'last_location_lat' => 39.9042,
'last_location_lng' => 116.4074
];
$result = sendPostRequest($base_url . '/index.php/Retail/Rider/updateRider', $test_data);
if (isset($result['error'])) {
echo "请求错误: " . $result['error'] . "\n";
} else {
echo "HTTP状态码: " . $result['http_code'] . "\n";
echo "响应内容: " . $result['response'] . "\n";
}
echo "\n";
/**
* 测试用例7:不存在的骑手ID
*/
echo "测试7:不存在的骑手ID\n";
echo "----------------------------------------\n";
$test_data = [
'rider_id' => 99999, // 不存在的ID
'rider_name' => '测试骑手'
];
$result = sendPostRequest($base_url . '/index.php/Retail/Rider/updateRider', $test_data);
if (isset($result['error'])) {
echo "请求错误: " . $result['error'] . "\n";
} else {
echo "HTTP状态码: " . $result['http_code'] . "\n";
echo "响应内容: " . $result['response'] . "\n";
}
echo "\n";
/**
* 测试用例8:XSS攻击测试
*/
echo "测试8:XSS攻击测试\n";
echo "----------------------------------------\n";
$test_data = [
'rider_id' => $test_rider_id,
'rider_name' => '<script>alert("xss")</script>',
'emergency_name' => '<img src=x onerror=alert(1)>'
];
$result = sendPostRequest($base_url . '/index.php/Retail/Rider/updateRider', $test_data);
if (isset($result['error'])) {
echo "请求错误: " . $result['error'] . "\n";
} else {
echo "HTTP状态码: " . $result['http_code'] . "\n";
echo "响应内容: " . $result['response'] . "\n";
}
echo "\n";
echo "=== 测试完成 ===\n";
echo "\n使用说明:\n";
echo "1. 请根据实际情况修改 \$base_url 和 \$test_rider_id\n";
echo "2. 确保数据库中存在对应的骑手记录\n";
echo "3. 如果测试失败,请检查:\n";
echo " - 数据库连接是否正常\n";
echo " - 相关Model类是否存在\n";
echo " - 权限验证是否通过\n";
echo " - 日志文件中的错误信息\n";
?>