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} 处理后实际的预期结果内容

当前参数池: 显示当前用例运行之后的可用参数变量

异常信息: 显示当前用例运行出现的异常信息

关于异常的种类分析还需要统计后,也许后面会更新在文档上,目前如果出现异常请仔细查看 请求信息 ,和 异常信息 等内容


  1. 扩展脚本

每次编辑之后,需要保存才会生效,此处的函数仅能作用于 接口path,用例请求参数、预期结果 中,不支持调试

  1. Json校验

提供了实时的json格式校验

FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb相关推荐

  1. 基于SpringBoot+Vue前后端分离的在线教育平台项目

    基于SpringBoot+Vue前后端分离的在线教育平台项目 赠给有缘人,希望能帮助到你!也请不要吝惜你的大拇指,你的Star.点赞将是对我最大的鼓励与支持! 开源传送门: 后台:Gitee | Gi ...

  2. React / Vue 前后端分离项目实现微信分享教程

    小编推荐:Fundebug专注于JavaScript.微信小程序.微信小游戏,Node.js和Java实时BUG监控.真的是一个很好用的bug监控费服务,众多大佬公司都在使用. 网上非常多的微信分享例 ...

  3. SpringBoot+vue前后端分离博客项目

    SpringBoot+vue前后端分离博客项目 Java后端接口开发 1.前言 2.新建Springboot项目 3.整合mybatis plus 第一步:导入jar包 第二步:然后去写配置文件: 第 ...

  4. 适合新手拿来练习的springboot+vue前后端分离小Demo

    前言: 作者:神的孩子在歌唱 大家好,我叫智 练习springboot+vue前后端分离的Demo 一. 设计数据库 二 . springboot项目创建 2.1 基本配置 2.2 创建dao层 三. ...

  5. 视频教程-SpringBoot+Security+Vue前后端分离开发权限管理系统-Java

    SpringBoot+Security+Vue前后端分离开发权限管理系统 10多年互联网一线实战经验,现就职于大型知名互联网企业,架构师, 有丰富实战经验和企业面试经验:曾就职于某上市培训机构数年,独 ...

  6. 基于flask+vue前后端分离 一款简单的旅游网站源码,带admin管理系统

    介绍 毕业设计-flask-vue前后端分离 一款简单的旅游网站,带admin管理系统 软件架构 软件架构说明 使用Python-flask 轻量级框架编写后端程序,前端采用Vue编写,后端接口都在蓝 ...

  7. 【JAVA程序设计】基于SSM+VUE前后端分离的物流管理系统

    基于SSM+VUE前后端分离的物流管理系统 零.项目获取 一.项目简介 二.开发环境 三.项目技术 四.系统架构 五.运行截图 零.项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可 ...

  8. SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建【后端篇】【快速生成后端代码、封装结果集、增删改查、模糊查找】【毕设基础框架】

    前后端分离项目快速搭建[后端篇] 数据库准备 后端搭建 1.快速创建个SpringBoot项目 2.引入依赖 3.编写代码快速生成代码 4.运行代码生成器生成代码 5.编写application.pr ...

  9. SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(二)

    关注公众号[江南一点雨],专注于 Spring Boot+微服务以及前后端分离等全栈技术,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货! 当前后端分离时,权限问题的 ...

最新文章

  1. [BZOJ2938]:[Poi2000]病毒
  2. QTextCodec中的setCodecForTr等终于消失了 (Qt5)
  3. 三星a7108android 7.0,三星A7108系统运行速度变慢变卡顿了_怎么进行具体的刷机教程...
  4. latex在overleaf可以成功编译运行,没有错误,但是上传到springer期刊的时候总是出现错误?
  5. DataBseDesign工作笔记005---将excel中的表导入到powerdesigner中
  6. 苹果 iPhone/iPad 第三方键盘为何没语音听写功能?真相了
  7. Authentication failed for 错误
  8. ACER微型计算机支持MSATA,宏基S7超级本惊现双主控mSATA SSD 速度近900MB/s
  9. 网站防止CC攻击的方法,CC攻击原理及防范方法
  10. 无透镜计算成像文章简介
  11. npm install 报错 gyp info it worked if it ends with ok
  12. electron使用node-pty问题解决
  13. 画中画效果自由制作,视频、图片都可制作
  14. Win10_64位系统安装CUDA、CUDDN、深度学习平台Paddle 、PaddleX安装总结
  15. 前端菜鸟必学!less使用基础讲解
  16. java 文本域不可编辑_实现表单input文本框不可编辑的三种方法
  17. 一文详解CAD与图新地球软件中提取高程点的方法图新地球
  18. Plackett-Luce模型算法介绍
  19. STM32串口调试助手无法打印数据
  20. 使用自动化工作流聚合信息,实现个人数字生活的信息聚合

热门文章

  1. 通过传址交换两个字符
  2. Linq 分组(group by)求和(sum)并且按照分隔符(join)分割列数据
  3. Custom Sharepoint Lookup Field
  4. Cassandra Leveled Compaction源码阅读
  5. 剑指 Offer II 109. 开密码锁
  6. android显示字符串,Android自定义View用切图显示字符串
  7. java小程序之学生信息_java小程序之学生信息录入界面
  8. 清华大学python视频_涨见识了,清华大学全套Python579集视频教程泄露,拿走学去吧...
  9. 内衬纸缺陷在线检测系统
  10. layui如何获取父节点的父节点_layui树形组件(右键、父节点选中子节点全被选中)...