teprunner测试平台已经有一个多月没有更新了,主要原因是定时任务不够稳定,经过反复试错,找到了解决办法,这次终于稳定了。
本文开发内容作为测试平台而言,定时任务算是必备要素了,只有跑起来的自动化,才能算是真正的自动化。本文将给测试计划添加定时任务功能,具体如下:
前端添加测试计划的定时任务开关
采用crontab表达式设置计划时间
后端集成django-apschedule,在数据库中记录任务明细和执行详情。
定时清理执行记录。
前端效果图:
前端开发内容编辑src/views/teprunner/plan/PlanEditor.vue文件:
运行环境用el-select实现了下拉框,用el-switch实现了开关按钮。
el-pophover实现了帮助描述,可以参考编写crontab表达式。
在data中添加了表单项taskRunEnv、taskStatus、taskCrontab,必填规则,以及其他变量。
页面创建时读取localStorage中的计划信息。
并获取运行环境下拉框选项。
开关按钮的文字是根taskStatus进行设置的。
在保存时,给请求添加上新的这3个参数。
后端开发内容第一步是安装django-apscheduler,要么直接安装:
pip install django-apscheduler要么更新项目代码后通过requirements.txt安装:
pip install -r requirements.txt然后编辑teprunnerbackend/settings.py文件:
在INSTALLED_APPS中添加django_apscheduler。
接着迁移数据库,创建两张任务表,一张任务明细表,一张任务执行情况表:
python manage.py migrate编辑teprunner/models.py文件:
给Plan模型添加3个字段。
编辑teprunner/serializers.py文件:
同样的,给PlanSerializer添加3个字段。
新建teprunner/views/task.py文件:
创建BackgroundScheduler的对象实例,Background指的是在后台运行。并添加DjangoJobStore,把任务通过Django保存到数据库中。