MAC 怎么配置定时任务

在 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 定时调用

相关推荐
老牛日常随笔14 小时前
Meta 开源 8160 亿参数模型,官方给的方案是两台 Mac Studio
macos·开源
桌管小李2 天前
内网终端安全再升级|迪康端点安全 2609 版本四大新功能解读
大数据·windows·安全·macos·网络安全
情 九2 天前
Dify 本地环境搭建教程:macOS / Windows
windows·macos
2501_915918412 天前
在 Xcode 中运行和调试单元测试的完整指南
ide·vscode·macos·ios·单元测试·个人开发·xcode
Lalolander3 天前
灵基Lingee怎么下载安装?Mac 与 Win 详细指南
大数据·人工智能·科技·macos·金蝶灵基
老李IT笔记3 天前
远程取设备日志:iOS、tvOS 和 macOS 三端的同意方式不一样
macos·ios
JasonSJX3 天前
DRM-X 5.0 PDF 保护更新:Windows 与 Mac 打印保留用户水印,ZJGet iOS 版支持 PDF 阅读
macos·pdf
HackTwoHub3 天前
免 Root 安卓渗透工具 Stryker|把 Kali 装进手机!随身无线渗透工作站,内置 Nmap/Nuclei/Metasploit 全套武器库
android·linux·运维·人工智能·web安全·macos·智能手机
又見山3 天前
Obsidian 跨平台同步实测:Nutstore Sync 在 Windows、Mac、Linux、iOS、Android 全平台综合测评
windows·macos·obsidian·obsidian同步·obsidian教程·obsidian入门·obsidian笔记库搭建
CocoaKier3 天前
如何安装旧版的MacOS系统?
macos·ios·mac