测试平台开发 - REST 高阶
一、 自定义接口规范(渲染器)1. 渲染器的基本原理 序列化在返回数据后并不是直接做为响应数据,而是经过渲染器的渲染,生成不同格式的响应内容 。 重构渲染器就是重写父类渲染器的render方法 。 1render(self, data, accepted_media_type=None, renderer_context=None) data : 响应数据(序列化器的.data属性),等同于renderer_context[“ response “].data的值 accepted_media_type=None : 可选的。如果提供,这是由内容协商阶段确定的所接受的媒体类型。 根据客户端的 Accept: 头,这可能比渲染器的 media_type 属性更具体,可能包括媒体类型参数。例如 “application/json; nested=true” 。 renderer_context=None : 可选的。如果提供,这是一个由view提供的上下文信息的字典。 默认情况下这个字典会包括以下键: view , request , response , args ...
测试平台开发 - 管理功能开发
模型关联关系 用例和项目之间的关联可以直接通过config,因为config是套件和用例的扩展,相当于用例和套件本身 。 一、 模块的包管理1. 创建模型包 如果模型过多时,需要把模型分别存储。 在应用中创建一个名为 models 的包,将所有的模型文件全部存放在 该文件夹下, 删除原来的 models.py 文件。 2. 创建 模型文件在 __init__.py 文件中,要使用 显示明确的方式导入每个模型,这样不会让命名混淆,便于可读。 123456# sqpt/models/__init__.pyfrom .hr3 import Request, Case, Config, Suite, Stepfrom .auth import Userfrom .base import CommonInfofrom .mgr import Environment, Project hr3.py 存放所有核心数据模型 mgr.py存放所有项目管理相关模型 1234567891011121314151617181920212223242526272829303132333435363 ...
测试平台开发 - 用户认证与权限
一、 用户注册注册流程: 1. 注册序列化器123456789101112131415161718192021222324252627282930# serializers.py# 注册序列化器class RegisterSerializer(serializers.ModelSerializer): # admin_code 不在user 模型字段中,需要单独定义 admin_code = serializers.CharField(default='') # 字符串类型 class Meta: model = User fields = ['username', 'password', 'email', 'phone', 'realname', 'admin_code'] # 额外的验证 --- 覆盖父类的方法 def validate(self, attrs): # attrs ...
测试平台开发 - 测试用例执行
一、 序列化器中的类属性字段序列化 中所定义的 类属性 字段,一般情况下与 模型类 字段 相对应 默认情况下,这些类属性字段既可以进行序列化输出,也可以进行反序列化输入 不需要输入(反序列化)、输出(序列化)的字段,则不需要定义,定义的字段 则必须出现在 fields列表中 只需要反序列化输入,则定义 write_only = True 只需要序列化输出,则定义 read_only = True 响应的参数如果是多个查询集,需要在 JsonResponse() 中传参 many=True label:当前字段在前端的api页面中所显示的字段名称 allow_null = False:当前字段是否允许传None,默认是False(必填字段False,反之则True) allow_blank = False:当前字段是否运行为空,默认是False(必填字段False,反之则True) required=False:当前字段允许不传,默认是True(必填字段True,反之则False) 二、反序列化_校验机制调用序列化器对象的 is_valid() 方法,校验前端参数的正确性,不调 ...