japi项目需求分析阶段¶
项目简介¶
japi项目,是一个接口自动化平台开发项目,由【交流群】招人共建,基于JMeter,参考MeterSphere,以学习为目的,完成一个SpringBoot+Vue技术栈的纯粹的接口自动化平台开发。
项目成员¶
经过“填写人员分工表”以后,最终有38人参与了本次项目:
刚哥、布鲁、嘉宥、守正、大刚、风雨、奉孝、大姚、畅月、渔夫、小禹、钰琪、天湖、迷龙、肥涵、胖子、局长、呼呼、明亮、安宁、木棉、番茄、玥玥、哈瑞、虚竹、十五、阿新、卡罗、大白、库昊、左右、小涌、古风、玉洁、小韩、小卷、千凝、昆明。
随着项目进行,后续“提交学习总结”等环节层层递进,真正留下来的项目成员,会在GitHub的README中署名。
在填表时收集了大家的历史经验,这里汇总整理了一下,供参考:
“Vue+Django写过测试平台;SpringBoot写过后端应用;Python小工具开发;Python+Pytest+Requests搭建接口自动化框架;Python+Unittest或Pytest自动化测试框架搭建及脚本开发;各类开源自动化测试平台搭建,如:HttpRunnerManager、流马、Yapi、Sonic等;js+Django2实现UI自动化测试平台;使Testng框架进行接口测试;Vue+fastapi写过测试平台;python+selenium UI自动化;python+httprunner,接口文档解析自动生成字段校验用例;python+RobotFramework做过UI;Java做过单元测试,熟悉基础语法;学过JavaSE,JavaEE,实战经验不多;Python Pyqt GUI工具开发;Python 接口自动化、APP自动化框架设计及编码;独立负责主导Python+Locust性能测试;三方库和标准库:unittest、pytest、appium、selenium、request、httprunner;画过简单的html、css;App UI自动化框架搭建:pytest+appium+allure+jenkins接口自动化框架搭建:pytest+request+allure+jenkins二次开发及维护过flask+vue接口测试平台;二次开发及维护过springboot+angularUI测试平台;Pytest+Playwright UI自动化脚本编写;”
我总结了几个关键字:Vue、Django、SpringBoot、Flask、FastAPI、ElementUI、RobotFramework、脚本开发、工具开发、平台开发、接口自动化、UI自动化、APP自动化。
项目计划¶
招募,人员分工,需求分析,设计,编码,测试,上线。
由于是以学习为目的,加上都是业余时间投入,也有其他事情要忙,所以该项目不会像真正项目那样,设置里程碑和交付节点,会给足够的学习时间,战线拉得比较长,过程大于结果。
需求分析¶
MeterSphere官方给出的功能列表,接口自动化相关的模块有接口定义和接口自动化。
接口定义包括以下功能:
在线添加并编辑接口定义; 以树状形式展示项目的模块及对应接口; 支持HTTP、Dubbo、SQL、TCP类型接口请求; 支持通过MeterSphere Json、Postman、Swagger 等多种格式文件快速导入接口,Swagger可通过URL定时同步; 支持接口快捷调试; 根据接口定义快速配置HTTP、TCP协议Mock服务; API列表、CASE列表、文档模式多种模式灵活切换; 接口页面API、TEST、CASE、MOCK多种操作灵活切换; 测试环境信息管理功能; 单接口用例支持引用环境; 支持正则匹配、jsonpath、xpath等多种类型的断言规则; 支持正则匹配、jsonpath、xpath等多种类型的参数提取; 支持BeanShell、Python、Groovy、JavaScript等多种语言的前后置脚本; 支持前置SQL、后置SQL; 支持上传并引用自定义Jar包; 支持查看接口及用例变更历史; 手动执行、定时任务、Jenkins插件触发等多种执行方式; API、CASE一键复制; CASE一键创建性能测试; 接口定义依赖关系设置;
接口自动化包括以下功能:
创建多接口串联的场景化测试; 从接口列表中快速导入接口或接口用例; 跨项目的场景引用功能; 客户端SSL证书认证配置; 场景用例支持引用环境; 支持条件、循环、事务、等待等多种类型的控制器; 支持正则匹配、jsonpath、xpath等多种类型的断言规则; 支持正则匹配、jsonpath、xpath等多种类型的参数提取; 支持BeanShell、Python、Groovy、JavaScript等多种语言的前后置脚本; 场景变量提供多种类型; 提供Mock数据和JMeter变量表达式; 环境配置增加区分模块、路径两种方式添加域名; 增加全局前置脚本、全局后置脚本; 基于插件机制实现其他协议; 支持上传并引用自定义Jar包; 支持查看场景用例变更历史; 手动执行、定时任务、Jenkins插件触发等多种执行方式; 串行、并行两种批量执行方式自由选择; 支持指定测试资源池远程执行; 可多场景串行、并行执行; 场景一键创建性能测试; 场景一键复制; 场景批量执行可自由选择独立报告或集合报告; 场景一键添加到测试计划;
除此之外还有:
支持消息通知(微信、钉钉、飞书、邮件);
本项目要做的,基本就是这些功能。