Files
nxxmdata/government-backend/scripts/testSmartEarmarkAPI.js

129 lines
3.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 测试智能耳标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();