234 行
6.7 KiB
PHP
234 行
6.7 KiB
PHP
<?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";
|
||
?>
|