专栏文章 极简测试管理系统: 10 分钟第一个功能之增删改查列表

simonpatrick · 2024年01月10日 · 最后由 测试新人 回复于 2024年01月11日 · 3563 次阅读

最简单功能其实就是一个增删改查表,实现一个系统字典表需要做哪些?
系统字典表主要用来记录一些系统常量:

  1. 比如什么优先级 P1,P2 这种可以用来配置的东西
  2. 这个功能是最典型的后台增删改查功能,是学习 erupt 最好的入门案例

先说实现的效果

实现以上内容需要哪些工作:

  • 数据库设计?
  • 前端?
  • 后端?
  • 其实只要一个 JAVA 类......, 认真的.......

可以说都需要,也可以说都不需要.

实际上需要做的是:

  1. 定义一个 JAVA 类和数据库表对应
  2. 每个需要的页面操作的字段使注解来说明页面如何展示

一个 JAVA 文件一个增删改查页面

package io.fluentqa.workspace.base.model;

import io.fluentqa.workspace.base.handlers.SqlTagFetchHandler;
import lombok.Data;
import xyz.erupt.annotation.Erupt;
import xyz.erupt.annotation.EruptField;
import xyz.erupt.annotation.sub_erupt.Layout;
import xyz.erupt.annotation.sub_erupt.Power;
import xyz.erupt.annotation.sub_field.Edit;
import xyz.erupt.annotation.sub_field.EditType;
import xyz.erupt.annotation.sub_field.View;
import xyz.erupt.annotation.sub_field.sub_edit.InputType;
import xyz.erupt.annotation.sub_field.sub_edit.Search;
import xyz.erupt.annotation.sub_field.sub_edit.TagsType;

import javax.persistence.Entity;
import javax.persistence.Table;


@Erupt(name = "产品字典值配置",
        power = @Power(importable = true,
                export = true),
        layout = @Layout(
                tableLeftFixed = 3,
                pageSize = 30
        ))
@Table(name = "master_data")
@Entity
@Data
public class MasterData extends ModelWithValidFlagVo {

    @EruptField(
            views = @View(title = "分类"),
            edit = @Edit(
                    search = @Search(vague = true),
                    title = "获取可选种类",
                    type = EditType.TAGS,
                    desc = "动态获取可选种类",
                    tagsType = @TagsType(
                            fetchHandler = SqlTagFetchHandler.class,
                            fetchHandlerParams = "select distinct category from master_data where valid=true"
                    ))
    )
    private String category;

    @EruptField(
            views = @View(
                    title = "名称"
            ),
            edit = @Edit(
                    title = "名称",
                    type = EditType.INPUT, search = @Search, notNull = true,
                    inputType = @InputType
            )
    )
    private String name;

    @EruptField(
            views = @View(
                    title = "详细描述"
            ),
            edit = @Edit(
                    title = "详细描述",
                    type = EditType.INPUT,
                    inputType = @InputType
            )
    )
    private String detail;

    @EruptField(
            views = @View(
                    title = "代号"
            ),
            edit = @Edit(
                    title = "代号",
                    type = EditType.INPUT, search = @Search, notNull = true,
                    inputType = @InputType
            )
    )
    private String code;

}

启动看效果

  1. 一开始什么也没有
  2. 进行菜单配置:类型选择和类名一致就可以了

然后前台不够酷炫,但是确实足够可以使用. 这是第一篇关于如何做一个极简测试管理系统.
后续会在加入:

  1. 测试用例管理
  2. 接口生命周期管理和接口自动化
  3. 报表
  4. 任务管理
  5. 造数功能
  6. 。。。。。。。

以上功能实现都不复杂,但是功能都可以实现,并且够用。 基本上 METERSPHERE 的大部分功能都可以快速实现。
视频教程:极简测试管理系统: 10 分钟第一个功能之增删改查列表

这些绝对足够使用和低成本,又能练手,又有产出,说不定还能交差,从做出点东西开始逐步深入一些代码技能,绝对对大部分人都有用,而不像一些理念,是很好,但是做起来很难,也不容易上手 .

示例代码,里面包含了实现代码和环境配置。
下载之后,可以自己启动尝试,一点都不复杂但却能动起手来了。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 1 条回复 时间 点赞

居然可以通过注解生成前端的代码,Java 的框架真是丰富,这个感觉很适合测试用

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册