测试平台——异步执行任务
一、异步任务概念
前面我们同步实现了测试计划的执行,但是它有一个致命的问题。
实际项目测试任务耗时会非常长,而django框架的请求是有超时的,哪怕没有超时,这么做显然不妥。所以需要使用异步任务的方式来执行测试任务。
发送一个执行任务的请求,它触发异步任务执行,然后马上返回响应。
我们使用celery框架来实现异步任务。
二、Celery
1、简介
Celery是使用python编写的分布式任务调度框架。
它有几个主要的概念:
a、celery应用
用户编写的代码脚本,用来定义要执行的任务,然后通过broker将任务发送到消息队列中
b、broker
1、代理,通过消息队列在客户端和worker之间进行协调。
2、celery本身并不包含消息队列,它支持以下消息队列
■RabbitMQ
■ Redis
■Amazon SQS
■ Zookeeper
更多关于Broker见官方文档
c、backend
数据库,用来存储任务返回的结果。
d、worker
工人,用来执行broker分派的任务。
示意图