173 lines
5.2 KiB
Bash
Executable File
173 lines
5.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# 测试完整工作流程(包含小红书发布)
|
|
|
|
echo "============================================================"
|
|
echo "🧪 测试完整工作流程"
|
|
echo "============================================================"
|
|
echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
echo ""
|
|
|
|
WORK_DIR="/home/ubuntu/nanocode/it_automation_enhanced"
|
|
cd "$WORK_DIR" || exit 1
|
|
|
|
# 1. 清理测试数据
|
|
echo "1️⃣ 清理测试数据..."
|
|
rm -f data/test_articles.db
|
|
rm -f logs/test_*.log
|
|
rm -f output/test_*.json
|
|
echo "✅ 测试数据清理完成"
|
|
|
|
# 2. 创建测试数据库
|
|
echo ""
|
|
echo "2️⃣ 创建测试数据库..."
|
|
cat > scripts/create_test_db.py << 'EOF'
|
|
import sqlite3
|
|
import datetime
|
|
|
|
db_path = "/home/ubuntu/nanocode/it_automation_enhanced/data/test_articles.db"
|
|
conn = sqlite3.connect(db_path)
|
|
cursor = conn.cursor()
|
|
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS articles (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
title TEXT NOT NULL,
|
|
url TEXT UNIQUE NOT NULL,
|
|
source TEXT NOT NULL,
|
|
category TEXT,
|
|
publish_date TEXT,
|
|
word_count INTEGER DEFAULT 0,
|
|
processed INTEGER DEFAULT 0,
|
|
translation_status INTEGER DEFAULT 0,
|
|
humanizer_status INTEGER DEFAULT 0,
|
|
xhs_status INTEGER DEFAULT 0,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
)
|
|
''')
|
|
|
|
# 插入测试数据
|
|
test_articles = [
|
|
("AI芯片技术的最新突破", "https://example.com/ai-chip", "TestSource", "tech", "2026-03-19", 1200),
|
|
("Python 3.12性能优化指南", "https://example.com/python-optimize", "TestSource", "programming", "2026-03-19", 800),
|
|
("云计算安全最佳实践", "https://example.com/cloud-security", "TestSource", "cloud", "2026-03-19", 1500),
|
|
]
|
|
|
|
cursor.executemany('''
|
|
INSERT OR IGNORE INTO articles
|
|
(title, url, source, category, publish_date, word_count)
|
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
''', test_articles)
|
|
|
|
conn.commit()
|
|
conn.close()
|
|
print(f"测试数据库创建完成: {db_path}")
|
|
print(f"插入 {len(test_articles)} 条测试数据")
|
|
EOF
|
|
|
|
python3 scripts/create_test_db.py
|
|
|
|
# 3. 修改配置使用测试数据库
|
|
echo ""
|
|
echo "3️⃣ 更新配置..."
|
|
cp config/config.json config/config_test.json
|
|
sed -i 's|"database_path".*|"database_path": "/home/ubuntu/nanocode/it_automation_enhanced/data/test_articles.db",|' config/config_test.json
|
|
sed -i 's|"test_mode".*|"test_mode": true,|' config/config_test.json
|
|
echo "✅ 测试配置更新完成"
|
|
|
|
# 4. 运行测试流程
|
|
echo ""
|
|
echo "4️⃣ 运行测试流程..."
|
|
TEST_LOG="$WORK_DIR/logs/test_workflow_$(date '+%Y%m%d_%H%M%S').log"
|
|
|
|
# 创建测试调度脚本
|
|
cat > scripts/test_scheduler.sh << 'EOF'
|
|
#!/bin/bash
|
|
echo "=== 测试调度脚本 ==="
|
|
echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
|
|
# 模拟网页抓取
|
|
echo "📡 模拟网页抓取..."
|
|
sleep 2
|
|
echo "✅ 抓取完成,找到3篇文章"
|
|
|
|
# 模拟文章处理
|
|
echo "🔄 模拟文章处理..."
|
|
sleep 1
|
|
echo "✅ 文章处理完成"
|
|
|
|
# 模拟小红书发布
|
|
echo "📱 模拟小红书发布..."
|
|
echo "选择文章: AI芯片技术的最新突破"
|
|
echo "创建测试图片..."
|
|
|
|
# 创建测试图片
|
|
python3 -c "
|
|
from PIL import Image, ImageDraw
|
|
img = Image.new('RGB', (1080, 1440), color=(70, 130, 180))
|
|
draw = ImageDraw.Draw(img)
|
|
draw.text((100, 600), '测试文章', fill=(255, 255, 255))
|
|
draw.text((100, 700), 'AI芯片技术', fill=(255, 255, 200))
|
|
img.save('/tmp/test_xhs_image.png')
|
|
print('测试图片创建完成')
|
|
"
|
|
|
|
if [ -f /tmp/test_xhs_image.png ]; then
|
|
echo "🖼️ 测试图片创建成功"
|
|
|
|
# 实际发布(测试模式)
|
|
echo "🚀 执行小红书发布..."
|
|
xhs post --title "测试: AI芯片技术" --body "这是自动化系统的测试发布
|
|
|
|
文章: AI芯片技术的最新突破
|
|
来源: 测试系统
|
|
时间: $(date '+%Y-%m-%d %H:%M')
|
|
|
|
#技术测试 #自动化 #AI芯片" --images /tmp/test_xhs_image.png 2>&1 | tee -a /tmp/xhs_test_output.txt
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "🎉 小红书发布成功!"
|
|
# 更新数据库
|
|
sqlite3 /home/ubuntu/nanocode/it_automation_enhanced/data/test_articles.db \
|
|
"UPDATE articles SET xhs_status = 1 WHERE title LIKE '%AI芯片%'" 2>/dev/null
|
|
else
|
|
echo "⚠️ 小红书发布测试完成(可能为模拟)"
|
|
fi
|
|
|
|
rm -f /tmp/test_xhs_image.png
|
|
else
|
|
echo "⚠️ 跳过图片创建和发布"
|
|
fi
|
|
|
|
echo "✅ 测试流程完成"
|
|
EOF
|
|
|
|
chmod +x scripts/test_scheduler.sh
|
|
./scripts/test_scheduler.sh 2>&1 | tee "$TEST_LOG"
|
|
|
|
# 5. 验证结果
|
|
echo ""
|
|
echo "5️⃣ 验证结果..."
|
|
if [ -f "data/test_articles.db" ]; then
|
|
echo "📊 数据库状态:"
|
|
sqlite3 data/test_articles.db "SELECT title, xhs_status FROM articles;" 2>/dev/null
|
|
fi
|
|
|
|
if [ -f "/tmp/xhs_test_output.txt" ]; then
|
|
echo ""
|
|
echo "📄 小红书发布输出:"
|
|
cat /tmp/xhs_test_output.txt | tail -5
|
|
rm -f /tmp/xhs_test_output.txt
|
|
fi
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo "📋 测试完成"
|
|
echo "============================================================"
|
|
echo "• 测试日志: $TEST_LOG"
|
|
echo "• 测试数据库: data/test_articles.db"
|
|
echo "• 测试配置: config/config_test.json"
|
|
echo ""
|
|
echo "💡 实际调度将在每天16:00自动执行"
|
|
echo " 查看cron任务: crontab -l"
|
|
echo " 手动测试: ./scripts/main_scheduler.sh"
|
|
echo "============================================================" |