diff --git a/README.md b/README.md index 0bbfc8272e..205338ace2 100755 --- a/README.md +++ b/README.md @@ -13,20 +13,19 @@ MeterSphere 是一站式的开源企业级持续测试平台,涵盖测试跟踪、接口测试、性能测试、团队协作等功能,兼容JMeter 等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量软件的交付。 -- 测试跟踪: 远超 TestLink 的使用体验; -- 接口测试: 类似 Postman 的体验; -- 性能测试: 兼容 JMeter,支持 Kubernetes 和云环境,轻松支持高并发、分布式的性能测试; -- 团队协作: 两级租户体系,天然支持团队协作。 +- 测试跟踪: 远超 TestLink 的使用体验; +- 接口测试: 类似 Postman 的体验; +- 性能测试: 兼容 JMeter,支持 Kubernetes 和云环境,轻松支持高并发、分布式的性能测试; +- 团队协作: 两级租户体系,天然支持团队协作。 ![产品定位](https://metersphere.oss-cn-hangzhou.aliyuncs.com/img/ct-devops.png) - > 如需进一步了解 MeterSphere 开源项目,推荐阅读 [MeterSphere 的初心和使命](https://mp.weixin.qq.com/s/DpCt3BNgBTlV3sJ5qtPmZw) ## 在线体验 -- 环境地址:https://demo.metersphere.com/ -- 用户名:demo -- 密码:P@ssw0rd123.. +- 环境地址:https://demo.metersphere.com/ +- 用户名:demo +- 密码:P@ssw0rd123.. | :warning: 注意 | |:---------------------------| @@ -38,8 +37,8 @@ MeterSphere 是一站式的开源企业级持续测试平台,涵盖测试跟 仅需两步快速安装 MeterSphere: - 1. 准备一台不小于 8 G内存的 64位 Linux 主机; - 2. 以 root 用户执行如下命令一键安装 MeterSphere。 +1. 准备一台不小于 8 G内存的 64位 Linux 主机; +2. 以 root 用户执行如下命令一键安装 MeterSphere。 ```sh curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh @@ -47,8 +46,8 @@ curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/qu 文档和演示视频: -- [完整文档](https://metersphere.io/docs/) -- [演示视频](http://video.fit2cloud.com/%E3%80%90%E6%BC%94%E7%A4%BA%E8%A7%86%E9%A2%91%E3%80%91202006%20MeterSphere%20v1.0%20%E5%8A%9F%E8%83%BD%E6%BC%94%E7%A4%BA.mp4) +- [完整文档](https://metersphere.io/docs/) +- [演示视频](http://video.fit2cloud.com/%E3%80%90%E6%BC%94%E7%A4%BA%E8%A7%86%E9%A2%91%E3%80%91202006%20MeterSphere%20v1.0%20%E5%8A%9F%E8%83%BD%E6%BC%94%E7%A4%BA.mp4) ## MeterSphere 企业版 [申请企业版使用](https://jinshuju.net/f/CzzAOe) @@ -63,7 +62,7 @@ curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/qu MeterSphere 版本号命名规则为:v大版本.功能版本.Bug修复版本。比如: -``` +```text v1.0.1 是 v1.0.0 之后的Bug修复版本; v1.1.0 是 v1.0.0 之后的功能版本。 ``` @@ -71,10 +70,10 @@ v1.1.0 是 v1.0.0 之后的功能版本。 ## 技术优势 -- 全生命周期: 能够覆盖从测试计划到测试执行、测试报告分析的不同阶段; -- 自动化 & 扩展性: 支持接口和性能的自动化测试,可以充分利用云弹性实现超大规模的性能测试; -- 持续测试: 能够与持续集成工具无缝集成,支撑企业实现测试左移; -- 团队协作: 支持不同规模的测试团队,小到几个人的测试团队、大到数百人的测试中心。 +- 全生命周期: 能够覆盖从测试计划到测试执行、测试报告分析的不同阶段; +- 自动化 & 扩展性: 支持接口和性能的自动化测试,可以充分利用云弹性实现超大规模的性能测试; +- 持续测试: 能够与持续集成工具无缝集成,支撑企业实现测试左移; +- 团队协作: 支持不同规模的测试团队,小到几个人的测试团队、大到数百人的测试中心。 ## 功能列表 @@ -276,11 +275,11 @@ v1.1.0 是 v1.0.0 之后的功能版本。 ## 技术栈 -- 后端: [Spring Boot](https://www.tutorialspoint.com/spring_boot/spring_boot_introduction.htm) -- 前端: [Vue.js](https://vuejs.org/) -- 中间件: [MySQL](https://www.mysql.com/), [Kafka](https://kafka.apache.org/) -- 基础设施: [Docker](https://www.docker.com/), [Kubernetes](https://kubernetes.io/) -- 测试引擎: [JMeter](https://jmeter.apache.org/) +- 后端: [Spring Boot](https://www.tutorialspoint.com/spring_boot/spring_boot_introduction.htm) +- 前端: [Vue.js](https://vuejs.org/) +- 中间件: [MySQL](https://www.mysql.com/), [Kafka](https://kafka.apache.org/) +- 基础设施: [Docker](https://www.docker.com/), [Kubernetes](https://kubernetes.io/) +- 测试引擎: [JMeter](https://jmeter.apache.org/) ## 致谢 diff --git a/ROADMAP.md b/ROADMAP.md index 3921fe2abb..adfdc59a06 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,61 +1,61 @@ - ## v1.1 (已发布) + ## v1.1 (已发布) -- [x] 浏览器插件支持编辑录制后的内容 -- [x] 插件录制的脚本支持用作接口测试 -- [x] 动态展示性能测试报告 -- [x] 优化性能测试稳定性及资源使用效率 -- [x] 提供 Jenkins 插件 -- [x] 提供 Swagger API 文档 -- [x] 增加针对项目的环境配置、全局变量管理功能 -- [x] 支持 JMX/Swagger 等方式导入接口测试 -- [x] 支持 LDAP 登录 -- [ ] 推出在线体验环境 +- [x] 浏览器插件支持编辑录制后的内容 +- [x] 插件录制的脚本支持用作接口测试 +- [x] 动态展示性能测试报告 +- [x] 优化性能测试稳定性及资源使用效率 +- [x] 提供 Jenkins 插件 +- [x] 提供 Swagger API 文档 +- [x] 增加针对项目的环境配置、全局变量管理功能 +- [x] 支持 JMX/Swagger 等方式导入接口测试 +- [x] 支持 LDAP 登录 +- [ ] 推出在线体验环境 ## v1.2 (已发布) -- [x] 接口测试支持前后置脚本 -- [x] 接口测试支持常用函数 -- [x] 接口测试批量执行 -- [x] 接口测试单接口调试功能 -- [ ] 测试用例增加用例评审功能 -- [x] 测试用例与缺陷管理工具的集成 -- [x] 测试用例增加批量操作类型 -- [ ] 增加消息通知 -- [ ] 测试报告导出 -- [ ] 优化性能测试压力配置模式 +- [x] 接口测试支持前后置脚本 +- [x] 接口测试支持常用函数 +- [x] 接口测试批量执行 +- [x] 接口测试单接口调试功能 +- [ ] 测试用例增加用例评审功能 +- [x] 测试用例与缺陷管理工具的集成 +- [x] 测试用例增加批量操作类型 +- [ ] 增加消息通知 +- [ ] 测试报告导出 +- [ ] 优化性能测试压力配置模式 ## v1.3 (已发布) -- [x] 测试跟踪:用例评审机制 -- [x] 测试跟踪:测试计划关联用例支持跨项目 -- [ ] 测试跟踪:测试用例支持贴图 -- [x] 测试跟踪:支持思维导图格式导入用例 -- [x] 接口测试:增加逻辑控制环节 -- [x] 接口测试:支持场景拼接 -- [x] 接口测试:支持 SQL 类型的请求 -- [x] 接口测试:支持自定义 Hosts -- [x] 接口测试:参数增加启用禁用 -- [ ] 性能测试:增加压测模式 -- [x] 其他:消息通知 -- [x] 其他:报告导出 +- [x] 测试跟踪:用例评审机制 +- [x] 测试跟踪:测试计划关联用例支持跨项目 +- [ ] 测试跟踪:测试用例支持贴图 +- [x] 测试跟踪:支持思维导图格式导入用例 +- [x] 接口测试:增加逻辑控制环节 +- [x] 接口测试:支持场景拼接 +- [x] 接口测试:支持 SQL 类型的请求 +- [x] 接口测试:支持自定义 Hosts +- [x] 接口测试:参数增加启用禁用 +- [ ] 性能测试:增加压测模式 +- [x] 其他:消息通知 +- [x] 其他:报告导出 ## v1.4 (已发布) -- [x] 测试跟踪模块编辑测试用例支持上传附件 -- [x] 支持上传并引用自定义Jar包 -- [x] 接口测试支持TCP协议请求 -- [x] 全新的消息通知设置,支持企业微信、钉钉机器人通知 +- [x] 测试跟踪模块编辑测试用例支持上传附件 +- [x] 支持上传并引用自定义Jar包 +- [x] 接口测试支持TCP协议请求 +- [x] 全新的消息通知设置,支持企业微信、钉钉机器人通知 ## v1.5 (开发中) -- [ ] 性能测试:优化并发数、持续时间等压力配置方式 -- [ ] 性能测试:支持使用了额外插件的 JMX 文件 -- [ ] 性能测试:自动修改 csv 等数据文件引用路径 -- [ ] 性能测试:优化性能测试报告展示 -- [ ] 测试跟踪:支持对接禅道同步缺陷 -- [ ] 其他:Jenkins 插件支持 pipeline 方式调用 +- [ ] 性能测试:优化并发数、持续时间等压力配置方式 +- [ ] 性能测试:支持使用了额外插件的 JMX 文件 +- [ ] 性能测试:自动修改 csv 等数据文件引用路径 +- [ ] 性能测试:优化性能测试报告展示 +- [ ] 测试跟踪:支持对接禅道同步缺陷 +- [ ] 其他:Jenkins 插件支持 pipeline 方式调用 ## 规划中 -- [ ] 接口测试支持添加 WebSocket 协议请求 -- [ ] 接口管理功能 -- [ ] 集成云平台动态管理测试资源池 -- [ ] 支持 K8s 集群作为测试资源池 -- [ ] 移动端测试支持 -- [ ] UI 功能测试支持 +- [ ] 接口测试支持添加 WebSocket 协议请求 +- [ ] 接口管理功能 +- [ ] 集成云平台动态管理测试资源池 +- [ ] 支持 K8s 集群作为测试资源池 +- [ ] 移动端测试支持 +- [ ] UI 功能测试支持 diff --git a/backend/src/main/java/io/metersphere/base/domain/Project.java b/backend/src/main/java/io/metersphere/base/domain/Project.java index 4b934ac658..25403e763e 100644 --- a/backend/src/main/java/io/metersphere/base/domain/Project.java +++ b/backend/src/main/java/io/metersphere/base/domain/Project.java @@ -21,5 +21,7 @@ public class Project implements Serializable { private String jiraKey; + private String zentaoId; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/base/domain/ProjectExample.java b/backend/src/main/java/io/metersphere/base/domain/ProjectExample.java index 7c93737e82..8f83d6ad88 100644 --- a/backend/src/main/java/io/metersphere/base/domain/ProjectExample.java +++ b/backend/src/main/java/io/metersphere/base/domain/ProjectExample.java @@ -643,6 +643,76 @@ public class ProjectExample { addCriterion("jira_key not between", value1, value2, "jiraKey"); return (Criteria) this; } + + public Criteria andZentaoIdIsNull() { + addCriterion("zentao_id is null"); + return (Criteria) this; + } + + public Criteria andZentaoIdIsNotNull() { + addCriterion("zentao_id is not null"); + return (Criteria) this; + } + + public Criteria andZentaoIdEqualTo(String value) { + addCriterion("zentao_id =", value, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdNotEqualTo(String value) { + addCriterion("zentao_id <>", value, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdGreaterThan(String value) { + addCriterion("zentao_id >", value, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdGreaterThanOrEqualTo(String value) { + addCriterion("zentao_id >=", value, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdLessThan(String value) { + addCriterion("zentao_id <", value, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdLessThanOrEqualTo(String value) { + addCriterion("zentao_id <=", value, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdLike(String value) { + addCriterion("zentao_id like", value, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdNotLike(String value) { + addCriterion("zentao_id not like", value, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdIn(List values) { + addCriterion("zentao_id in", values, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdNotIn(List values) { + addCriterion("zentao_id not in", values, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdBetween(String value1, String value2) { + addCriterion("zentao_id between", value1, value2, "zentaoId"); + return (Criteria) this; + } + + public Criteria andZentaoIdNotBetween(String value1, String value2) { + addCriterion("zentao_id not between", value1, value2, "zentaoId"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/backend/src/main/java/io/metersphere/base/mapper/ProjectMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ProjectMapper.xml index a5939ef7bd..4ed30cebfe 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ProjectMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ProjectMapper.xml @@ -10,6 +10,7 @@ + @@ -70,7 +71,8 @@ - id, workspace_id, `name`, description, create_time, update_time, tapd_id, jira_key + id, workspace_id, `name`, description, create_time, update_time, tapd_id, jira_key, + zentao_id @@ -198,6 +208,9 @@ jira_key = #{record.jiraKey,jdbcType=VARCHAR}, + + zentao_id = #{record.zentaoId,jdbcType=VARCHAR}, + @@ -212,7 +225,8 @@ create_time = #{record.createTime,jdbcType=BIGINT}, update_time = #{record.updateTime,jdbcType=BIGINT}, tapd_id = #{record.tapdId,jdbcType=VARCHAR}, - jira_key = #{record.jiraKey,jdbcType=VARCHAR} + jira_key = #{record.jiraKey,jdbcType=VARCHAR}, + zentao_id = #{record.zentaoId,jdbcType=VARCHAR} @@ -241,6 +255,9 @@ jira_key = #{jiraKey,jdbcType=VARCHAR}, + + zentao_id = #{zentaoId,jdbcType=VARCHAR}, + where id = #{id,jdbcType=VARCHAR} @@ -252,7 +269,8 @@ create_time = #{createTime,jdbcType=BIGINT}, update_time = #{updateTime,jdbcType=BIGINT}, tapd_id = #{tapdId,jdbcType=VARCHAR}, - jira_key = #{jiraKey,jdbcType=VARCHAR} + jira_key = #{jiraKey,jdbcType=VARCHAR}, + zentao_id = #{zentaoId,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR} \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtProjectMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtProjectMapper.xml index c4c9f8b821..8fdc44d60d 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtProjectMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtProjectMapper.xml @@ -4,7 +4,7 @@