teprunner测试平台定时任务这次终于稳了

teprunner测试平台已经有一个多月没有更新了,主要原因是定时任务不够稳定,经过反复试错,找到了解决办法,这次终于稳定了。

本文开发内容

作为测试平台而言,定时任务算是必备要素了,只有跑起来的自动化,才能算是真正的自动化。本文将给测试计划添加定时任务功能,具体如下:

前端添加测试计划的定时任务开关

采用crontab表达式设置计划时间

后端集成django-apschedule,在数据库中记录任务明细和执行详情。

定时清理执行记录。

前端效果图:

image-20210528222640069

前端开发内容

编辑src/views/teprunner/plan/PlanEditor.vue文件:

image-20210528222823663

运行环境用el-select实现了下拉框,用el-switch实现了开关按钮。

image-20210528223000259

el-pophover实现了帮助描述,可以参考编写crontab表达式。

image-20210528223141339

在data中添加了表单项taskRunEnv、taskStatus、taskCrontab,必填规则,以及其他变量。

image-20210528223326133

页面创建时读取localStorage中的计划信息。

image-20210528223407162

并获取运行环境下拉框选项。

image-20210528223437261

开关按钮的文字是根taskStatus进行设置的。

image-20210528223522132

在保存时,给请求添加上新的这3个参数。

后端开发内容

第一步是安装django-apscheduler,要么直接安装:

pip install django-apscheduler

要么更新项目代码后通过requirements.txt安装:

pip install -r requirements.txt

然后编辑teprunnerbackend/settings.py文件:

image-20210528223904507

在INSTALLED_APPS中添加django_apscheduler。

接着迁移数据库,创建两张任务表,一张任务明细表,一张任务执行情况表

python manage.py migrate

image-20210528224044201

编辑teprunner/models.py文件:

image-20210528224148248

给Plan模型添加3个字段。

编辑teprunner/serializers.py文件:

image-20210528224243250

同样的,给PlanSerializer添加3个字段。

新建teprunner/views/task.py文件:

image-20210528224352704

创建BackgroundScheduler的对象实例,Background指的是在后台运行。并添加DjangoJobStore,把任务通过Django保存到数据库中。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjpds.html