FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb
apiAutoTestWeb使用说明
apiAutoTestWeb 是为apiAutoTest的可视化版本,其采用前后端分离( FastAPI + Vue2 )方式实现
具体使用: Python3 + FastAPI + Vue + element-ui + vue element admin + Tortoise ORM + jwt(python-jose) + apscheduler + aiohttp + aiofiles + jsonpath
演示地址
http://49.232.203.244:2152/
点击即可访问: 前端入口 , 接口文档
目的
尝试将学了一年FastAPI 和Vue 做个结合,动手做才能更快的获得知识,在做的时候基本是遇到什么问题就查,最终出来了这一版本.
相比apiAutoTest
header支持使用自定义函数以及其他接口参数变量
弊端: 将无法再对单个用例不使用header或者单独使用header,为此移除了token操作
增加了定时任务, 后台运行
支持 graphql 规范接口测试
将excel数据托管到可视化界面和数据库管理
弊端: 感觉更繁琐了,需要不停的在页面切换
暂不支持SQL
tip: 不排除自定义函数中可以使用sql
扩展函数
不支持,安装第三方库
前端表单填写采用文本域,没法校验是否有问题
上传文件接口暂不支持
功能介绍
1. 登录
页面并没有写注册入口, 暂时只能通过接口来注册.
默认的演示账号: tester 密码: 123456
2. 首页
3. 说明文档
4. 项目管理
5. 环境管理
基准header, 类似JSON的写法 {“Authorization”:"${token}"} 欲使用token,当token变量存在的时候会自动给其替换,其他接口(在token提取接口之后的)将被自动使用, 其具体效果见 报告详细 , 变量知识(见用例模块)
当然也可以使用 自定义函数 来解决下面的问题
6. 接口管理
RESTful规范
也实用一般的http/https(带证书暂未测试,应该不支持)接口
路径可以使用 自定义函数 、 参数变量
GraphQL规范
目前个人公司项目接触到,发现只能是post请求,json数据格式传输
7. 用例管理
RESTful规范
参数类型: 根据接口文档选择
请求参数: 类json( 只所以说是类json写法是因为后面有些地方使用非字符串的参数时会有是不合法json的情况 )写法, 可以使用 自定义函数 , 参数变量
预期结果: {"$.meta":{ “msg”: “登录成功”, “status”: 200 }} , .meta实际结果(将会通过jsonpath对当前接口的响应提取内容.meta 实际结果( 将会通过jsonpath对当前接口的响应提取内容.meta实际结果(将会通过jsonpath对当前接口的响应提取内容.meta为jsonpath表达式,意为从当前响应json中提取第一层级为key为meta的内容 ), { “msg”: “登录成功”, “status”: 200 } 预期结果内容, 支持多个预期结果,添加多个键值对即可
提取参数: {“token”:"$.data.token"} , token 为参数变量, $.data.token 从当前接口响应提取token的值并赋值给自定义变量token, 如果已经存在变量token,那么这个token 会覆盖之前的变量token内容,
GraphQL规范: 除了query语句部分不同,其他一致
8. 任务管理
立即执行: 必须等待执行完成之后,自动跳转报告信息,且无法在测试过程中去做其他操作
后台执行:任务将在后台运行,需要执行去报告管理查看,然后可以去做其他操作
定时信息:展示该任务的定时信息,会显示下次运行时间
删除: 会删除任务以及定时任务
选择用例:需先选择对应的环境,然后此处可以选择对应项目下的所有用例, 已选中用例的展示顺序,将决定接口依次运行的顺序,会直接影响到每个接口变量参数的使用 ,你应该在使用变量参数前执行提取该变量参数的接口
定时任务:目前定时任务是写在内存中的,每次应用重启,已有的定时任务都会失效
可通过,删除任务,编辑任务的定时任务开关来删除或者关闭定时任务
为避免服务器歇菜,还请谨慎使用定时任务, 及时关闭,并且服务器上设置了每天早5点30分会对项目进行重新部署,每次重新部署后所有定时任务都将失效(任务储存在内存中)
定时规则: 遵顼 cron 表达式示例给出的 * * * * * 意为每分钟执行一次任务
9. 报告管理
点击测试结果可筛选结果
点击首行的箭头展开查看详细
资源分享
下面这些是我的收集和整理,这些资料,对于【软件测试】的朋友来说应该是最全面的仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
关注【程序媛木子】微信公众号里海量资源免费获取,技术交流群(644956177)
##加粗样式 报告解读
请求信息: 显示当前用例的请求前 VS 请求后的 数据处理
提取参数: 显示当前用例的提取参数表达式
响应结果: 显示当前用例的响应结果
断言信息: 显示当前用例的断言内容
$.meta ? {‘msg’: ‘登录成功’, ‘status’: 200} 用例中书写的预期结果内容
{‘msg’: ‘登录成功’, ‘status’: 200} == {‘msg’: ‘登录成功’, ‘status’: 200} 处理后实际的预期结果内容
当前参数池: 显示当前用例运行之后的可用参数变量
异常信息: 显示当前用例运行出现的异常信息
关于异常的种类分析还需要统计后,也许后面会更新在文档上,目前如果出现异常请仔细查看 请求信息 ,和 异常信息 等内容
- 扩展脚本
每次编辑之后,需要保存才会生效,此处的函数仅能作用于 接口path,用例请求参数、预期结果 中,不支持调试
- Json校验
提供了实时的json格式校验
FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb相关推荐
- 基于SpringBoot+Vue前后端分离的在线教育平台项目
基于SpringBoot+Vue前后端分离的在线教育平台项目 赠给有缘人,希望能帮助到你!也请不要吝惜你的大拇指,你的Star.点赞将是对我最大的鼓励与支持! 开源传送门: 后台:Gitee | Gi ...
- React / Vue 前后端分离项目实现微信分享教程
小编推荐:Fundebug专注于JavaScript.微信小程序.微信小游戏,Node.js和Java实时BUG监控.真的是一个很好用的bug监控费服务,众多大佬公司都在使用. 网上非常多的微信分享例 ...
- SpringBoot+vue前后端分离博客项目
SpringBoot+vue前后端分离博客项目 Java后端接口开发 1.前言 2.新建Springboot项目 3.整合mybatis plus 第一步:导入jar包 第二步:然后去写配置文件: 第 ...
- 适合新手拿来练习的springboot+vue前后端分离小Demo
前言: 作者:神的孩子在歌唱 大家好,我叫智 练习springboot+vue前后端分离的Demo 一. 设计数据库 二 . springboot项目创建 2.1 基本配置 2.2 创建dao层 三. ...
- 视频教程-SpringBoot+Security+Vue前后端分离开发权限管理系统-Java
SpringBoot+Security+Vue前后端分离开发权限管理系统 10多年互联网一线实战经验,现就职于大型知名互联网企业,架构师, 有丰富实战经验和企业面试经验:曾就职于某上市培训机构数年,独 ...
- 基于flask+vue前后端分离 一款简单的旅游网站源码,带admin管理系统
介绍 毕业设计-flask-vue前后端分离 一款简单的旅游网站,带admin管理系统 软件架构 软件架构说明 使用Python-flask 轻量级框架编写后端程序,前端采用Vue编写,后端接口都在蓝 ...
- 【JAVA程序设计】基于SSM+VUE前后端分离的物流管理系统
基于SSM+VUE前后端分离的物流管理系统 零.项目获取 一.项目简介 二.开发环境 三.项目技术 四.系统架构 五.运行截图 零.项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可 ...
- SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建【后端篇】【快速生成后端代码、封装结果集、增删改查、模糊查找】【毕设基础框架】
前后端分离项目快速搭建[后端篇] 数据库准备 后端搭建 1.快速创建个SpringBoot项目 2.引入依赖 3.编写代码快速生成代码 4.运行代码生成器生成代码 5.编写application.pr ...
- SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(二)
关注公众号[江南一点雨],专注于 Spring Boot+微服务以及前后端分离等全栈技术,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货! 当前后端分离时,权限问题的 ...
最新文章
- [BZOJ2938]:[Poi2000]病毒
- QTextCodec中的setCodecForTr等终于消失了 (Qt5)
- 三星a7108android 7.0,三星A7108系统运行速度变慢变卡顿了_怎么进行具体的刷机教程...
- latex在overleaf可以成功编译运行,没有错误,但是上传到springer期刊的时候总是出现错误?
- DataBseDesign工作笔记005---将excel中的表导入到powerdesigner中
- 苹果 iPhone/iPad 第三方键盘为何没语音听写功能?真相了
- Authentication failed for 错误
- ACER微型计算机支持MSATA,宏基S7超级本惊现双主控mSATA SSD 速度近900MB/s
- 网站防止CC攻击的方法,CC攻击原理及防范方法
- 无透镜计算成像文章简介
- npm install 报错 gyp info it worked if it ends with ok
- electron使用node-pty问题解决
- 画中画效果自由制作,视频、图片都可制作
- Win10_64位系统安装CUDA、CUDDN、深度学习平台Paddle 、PaddleX安装总结
- 前端菜鸟必学!less使用基础讲解
- java 文本域不可编辑_实现表单input文本框不可编辑的三种方法
- 一文详解CAD与图新地球软件中提取高程点的方法图新地球
- Plackett-Luce模型算法介绍
- STM32串口调试助手无法打印数据
- 使用自动化工作流聚合信息,实现个人数字生活的信息聚合
热门文章
- 通过传址交换两个字符
- Linq 分组(group by)求和(sum)并且按照分隔符(join)分割列数据
- Custom Sharepoint Lookup Field
- Cassandra Leveled Compaction源码阅读
- 剑指 Offer II 109. 开密码锁
- android显示字符串,Android自定义View用切图显示字符串
- java小程序之学生信息_java小程序之学生信息录入界面
- 清华大学python视频_涨见识了,清华大学全套Python579集视频教程泄露,拿走学去吧...
- 内衬纸缺陷在线检测系统
- layui如何获取父节点的父节点_layui树形组件(右键、父节点选中子节点全被选中)...