在 Linux / macOS 中,crontab 是用来管理定时任务的。打开(编辑)crontab 的方法很简单:
✅ 打开并编辑当前用户的 crontab
crontab -e
执行后会进入编辑器(可能是 vi、vim 或 nano),你就可以新增或修改定时任务。
查看当前 crontab 内容(不是编辑)
crontab -l
删除当前 crontab
crontab -
下面给你一套可直接用的定时跑 pytest / Airtest 脚本方案 ✅(包含:脚本 + 定时任务)
✅ ✅ 一、准备一个执行脚本(最关键)
创建一个脚本,比如:
Plain Text
Plain Text
run_test.sh
✅ ✅ run_test.sh 内容(推荐版本 ⭐)
#!/bin/bash
✅ 切换到你的项目目录
cd /Users/yourname/your_project || exit 1
✅ 激活环境(如果你用虚拟环境)
source /Users/yourname/.venv/bin/activate
✅ 设置日志时间
DATE=$(date "+%Y-%m-%d_%H-%M-%S")
✅ 创建日志目录
mkdir -p logs
✅ 执行 pytest(API测试 or Airtest)
pytest tests/ --alluredir=reports/"DATE" \> logs/test_"DATE".log 2>&1
✅ 生成 Allure 报告(可选)
allure generate reports/"DATE" -o reports/html_"DATE" --clean
echo "测试完成: $DATE"
0 22 * * * /Users/yourname/your_project/run_test.sh
每天晚上10点跑一次
log show --predicate 'process == "cron"' --last 1h
在 Linux / macOS 中,crontab 是用来管理定时任务的。打开(编辑)crontab 的方法很简单:
✅ 打开并编辑当前用户的 crontab
crontab -e
执行后会进入编辑器(可能是 vi、vim 或 nano),你就可以新增或修改定时任务。
查看当前 crontab 内容(不是编辑)
crontab -l
删除当前 crontab
crontab -r
下面给你一套可直接用的定时跑 pytest / Airtest 脚本方案 ✅(包含:脚本 + 定时任务)
✅ ✅ 一、准备一个执行脚本(最关键)
创建一个脚本,比如:
run_test.sh
✅ ✅ run_test.sh 内容(推荐版本 ⭐)
#!/bin/bash
✅ 切换到你的项目目录
cd /Users/yourname/your_project || exit 1
✅ 激活环境(如果你用虚拟环境)
source /Users/yourname/.venv/bin/activate
✅ 设置日志时间
DATE=$(date "+%Y-%m-%d_%H-%M-%S")
✅ 创建日志目录
mkdir -p logs
✅ 执行 pytest(API测试 or Airtest)
pytest tests/ --alluredir=reports/"DATE" \> logs/test_"DATE".log 2>&1
✅ 生成 Allure 报告(可选)
allure generate reports/"DATE" -o reports/html_"DATE" --clean
echo "测试完成: $DATE"
✅ ✅ 二、给执行权限
chmod +x run_test.sh
✅ ✅ 三、先手动测试一下
./run_test.sh
✅ 能正常跑再继续
✅ ✅ 四、配置定时任务(crontab)
打开:
crontab -e
✅ 示例1:每天晚上10点跑一次
0 22 * * * /Users/yourname/your_project/run_test.sh
✅ 示例2:每天早上9点跑
0 9 * * * /Users/yourname/your_project/run_test.sh
✅ 示例3:每2小时跑一次
0 */2 * * * /Users/yourname/your_project/run_test.sh
✅ ✅ 五、检查任务是否生效
crontab -l
✅ ✅ 六、常见问题(你一定会遇到 ⚠️)
❗1️⃣ cron 里找不到 python / pytest
👉 必须写绝对路径:
/usr/bin/python3
或者改 script:
which python3
which pytest
✅ 推荐修正:
/usr/bin/python3 -m pytest tests/
❗2️⃣ 虚拟环境没生效
source /Users/.../.venv/bin/activate
❗3️⃣ Airtest 设备问题(iOS / Android)
👉 可以在脚本里加:
tidevice list
或者:
adb devices
❗4️⃣ Mac 睡眠不会执行 ❗
👉 cron 在睡眠时不会跑!
✅ 解决:
sudo pmset repeat wakeorpoweron MTWRFSU 22:00:00
✅ ✅ 七、Airtest 专用版本(如果你跑UI)
把 pytest 换成:
airtest run test.air --device Android:/// --log logs/"$DATE"
或者:
python3 run_airtest.py
✅ ✅ 八、升级版(带 Jenkins 风格日志)
echo "===== START TEST $(date) ====="
显示更多行
✅ ✅ 九、一句话总结
👉 写一个
.sh脚本执行 pytest / Airtest👉 用
crontab定时调用