首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何运行网络刮刀的日常自动化测试?

如何运行网络刮刀的日常自动化测试?
EN

Stack Overflow用户
提问于 2018-08-31 13:56:26
回答 2查看 331关注 0票数 0

我维护了一个用Django REST构建的REST,在内部,它会抓取几个网页来检索一堆信息。

我对每一个端点都进行了测试,检查刮板是否仍在工作。他们实际上与页面连接,并检查源代码是否保持不变,并且基本上一切都很好。

我想每天运行这些测试几次,当任何这些刮板失败时,我都会收到通知。我不知道该怎么处理这个问题。

我正在寻找一种方法,允许我:

  1. 每X小时自动运行一次测试
  2. 把结果通知我

我一直在研究CI,但我不确定这是否是更好的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-31 14:14:21

如果您已经有了一个脚本--执行测试并通知您(例如,通过电子邮件或Pushover,在Python中的实现并不太难),则设置一个cron作业:

打开终端并键入crontab -e,如果需要,请选择编辑器,并添加以下行:

代码语言:javascript
运行
复制
* */X    * * *   python /path/to/testscript.py

这里X应该被你想要测试的频率所代替。例如,如果您编写3而不是X,那么您的脚本将每3小时执行一次。

票数 0
EN

Stack Overflow用户

发布于 2018-08-31 16:41:29

你可以试试django-crontab

  • 易于配置。
  • 管理各个应用程序目录中的crons。
  • 可通过settings模块进行配置。
  • manage.py集成,可以轻松地添加、删除和显示crons。

注意事项:Django >= 1.8的工作

编辑

示例配置和使用

  • 通过pippip install django-crontab安装
  • INSTALLED_APPS模块中添加settingsINSTALLED_APPS = ( 'django_crontab', ... )
  • 在项目目录路径中创建一个名为crons.py的模块(您可以将它命名为任意)。

示例路径/path/to/project/<app_name>/crons.py**)**:( crons.py )

代码语言:javascript
运行
复制
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()
  • settings中注册cron。

settings.py

代码语言:javascript
运行
复制
...

CRONJOBS = (
    # this will recur every 5 mins
    ('*/5 * * * *', '<app_name>.crons.foo_scheduler'),
)

...
  • 最后,使用python manage.py crontab add添加到crontab。
  • 使用python manage.py crontab remove删除。
  • 若要列出所有活动作业,python manage.py crontab show

请参阅其他这里的配置选项

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52117056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档