项目简介
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插件触发等多种执行方式;
串行、并行两种批量执行方式自由选择;
支持指定测试资源池远程执行;
可多场景串行、并行执行;
场景一键创建性能测试;
场景一键复制;
场景批量执行可自由选择独立报告或集合报告;
场景一键添加到测试计划;
除此之外还有: