当前位置: 首页 > news >正文

汕尾建设网站制作网页免费

汕尾建设网站,制作网页免费,高防服务器多少钱一个月,旅游网站设计总结相关文章#xff1a; Django实现接口自动化平台#xff08;十三#xff09;接口模块Interfaces序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 本章是项目的一个分解#xff0c;查看本章内容时#xff0c;要结合整体项目代码来看#xff1a; python django…相关文章 Django实现接口自动化平台十三接口模块Interfaces序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 本章是项目的一个分解查看本章内容时要结合整体项目代码来看 python django vue httprunner 实现接口自动化平台最终版_pythonvue自动化测试平台_做测试的喵酱的博客-CSDN博客 一、Testcases应用及相关接口 请求方式URI对应action实现功能GET/testcases/.list()查询testcase列表POST/testcases/.create()创建一条数据GET/testcases/{id}/.retrieve()检索一条testcase的详细数据PUT/testcases/{id}/update()更新一条数据中的全部字段PATCH/testcases/{id}/.partial_update()更新一条数据中的部分字段DELETE/testcases/{id}/.destroy()删除一条数据POST/testcases/{id}/run/运行某个接口下的所有case 1.1 用例列表 GET/testcases/.list()查询testcase列表 1.2 创建用例  1.2.1 基本信息 1、拉取了项目列表 2、拉取了项目下的接口列表 3、前置用例列表 4、拉取了所有的配置列表 1.2.2 基本信息 二、模型类 from django.db import modelsfrom utils.base_models import BaseModelclass Interfaces(BaseModel):id models.AutoField(verbose_nameid主键, primary_keyTrue, help_textid主键)name models.CharField(接口名称, max_length200, uniqueTrue, help_text接口名称)project models.ForeignKey(projects.Projects, on_deletemodels.CASCADE,related_nameinterfaces, help_text所属项目)tester models.CharField(测试人员, max_length50, help_text测试人员)desc models.CharField(简要描述, max_length200, nullTrue, blankTrue, help_text简要描述)class Meta:db_table tb_interfacesverbose_name 接口信息verbose_name_plural verbose_nameordering (id,)def __str__(self):return self.name 这段代码定义了一个名为Testcases的Django模型类继承了BaseModel。 首先通过from django.db import models导入了Django的models模块和自定义的BaseModel模块。 然后定义了Testcases模型类它包含了以下字段 id主键字段使用AutoField类型生成自增的id。name用例名称字段使用CharField类型最大长度为50设置为唯一值。interface外键字段关联到interfaces.Interfaces模型表示该用例所属的接口。include前置字段使用TextField类型允许为空保存用例执行前需要执行的顺序信息。author编写人员字段使用CharField类型最大长度为50保存编写该用例的人员信息。request请求信息字段使用TextField类型保存请求的详细信息。 接下来定义了该模型类的Meta类包含了一些元数据 db_table数据库表的名称设置为tb_testcases。verbose_name该模型的可读名称设置为用例信息。verbose_name_plural该模型的复数形式名称与verbose_name相同。ordering查询结果的默认排序规则按照id字段进行升序排序。 最后定义了__str__方法返回用例的名称用于在后台管理界面和其他地方显示该模型对象的可读信息。 通过以上定义您可以使用Django框架创建一个名为Testcases的数据表其中包含了上述定义的字段并且可以进行数据操作和查询。 注意 所有请求相关的信息如header、URI、请求体、断言等等全部在模型类 request字段中。 request的值是一个json字符串。如 {test: {name: 1陈帅百度,request: {url: /mcp/pc/pcsearch,method: POST,json: {invoke_info: {pos_1: [{}],pos_2: [{}],pos_3: [{}]}}},validate: [{check: status_code,expected: 200,comparator: equals}]} } 包含了请求与断言的信息。 底层使用的httprunner 1.0 做的接口自动化驱动case的形式就是json格式的。 相关资料 httprunner 2.x的基本使用二_做测试的喵酱的博客-CSDN博客 三、序列化器类 class TestcaseModelSerializer(serializers.ModelSerializer):interface InterfaceProjectModelSerializer(label所属项目和接口信息, help_text所属项目和接口信息)class Meta:model Testcasesexclude (create_datetime, update_datetime)extra_kwargs {request: {write_only: True},include: {write_only: True},}# def validate_request(self, attr):# # TODO# return attr## def validate(self, attrs):# # TODO# return attrsdef to_internal_value(self, data):result super().to_internal_value(data)iid data.get(interface).get(iid)result[interface] Interfaces.objects.get(idiid)return result# def create(self, validated_data):# pass# class TestcaseRunSerializer(serializers.ModelSerializer): # env_id serializers.IntegerField(label所属环境id, help_text所属环境id, # validators[ManualValidateIsExist(env)]) # # class Meta: # model Testcases # fields (id, env_id)class TestcaseRunSerializer(RunSerializer):class Meta(RunSerializer.Meta):model Testcases四、视图  import json import os from datetime import datetimefrom django.conf import settings from django.http import JsonResponse from rest_framework import viewsets from rest_framework import permissions from rest_framework.response import Response from rest_framework.decorators import actionfrom .models import Testcases from envs.models import Envs from . import serializers from utils import handle_datas, common from utils.mixins import RunMixinclass TestcasesViewSet(RunMixin, viewsets.ModelViewSet):queryset Testcases.objects.all()serializer_class serializers.TestcaseModelSerializerpermission_classes [permissions.IsAuthenticated]# 删除def destroy(self, request, *args, **kwargs):response super().destroy(request, *args, **kwargs)response.status_code 200response {code:2000,msg:删除成功}response JsonResponse(response)return response# 获取单个详情def retrieve(self, request, *args, **kwargs):instance self.get_object() # type: Testcasestry:testcase_include json.loads(instance.include, encodingutf-8)except Exception:testcase_include dict()try:testcase_request json.loads(instance.request, encodingutf-8)except Exception:return Response({msg: 用例格式有误, status: 400}, status400)testcase_request_data testcase_request.get(test).get(request)# 获取json参数json_data testcase_request_data.get(json)json_data_str json.dumps(json_data, ensure_asciiFalse)# 获取extract参数extract_data testcase_request.get(test).get(extract)extract_data handle_datas.handle_data3(extract_data)# 获取validate参数validate_data testcase_request.get(test).get(validate)validate_data handle_datas.handle_data1(validate_data)# 获取variables参数variables_data testcase_request.get(test).get(variables)variables_data handle_datas.handle_data2(variables_data)# 获取parameters参数parameters_data testcase_request.get(test).get(parameters)parameters_data handle_datas.handle_data3(parameters_data)# 获取setup_hooks参数setup_hooks_data testcase_request.get(test).get(setup_hooks)setup_hooks_data handle_datas.handle_data5(setup_hooks_data)# 获取teardown_hooks参数teardown_hooks_data testcase_request.get(test).get(teardown_hooks)teardown_hooks_data handle_datas.handle_data5(teardown_hooks_data)data {author: instance.author,testcase_name: instance.name,selected_configure_id: testcase_include.get(config),selected_interface_id: instance.interface_id,selected_project_id: instance.interface.project_id,selected_testcase_id: testcase_include.get(testcases, []),method: testcase_request_data.get(method),url: testcase_request_data.get(url),param: handle_datas.handle_data4(testcase_request_data.get(params)),header: handle_datas.handle_data4(testcase_request_data.get(headers)),variable: handle_datas.handle_data2(testcase_request_data.get(data)),jsonVariable: json_data_str,extract: extract_data,validate: validate_data,# 用例的当前配置variablesglobalVar: variables_data,parameterized: parameters_data,setupHooks: setup_hooks_data,teardownHooks:teardown_hooks_data}return Response(data, status200)# action(methods[post], detailTrue)# def run(self, request, *args, **kwargs):# # 1、取出用例模型对象并获取env_id# # instance self.get_object() # type: Testcases# # serializer self.get_serializer(datarequest.data)# # serializer.is_valid(raise_exceptionTrue)# # env_id serializer.validated_data.get(env_id)# # env Envs.objects.get(idenv_id)## # 2、创建以时间戳命名的目录# # dirname datetime.strftime(datetime.now(), %Y%m%d%H%M%S)# # testcase_dir_path os.path.join(settings.PROJECT_DIR, datetime.strftime(datetime.now(), %Y%m%d%H%M%S))# # os.makedirs(testcase_dir_path)## # 3、创建以项目名命名的目录# # 4、生成debugtalks.py、yaml用例文件# # common.generate_testcase_file(instance, env, testcase_dir_path)## # 5、运行用例并生成测试报告# # return common.run_testcase(instance, testcase_dir_path)# qs [self.get_object()]# return self.execute(qs)def get_serializer_class(self):if self.action run:return serializers.TestcaseRunSerializerelse:return super().get_serializer_class()def get_testcase_qs(self):return [self.get_object()]# return self.queryset.filter(idself.get_object().id)这段代码是一个Django视图集用于处理测试用例的增删改查操作。它继承了RunMixin类并且使用了ModelViewSet视图集来简化代码。 该视图集定义了以下几个方法 destroy: 重写了父类的destroy方法删除指定的测试用例并返回一个删除成功的响应。retrieve: 重写了父类的retrieve方法获取单个测试用例的详情并将相关数据进行处理后返回。get_serializer_class: 根据请求的动作不同选择不同的序列化器进行序列化。get_testcase_qs: 获取测试用例的查询集。 除此之外还有一段被注释掉的代码它包含了运行测试用例的逻辑根据时间戳创建目录、生成测试用例文件并运行测试用例生成测试报告。 需要注意的是这段代码中使用了一些自定义的工具类和函数如handle_datas、common等未提供相关代码可能需要根据实际情况自行补充。
http://www.hkea.cn/news/14413817/

相关文章:

  • 国内网站备案修改wordpress文章发布时间
  • 网站建设前台功能设计与实现腾讯公司网页设计
  • 江宁交通建设集团网站河南省和城乡建设厅网站
  • 网站内页产品 首页推荐银川网站网站建设
  • 余姚网站推广公司整人做我女朋友网站
  • 哪个网站做自考题目免费wordpress标题不居中
  • 国内老牌的室内设计网站可视化小程序开发工具
  • 宜兴做阿里巴巴网站莱芜都市网下载
  • 建材网站方案用wordpress做网站教程
  • 东台建网站贵州成品网站
  • 推荐几个自学做衣服的网站湘潭网站建设问下磐石网络
  • 移动端网站建设的意义下载asp做网站
  • 大型网站设计公司临汾市网站建设
  • 怎样在手机做自己的网站公明做网站
  • 张家界有没有做网站的公司海口网站
  • 电子网站怎么做本地推广找哪些网站
  • 沂南建设局网站wordpress提交表单插件
  • 濮阳做网站建设的公司哈尔滨建站的网站
  • 女装网站建设文献综述餐饮网页设计模板
  • 东莞网站推广推广软件大连甘井子区社区工作者招聘
  • 简述网站的创建流程图书馆登录系统网站建设代码
  • 十堰企业网站制作公司国外网站建设软件
  • 广西崇左市住房和城乡建设局网站丽水市做网站的
  • 个人网站备案 各省河南省建设厅注册中心网站
  • wordpress暂停网站wordpress附件中文乱码
  • 网站建设美橙注册公司怎么注册
  • 网站建设公司介绍网站建设储蓄卡
  • 花店网页设计模板上海不限关键词优化
  • 成都市医院网站建设大中型网站开发流程
  • 可以做彩字的网站淘宝自己网站怎么建设