129 lines
3.6 KiB
JavaScript
129 lines
3.6 KiB
JavaScript
// 测试智能耳标API
|
||
const http = require('http');
|
||
const querystring = require('querystring');
|
||
|
||
// 配置
|
||
const baseUrl = 'localhost';
|
||
const port = 5352;
|
||
const apiPath = '/api/smart-earmark';
|
||
|
||
// 发送HTTP请求的函数
|
||
function sendRequest(method, path, data = null, headers = {}) {
|
||
return new Promise((resolve, reject) => {
|
||
const options = {
|
||
hostname: baseUrl,
|
||
port: port,
|
||
path: path,
|
||
method: method,
|
||
headers: {
|
||
'Content-Type': 'application/json',
|
||
...headers
|
||
}
|
||
};
|
||
|
||
const req = http.request(options, (res) => {
|
||
let data = '';
|
||
|
||
res.on('data', (chunk) => {
|
||
data += chunk;
|
||
});
|
||
|
||
res.on('end', () => {
|
||
resolve({
|
||
statusCode: res.statusCode,
|
||
headers: res.headers,
|
||
data: data ? JSON.parse(data) : null
|
||
});
|
||
});
|
||
});
|
||
|
||
req.on('error', (error) => {
|
||
reject(error);
|
||
});
|
||
|
||
if (data) {
|
||
req.write(JSON.stringify(data));
|
||
}
|
||
|
||
req.end();
|
||
});
|
||
}
|
||
|
||
// 测试函数
|
||
async function runTests() {
|
||
console.log('开始测试智能耳标API...');
|
||
|
||
try {
|
||
// 1. 先登录获取token
|
||
console.log('\n1. 登录获取token...');
|
||
const loginResponse = await sendRequest('POST', '/api/auth/login', {
|
||
username: 'admin',
|
||
password: '123456'
|
||
});
|
||
|
||
console.log('登录响应状态码:', loginResponse.statusCode);
|
||
console.log('登录响应数据:', loginResponse.data);
|
||
|
||
if (loginResponse.statusCode !== 200) {
|
||
console.error('登录失败:', loginResponse);
|
||
process.exit(1);
|
||
}
|
||
|
||
const token = loginResponse.data.data.token;
|
||
console.log('登录成功,获取到token:', token);
|
||
|
||
// 设置Authorization头
|
||
const authHeaders = {
|
||
'Authorization': `Bearer ${token}`
|
||
};
|
||
|
||
// 2. 获取智能耳标列表
|
||
console.log('\n2. 获取智能耳标列表...');
|
||
const listResponse = await sendRequest('GET', `${apiPath}?page=1&pageSize=10`, null, authHeaders);
|
||
console.log('获取列表结果:', listResponse.statusCode);
|
||
console.log('列表数据:', listResponse.data);
|
||
|
||
// 3. 创建新的智能耳标
|
||
console.log('\n3. 创建新的智能耳标...');
|
||
const newEarmark = {
|
||
earmarkId: `EM${Date.now().toString().slice(-4)}`,
|
||
name: '测试智能耳标',
|
||
status: 'inactive',
|
||
battery: 95,
|
||
remark: '这是一个测试耳标'
|
||
};
|
||
|
||
const createResponse = await sendRequest('POST', apiPath, newEarmark, authHeaders);
|
||
console.log('创建结果:', createResponse.statusCode);
|
||
console.log('创建的数据:', createResponse.data);
|
||
|
||
if (createResponse.statusCode === 201 && createResponse.data?.data?.id) {
|
||
const earmarkId = createResponse.data.data.id;
|
||
|
||
// 4. 更新刚刚创建的智能耳标
|
||
console.log('\n4. 更新智能耳标...');
|
||
const updateData = {
|
||
...newEarmark,
|
||
name: '更新后的测试耳标',
|
||
status: 'active'
|
||
};
|
||
|
||
const updateResponse = await sendRequest('PUT', `${apiPath}/${earmarkId}`, updateData, authHeaders);
|
||
console.log('更新结果:', updateResponse.statusCode);
|
||
console.log('更新的数据:', updateResponse.data);
|
||
|
||
// 5. 删除智能耳标
|
||
console.log('\n5. 删除智能耳标...');
|
||
const deleteResponse = await sendRequest('DELETE', `${apiPath}/${earmarkId}`, null, authHeaders);
|
||
console.log('删除结果:', deleteResponse.statusCode);
|
||
console.log('删除响应:', deleteResponse.data);
|
||
}
|
||
|
||
console.log('\n测试完成');
|
||
} catch (error) {
|
||
console.error('测试过程中出错:', error);
|
||
}
|
||
}
|
||
|
||
// 运行测试
|
||
runTests(); |