用于在意外情况下测试drf api的装饰器和中间件的集合。
drf-chaos的Python项目详细描述
drf混沌扩展
DRF Chaos是一个小型的装饰商和中间商的集合 在意外情况下测试Django REST Frameworkapi。
设置
DRF_混沌已启用
装饰工
延迟
特定毫秒数的延迟响应
@delay(rate, milliseconds)
参数:
rate:意外事件发生的概率
milliseconds:暂停当前线程的执行 毫秒数
错误
返回不同的响应http状态代码
@error(rate, status)
参数:
rate:意外事件发生的概率
status:对应于任何有效http状态代码的整数。见 DRF HTTP status codes
哑剧
返回随机的mime内容类型
@mime(rate)
参数:
rate:意外事件发生的概率
混沌
对http响应应用随机意外事件。(0之间的延迟 到3秒和一个随机的http状态码)
@chaos(rate)
参数:
rate:意外事件发生的概率
中间商
- 朝思暮想
示例
from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView from drf_chaos.decorators import delay, error, mime, chaos class DelayApiView(APIView): @delay(rate=0.5, milliseconds=700) def get(self, request): return Response(status=status.HTTP_204_NO_CONTENT) class ErrorApiView(APIView): @error(rate=0.5, status=500) def get(self, request): return Response(status=status.HTTP_204_NO_CONTENT) class MimeTypeApiView(APIView): @mime(rate=0.5) def get(self, request): return Response(status=status.HTTP_204_NO_CONTENT) class ChaosApiView(APIView): @chaos(rate=0.5) def get(self, request): return Response(status=status.HTTP_204_NO_CONTENT)
要求
- Python(2.7)
- Django(1.6+,1.7+,1.8)
安装
使用pip
安装pip install drf-chaos
将“drf_chaos”添加到已安装的应用程序设置中。
INSTALLED_APPS = ( ... 'drf_chaos', )