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

代码更新地址: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. java包(翻译自Java Tutorials)
  3. shell脚本编程之处理用户输入
  4. mysql - AB复制
  5. ie 和谷歌浏览器在display的边框显示不一样的解决办法
  6. Mysql实现幂等_阿里面试官:接口的幂等性怎么设计?
  7. 乔安监控云存储_智能运维丨全栈监控,护航云上业务
  8. matlab绘制星下点轨迹,MATLAB绘制GPS星下点轨迹图
  9. word2003设置页码不从第一页开始的方法
  10. 信息学奥赛一本通 1055:判断闰年 | OpenJudge NOI 1.4 17
  11. 2022年“超级818汽车狂欢夜”启动,易车将携手汽车品牌共创内容营销
  12. 总结一下目标检测与跟踪
  13. Light Field 光场以及Matlab光场工具包(LightField ToolBox)的使用说明
  14. 三款免费的直播推流软件介绍
  15. origin8.1中文乱码设置方法
  16. R语言使用dplyr包计算dataframe分组聚合四分位距IQR值(四分位距(interquartile range, IQR),又称四分差)
  17. 幕测平台_使用Junit测试异常,测试NextDay函数
  18. 怎么用迅捷PDF转换器在线为PDF文件添加文字内容
  19. 膨胀卷积的缺点_卷积、反卷积与膨胀卷积
  20. AD fanout 各选项说明

热门文章

  1. Bugku-清凉一夏
  2. 详写VMware下安装windows7优化
  3. web上传整个文件夹
  4. python:实现十进制转二进制算法(附完整源码)
  5. 微信小程序的居家养老服务系统app
  6. python tkinter listbox_python tkinter listbox事件绑定
  7. Android中动态改变布局中控件的位置
  8. windows使用opencv报异常处理
  9. 红米2屏幕显示android,水滴全面屏老人机:红米 8A
  10. ios 调整麦克风音量_iOS 音量柱的实现(mic 采集的声音DB反映成音量柱)