大家好~我是小方,欢迎大家关注笋货测试笔记体完记得俾个like呀
背景
以前的造数平台(fastapi)将造数脚本进行api化,然后用fastapi自带的swagger文档进行请求,没有web页面,不太方便,加上写造数脚本相当于写成了一个接口,对于不太熟悉fastapi的同学debug起来及其困难···
综上所述,将平台与造数脚本进行解耦,采用apidoc生成脚本入参出参数据,生成web界面,动态导包作为核心执行方法~
哦,对了这个数据工厂就叫FunLine数据工厂,fun有趣的意思,line流水线般造数据,结合起来就如某土康的流水线一样,想造什么就造什么FunLine
一、数据工厂流程图
二、登录注册介绍
这里没啥好讲的,很普通的一个功能···有能力的小伙伴可自行接入公司的SSO服务,公司里的数据工厂目前是接入SSO服务,通过员工号+密码登录即可
三、权限介绍
权限类型
数据工厂里面一共有3种角色
- 普通用户
级别高于访客,能浏览许多内容,但有的模块不能新增/编辑
- 组长
这个概念很贴切,小组长可以看做为超级管理员放权的对象,很多事情如果全部找管理员,那肯定会需要很多管理员,这不是我们设计的初衷,所以组长可以理解为次级管理员,能做很多事情的用户角色
- 超级管理员
拥有全部权限的用户,可以修改/新增/删除任何内容
修改权限
第一个登录进来的用户自动升级为管理员,之后其他人注册默认都是普通用户。如果期间需要变更某个用户的权限,请联系管理员,在用户管理页面可以更改用户角色
四、项目管理
项目创建
目前只有超级管理员和组长可以进行创建项目,普通用户是不能创建项目的哦~
项目配置
- 项目名称
随便填上这个项目名称即可
- 脚本目录名
配置的是脚本的执行目录
- 项目负责人
为拥有该项目所有权限的用户,可以对项目进行任何操作
- 项目拉取方式
目前可选择ssh和http拉取方式
- git项目
这里配置的是gitlab的脚本项目,名称一定要跟gitlab项目名称保持一致!!!
- git地址
直接复制gitlab的项目地址即可,这里要注意的是,HTTP形式的拉取,地址为http开头的,SSH形式的拉取,地址为git开头
- git分支名
填写你要拉取的项目分支即可
- git账号
拉取该项目使用的账号
- git密码
拉取该项目使用的账号的密码(这里git密码采用AES进行加密存储,请大家放心哦,后端加密存储,前端解密查看,杜绝F12查看密码,嘻嘻)
- 项目描述
填上该项目的描述即可
- 是否私有
在下面的项目权限进行介绍~
项目权限介绍
- 公有/私有
项目本身存在公有/私有的区别,设置为私有项目,除项目组长、组员、项目负责人以及超管之外,其他人均无法看到;设置为公有项目,所有都可以看到该项目,但是执行项目里的脚本需要配置项目的权限
- 项目角色
项目分为项目负责人(可以理解为项目的超级管理员):可以配置项目权限(添加/修改/删除组员),修改项目信息,删除项目,执行项目里的脚本
组长:可以配置项目权限(添加/修改/删除组员),修改项目信息,删除项目,执行项目里的脚本,查看项目详情,初始化项目,同步项目
组员:可执行项目里的脚本,初始化项目,同步项目
- 项目操作
目前项目操作有以下几种:
- 配置权限:跳转到项目详情,进行配置项目权限(添加/修改/删除组员),修改项目信息
- 初始化项目:一开始创建完项目,需要初始化项目,相当于clone项目
- 同步项目:每次gitlab项目更新了,需要手动执行同步项目的场景,生成脚本数据(第一次录入项目时,也要进行同步项目)
- 删除项目:相当于删除整个项目,此操作需谨慎操作,会删除项目下的所有造数场景
- git Webhook同步项目:在gitlab项目的设置中,添加平台同步链接,每次推送代码时,即可同步项目里面的场景
插播一个小坑
这里更新脚本项目时相当于是热更,重启了整个服务···如果重启服务的时候,刚好有人执行脚本,会造成阻塞~~(这个我暂时没遇到过,内部的数据工厂已经落地了大半年,小伙伴没反馈过=。=可能并发并不高吧 hhhhhh)~~正确做法应该是用importlib.reload
进行重新加载,使用uvicorn
时启动时如何进行热更,具体可看这个RestarUvicorn.py
项目是脚本的基石,先有项目,再有脚本,最后才能执行造数脚本
五、场景介绍
这里所说的场景,即等于项目里的脚本
这里场景,我们使用了业务线进行分类,【我收藏的】后面的tab栏,即为业务线,业务线是棣属于项目下,而业务线是由用户自行编写脚本时,填入的注释,如何编写脚本我们后面会介绍。
点击任意一个卡片,即可进入到场景详情。
场景操作介绍
目前场景操作有以下几种:
- 同步场景
可以选择项目进行同步场景,拉取场景数据
- 保存场景
在请求示例tab栏,编写好脚本的入参,点击【保存场景】,输入场景名称后,即可保存当前场景的入参数据
- 运行场景
在请求示例tab栏,编写好脚本的入参,点击运行,即可执行脚本
- 外部链接运行场景
在参数组合tab栏,点击外调,即可复制该场景的调用链接,而脚本的入参,为该参数组合的入参数据,将链接放入到浏览器回车后,即可自动执行
- RPC运行场景
api.fangfun.xyz/api/cases/r… 后面拼接方法名,如下面的栗子
或者直接点击RPC调用按钮,即可复制到剪贴板
该脚本postman调用地址为:api.fangfun.xyz/api/cases/r…
入参即为脚本维护的入参
场景运行日志
这里运行日志需要我们通过装饰器手动注入,如果你的脚本没有运行日志返回,就不会有运行日志···我们来拿创建项目这个脚本来做示例···
脚本中返回执行结果,还有运行日志
手动append
进去
最终场景运行日志长这样
内部数据工厂某个脚本运行日志
六、调用记录介绍
这里记录着各个脚本的调用记录,入参、出参、运行日志、调用状态
- 运行成功
脚本里面的返参含有responseCode或者code,且状态码等于200或者0即为运行成功这个可根据实际情况界定运行成功,各个公司不太一样
- 运行异常
跟运行成功相反的判断
- 运行失败
运行脚本时,出现报错,无法执行脚本
七、数据报表介绍
这里没啥好说的,报表数据,好看完事了!!!升职加薪,当上总经理,出任CEO,迎娶白富美,走向人生巅峰