当前位置: 首页 > 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.dnsts.com.cn/news/200335.html

相关文章:

  • 工程认证网站的建设网站城市切换代码
  • 平湖网站制作如何自己做网站手机
  • 湖南医院响应式网站建设企业做网站过程中的自身不足
  • .net营销网站开发湖南营销型网站建设报价
  • 网络推广理论做网站好不好品牌营销型网站建设策划
  • 南通长城建设集团有限公司网站长沙旅游攻略景点必去长沙美食街
  • 湘潭网站建设 很好磐石网络大连建设工程信息网防水
  • ipad网站开发做网站最少多少钱
  • 深圳网站建设优化广告设计的基本流程步骤
  • 如何在阿里云上做网站备案做刷网站怎么赚钱
  • 去泰国做网站发网站中小企业网站建设市场
  • php中英文网站源码网站开发需求方案模板
  • 益田附近网站建设做电商到底如何赚钱
  • 一个网络空间如何做两个网站六安网站软件建设
  • 宁波江东区网站建设谷歌官网下载app
  • 可以下载的网站模板上海比较大的外贸公司有哪些
  • 网站建设报价单 非常好用的报价模板.doc福州做网站fjfzwl
  • 云南网站建设天软科技设计公司网站应该包括的信息
  • 网站效果图设计思路做游戏代练的网站
  • 大型购物网站建站wordpress 服务器权限
  • 求个网站你知道的南昌市,做网站的公司
  • 建网站要买服务器吗建设实业公司网站设计模板
  • 网站建设 天津网站集约化建设的优势
  • 设计君网站邢台太行中学收费
  • 好口碑的网站制作安装价格做网站怎么设置背景
  • 酒店的网站建设方案小红书广告代理商
  • 问答论坛网站建设wordpress rt 17主题
  • 安徽建新建设工程有限公司网站二维码生成器支持微信扫码
  • 手机网站优势网站开发员的工作内容
  • 那个网站seo做的好的wordpress code 显示