基于fastapi+httprunner+vue的接口自动化测试平台(附源码)

一、概述

Rocket是一款接口自动化测试平台,服务端是Python,前端Vue,源码下载方式放到末尾了。
关键依赖:

  • fastapi
  • httprunner(v3.1.11版本)
  • apscheduler
  • element-ui

二、功能模块

核心功能模块基本开发完成,可以直接拿来用,一些细节功能待开发,具体如下:

  • 系统管理
  • 管理中心
  • 接口测试

三、核心功能使用

系统管理

用户管理

包含常规的功能,对用户的增、删、改、查、启用、禁用,没什么好说的。

字典管理

这里主要是系统常用的字典配置

比如用例等级:P0、P1、P2,接口测试中使用的校验器,都可以通过配置来实现。

管理中心

项目管理

目前只是实现了项目之间的数据隔离,可以通过顶部下拉来切换项目,后期会通过项目成员配置来实现权限管控

脚本管理

脚本管理功能继承了Httprunner中的debugtalk.py的功能。

支持创建N个脚本模块,和在线调试功能。

ps:在环境变量中设置后,在你的接口用例中直接引用,引用方式:${get_random_string(11)}(使用习惯都继承httprunner)

环境管理

接口、用例、计划运行的环境配置,介绍下几个中心字段

Pyshell:取名灵感来自Jmeter的Beanshell,在脚本管理也提到过,这里可以选择多个脚本模块,在接口用例中可以直接引用,在这里可以编写如加密、时间计算等函数供用例使用。

Service:就是微服务名,主要解决一个自动化场景,如果有A产品调用B产品接口来完成闭环,域名又不一样,那么可以通过这里配置多套域名解决。

Variable:全局变量,作用域此环境配置。

Headers:请求头,如果接口中不写,则使用环境配置的,如果接口有,则会合并,存在相同项以接口中的为优先。

接口测试

接口管理

接口编辑

新建目录,用来管理用例

新建接口,这里的接口跟httprunner中的case是一个意思(后面的用例,在httprunner中也较case,只不过是多个case组合的case,有点绕 -.- )

Service:属于哪个产品,就选哪个

Variables:如果有变量在这里设置,作用域同Httprunner的case中的变量

Header:请求头

  • 推荐通用信息部分统一写在配置中,比如Content-Type,不需要每个API单独写
  • 请求头中的登录信息,比如token,推荐直接使用变量,而不是调用函数,具体后续详细分析

Request:请求体

  • form: 对应的Content-Type是application/x-www-form-urlencoded
  • json:对应的Content-Type是application/json

Validator:断言,支持Httprunner中所有的验证器,也可以自定义

Extract:参数提取

Hooks:钩子函数

  • setup_hooks:执行前处理方法
  • teardown:执行后处理方法

保存后就可以执行了,测试结果包含了一些基本信息,如图

接口执行结果

Request:请求的信息,包含url、headers、body等

Body:返回的内容

Response:返回信息,包含header,status_code,headers等

Validator:断言结果

Extract:提取结果

用例管理

编辑完成接口后,就可以用接口来组装用例了,目录、列表部分就不多说了。

我们重点来说下用例组装,可以通过【添加步骤】打开接口列表

再通过加入步骤,即可加入到用例列表中

  • 支持上下拖拽来排序
  • 也可以通过启用禁用来决定是否执行

调试结果展示同接口的一致,用例这边展示的是多个接口的合集而已

测试计划

cron:任务的定时执行时间

运行环境:需要在什么环境执行

webhook:钉钉群消息通知

点击计划名称,可以进入计划详情,关联已经完成的用例

  • 这边的用例是无序的,建议每条用例闭环,互不影响

报告中心

所有的计划执行报告都在这边展示

报告查看内容

posted @ 2023-07-10 22:27  测试充电宝  阅读(700)  评论(1编辑  收藏  举报