Python 如何运行web刮板的每日自动测试?
我维护了一个用Django REST构建的REST API,在内部,它可以刮取几个网页来检索一组信息 我对每个端点都进行了测试,以检查刮刀是否仍在工作。他们实际上连接到页面,检查源代码是否保持不变,基本上一切正常 我希望每天运行这些测试几次,并在这些刮板出现故障时收到通知。我不知道我该怎么做 我正在寻找一种方法,使我能够:Python 如何运行web刮板的每日自动测试?,python,django,testing,Python,Django,Testing,我维护了一个用Django REST构建的REST API,在内部,它可以刮取几个网页来检索一组信息 我对每个端点都进行了测试,以检查刮刀是否仍在工作。他们实际上连接到页面,检查源代码是否保持不变,基本上一切正常 我希望每天运行这些测试几次,并在这些刮板出现故障时收到通知。我不知道我该怎么做 我正在寻找一种方法,使我能够: 每X小时自动运行一次测试 把结果通知我 我一直在研究CI,但我不确定这是否是更可取的方法 如果您已经有脚本执行测试并通知您(例如通过电子邮件或Pushover,Python中
我一直在研究CI,但我不确定这是否是更可取的方法 如果您已经有脚本执行测试并通知您(例如通过电子邮件或Pushover,Python中的实现并不太难),请设置cron作业: 打开一个终端并键入
crontab-e
,如果需要,请选择编辑器并添加以下行:
* */X * * * python /path/to/testscript.py
其中X应替换为您希望测试的频率。例如,如果您编写3而不是X,则每3小时将执行一次脚本。您可以尝试
- 易于配置
- 管理各个应用程序目录中的cron
- 可通过
模块进行配置设置
- 与
集成,可轻松添加、删除和显示cronmanage.py
1.8
编辑 配置和使用示例:
- 通过
:pip安装
pip安装django crontab
- 在
模块中添加设置
已安装的应用程序。
已安装的应用程序=( “django_crontab”, ... )
- 在项目目录路径中创建名为
(可以任意命名)的模块crons.py
crons.py(例如path
/path/to/project/听起来是cron作业的完美任务。或者
from .models import FooModel
def foo_scheduler():
# update Foo's bar on each invocation
foos = FooModel.objects.all()
for foo in foos:
foo.bar += 42
foo.save()
...
CRONJOBS = (
# this will recur every 5 mins
('*/5 * * * *', '<app_name>.crons.foo_scheduler'),
)
...