用于在意外情况下测试drf api的装饰器和中间件的集合。

drf-chaos的Python项目详细描述


drf混沌扩展

https://img.shields.io/pypi/v/drf-chaos.svg

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',
)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java爬虫获取外部网站搜索结果   java Bluestack未连接到eclipse   java如何从ConstraintViolationException Hibernamte获取数据库字段名   HttpResponse HttpResponse=httpClient引发java运行时错误。执行(httpPost);   Jama中矩阵的java点积和叉积   java有什么方法可以唯一地识别可扩展设备吗?   java我需要用*来写我的名字,但我不断遇到一个错误,我对编码很陌生   java变量是在内部类中访问的。需要被宣布为最终决定。但我不想宣布最终结果   java如何缩短base64图像字符串,Android?   JavaSpringMVC:计划方法不自动触发   图形学习Java 2D API的好资源是什么?   如何在java中对方法进行排队   java JavaFX多行   java Selenium无法在[链接]上找到基于CSS元素的密码字段元素http://www.cartasi.it/gtwpages/index.jsp   Java中的equals()和hashCode()契约   软删除情况下的java Hibernate二级缓存   java为什么这段代码要两次调用这些方法?