别人写的平台再垃圾,也是用来淘汰你的。

代码更新地址:https://github.com/ahu965/api-automator.git

Python环境没有的,请自行安装,本教程采用的是python 3.9。

Django官网 https://www.djangoproject.com/

Node环境没有的,请自行安装,本教程采用的是node v17.6.0。

Vue.js官网 https://cn.vuejs.org/

接入swagger

之前每次接口测试都需要采用第三方测试工具,例如postman,从这节开始给后端项目新增swagger插件,这样可以直接在swaager上进行接口测试。

  • 安装drf-yasg依赖
  • 在项目配置文件settings.pyINSTALLED_APPS中配置'drf_yasg',
  • 在项目的urls.py中配置swagger路由
schema_view = get_schema_view(openapi.Info(title="「接口测试平台」文档",  # 必传default_version='v1',  # 必传description="接口文档",terms_of_service='',contact=openapi.Contact(email="huyptina@163.com"),license=openapi.License(name="BSD LICENSE")),public=True,
)urlpatterns = [path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger'),]
  • 访问swagger路由

  • 之后的接口都可以直接在swagger页面上测试啦,效率又提升一步

接口测试平台 项目管理模块开发(三)

接着上节,本节将在前端项目中实现项目新增功能。

后端新增接口逻辑

简单的新增接口同样使用DRF的提供的mixins,新增使用CreateModelMixin

再次启动后端项目,在swagger界面测试新增接口

接口返回状态201就是创建成功,但是从响应中可以看到created_by是空的,所以需要重写CreateModelMixin中的方法,但是目前还没有做权限控制,即不登录也可以创建,所以这里先记个TODO,做权限控制的时候来完善。

前端新建项目逻辑

先大概分析下,页面上首先需要一个【新增】按钮,点击【新增】按钮后需要打开一个弹窗,用来填写项目信息,弹窗需要又个【确认】按钮,点击【确认】按钮后调项目创建接口,新增成功后关闭弹窗,刷新列表。

  • 同样是在Ant Design Vue找到想要的Button组件、Modal组件和Form组件,将示例代码拷贝到本地进行调试。

  • src/api/projects.js中新增创建项目接口
export function createApi(data) {return request({url: "main/projects/",method: "post",data});
}
  • 在弹窗的【确定】按钮点击后调用接口
const addProject = () => {createApi(createParams.value).then(() => {createModelVisible.value = false;createParams.value = {};listProject("");});
};
  • 保存后在页面上进行测试是否能够新增成功。

后端删除接口逻辑

简单的新增接口同样使用DRF的提供的mixins,删除使用DestroyModelMixin

重启后,查看swagger页面接口列表,可以看到新增了一个DELETE类型的接口,这个就是删除接口,根据ID删除指定的项目。

前端删除项目逻辑

同样也是先梳理下逻辑,列表上每行都有【删除】按钮,点击【删除】按钮后弹出「是否确认删除」弹窗,点击弹窗【确认】按钮后调用删除接口,并将所在行的项目ID作为入参,删除成功后刷新列表。

  • 首先在src/api/projects.js中新增删除项目接口
export function deleteApi(id) {return request({url: "main/projects/" + id,method: "delete",});
}
  • 然后处理页面,确认弹窗同样可以在Ant Desgin Vue官网找到Modal组件,复制示例代码到本地项目进行调试

  • 首先给列表【删除】按钮添加事件,打开Modal确认框。
const deleteProjectPre = (p) => {modalMessage.value = "是否确认删除【" + p.name + "】?";deleteModalVisible.value = true;deleteId.value = p.id;
};
  • 然后在确认框的【删除删除】按钮的事件中调用删除接口
const deleteProject = () => {if (deleteId.value != null) {deleteApi(deleteId.value).then(() => {message.success("删除成功");listProject("");});}
};
  • 重启项目,刷新页面,测试删除功能是否可用

10 接口测试平台 项目管理模块开发(三)相关推荐

  1. 【Linux网络编程】Nginx -- 模块开发(upstream / subrequest)

    [Linux网络编程]Nginx -- 模块开发(upstream / subrequest) [1]upstream VS subrequest 简介 upstream 为访问上游服务器,它把Ngi ...

  2. 微信小程序之网易云音乐(四)- 排行、歌手及歌手详情页模块开发

    微信小程序之网易云音乐(四)- 排行.歌手及歌手详情页模块开发 一. 排行模块开发 二. 歌手模块开发 三. 歌手详情页开发 微信小程序之网易云音乐导航 一. 排行模块开发 rank.vue文件: & ...

  3. flask 开发接口测试平台

    flask 开发接口测试平台 数据库,forms  views  视图, 数据库如下: # encoding: utf-8 ''' @author: lileilei @file: models.py ...

  4. 面试高级测试工程师修炼之接口测试平台开发

    说说你敢不敢,来一场说走就走的跳槽? 下面主要是关于测试行业的一个分享,如果你暂时不关心测试接口测试平台开发相关,就直接从"以下是重点"看,或者滑到文末看有没有你需要的~图片 简书 ...

  5. SIM900A模块开发:通过GPRS连接OneNet平台发送GPS信息

    SIM900A模块开发:通过GPRS连接OneNet平台发送GPS信息 1. SIM900A模块介绍 1.1 SIM900A模块具有以下特点: 1.2 模块TTL接口图 1.3 硬件连接方法 2. O ...

  6. 速卖通开放平台 预约交货模块开发指南

    速卖通开放平台,最近新增加一个功能模块,就是:预约交货的功能.简单说,就是让包裹更早的能够上网.可以快速查询什么的,有点像虾皮平台的首公里功能.其实也不算最近,上半年5月份的时候就开始推这个功能了,据 ...

  7. Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所构成的室内安全报警模块

    该系统模块主要由Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所组成,MQ-2烟雾浓度传感器 ...

  8. 微信小程序网悦新闻开发--首页模块开发(三)

    目录 微信小程序网悦新闻开发--功能介绍(一) 微信小程序网悦新闻开发--小程序配置(二) 微信小程序网悦新闻开发--首页模块开发(三) 微信小程序网悦新闻开发--视频模块开发(四) 微信小程序网悦新 ...

  9. 带你开发一个远程控制项目---->STM32+标准库+阿里云平台+传感器模块+远程显示。

    目录 本次实验项目: 下次实验项目: 本次项目视频结果/APP/实物展示 实物展示 APP展示 视频展示 模块选择说明; 温湿度传感器模块介绍 光照传感器介绍 ESP8266-01S模块介绍 本次实验 ...

最新文章

  1. 微型计算机中 存储器的主要功能是,在计算机中存储器的主要作用是什么?
  2. CSS中background-position的使用
  3. 神策 FM | 将定价作为产品竞争优势的 5 种策略
  4. HandlerInterceptorAdapter或HandlerInterceptor的使用
  5. 建立Win32 Console Project时会出“error LNK1123” 错误
  6. HbuilderX、Hbuilder编辑器如何使用手机调试app
  7. 二十大数据可视化工具(二)
  8. java语言和python语言的区别_java和python的区别
  9. Linux下构建一个deb软件安装包
  10. Kubernetes基础:包含多个容器的Pod
  11. 二极管三极管 模电
  12. oracle如何清理sys_lob,清理 oracle lobsegment | 学步园
  13. 第22关 go的web框架-gin
  14. 一文看懂“知识蒸馏”技术
  15. 《白皮书》:身边的人脸安全事件及背后的三类攻击手段
  16. NOI模拟 五彩斑斓
  17. VISA卡,银联卡,MASTER CARD
  18. c语言程序整数划分源代码,C语言实现整数划分问题
  19. ubuntu连接投影仪
  20. 百度人脸识别---横屏,竖屏的实现

热门文章

  1. 讲述:一个月薪12000的北京程序员的真实生活
  2. SQL语句求总数、求平均数、降序排…
  3. ARM64内存虚拟化分析(7)stage2异常处理
  4. 不用密码卸载symantec
  5. 书店管理系统(Servlet+MySQL)登录与注册功能篇
  6. Thinkphp 使用Workerman 聊天室
  7. 三子棋(五子棋,多子棋)的实现:c语言
  8. mysql opc,OPC服务器Kepserver实现Mysql数据库连接(三)
  9. 揭秘考研阅卷“潜规则”,这样的试卷能“加分”!
  10. 前端调用打印机打印条码、二维码(一些坑)