压测引擎数据库设计(下)

news2025/4/20 9:35:34

压测引擎数据库设计(下)

引言

        上一篇博文讲述了我们压测引擎数据库设计的上半部分的内容,这一篇博文将会把压测引擎数据库设计最后的内容也讲完。

        上一篇博文已经把下图的“项目”、“环境”和“压测模块”三张表已经设计完成,这一篇博文将会继续完成“压测用例”、“测试报告”和“测试报告明细”这三张表的设计。

压测用例表(Stress Case)设计

压测用例表存储了压力测试的具体用例信息,包括接口名称、请求方法、请求参数等。以下是压测用例表的主要字段:

  • id: 用例的唯一标识符。
  • project_id: 所属项目的ID。
  • module_id: 所属接口模块的ID。
  • environment_id: 所属环境的ID。
  • name: 接口名称。
  • description: 接口描述。
  • assertion: 响应断言。
  • relation: 可变参数。
  • stress_source_type: 压测类型,如 'simple' 或 'jmx'。
  • thread_group_config: 压测参数。
  • jmx_url: jmx文件地址。
  • path: 接口路径。 method: 请求方法,如 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'。
  • query: 查询参数。
  • header: 请求头。
  • body: 请求体。 body_type: 请求体格式,如 'raw', 'form-data', 'json'。
  • gmt_create: 用例创建时间。
  • gmt_modified: 用例最后修改时间。

SQL语句如下:

CREATE TABLE `stress_case` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `project_id` bigint DEFAULT NULL COMMENT '项目id',
  `module_id` bigint unsigned DEFAULT NULL COMMENT '所属接口模块ID',
  `environment_id` bigint DEFAULT NULL,
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '接口名称',
  `description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '接口描述',
  `assertion` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '响应断言',
  `relation` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '可变参数',
  `stress_source_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '压测类型 [simple jmx]',
  `thread_group_config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '压测参数',
  `jmx_url` varchar(524) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'jmx文件地址',
  `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '接口路径',
  `method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '请求方法 [GET POST PUT PATCH DELETE HEAD OPTIONS]',
  `query` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '查询参数',
  `header` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '请求头',
  `body` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '请求体',
  `body_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '请求体格式 [raw form-data json]',
  `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

测试报告表(Report)设计

测试报告表存储了压力测试的执行结果和相关统计信息。以下是测试报告表的主要字段:

  • id: 报告的唯一标识符。
  • project_id: 所属项目的ID。
  • case_id: 所属用例的ID。
  • type: 报告类型。
  • name: 报告名称。
  • execute_state: 执行状态。
  • summary: 摘要信息。
  • start_time: 开始时间。
  • end_time: 结束时间。
  • expand_time: 消耗时间。
  • quantity: 步骤数量。
  • pass_quantity: 通过数量。
  • fail_quantity: 失败数量。
  • gmt_create: 报告创建时间。
  • gmt_modified: 报告最后修改时间。

SQL语句如下:

CREATE TABLE `report` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `project_id` bigint unsigned DEFAULT NULL COMMENT '所属项目ID',
  `case_id` bigint DEFAULT NULL,
  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报告类型',
  `name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报告名称',
  `execute_state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行状态',
  `summary` varchar(1024) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `start_time` bigint unsigned DEFAULT NULL COMMENT '开始时间',
  `end_time` bigint unsigned DEFAULT NULL COMMENT '结束时间',
  `expand_time` bigint unsigned DEFAULT NULL COMMENT '消耗时间',
  `quantity` bigint DEFAULT '0' COMMENT '步骤数量',
  `pass_quantity` bigint DEFAULT '0' COMMENT '通过数量',
  `fail_quantity` bigint DEFAULT '0' COMMENT '失败数量',
  `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=134 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

压测报告详情表(Report Detail Stress)设计

压测报告详情表存储了测试报告中的详细数据,包括断言信息、错误请求数、响应时间等。以下是压测报告详情表的主要字段:

  • id: 详情的唯一标识符。
  • report_id: 所属报告的ID。
  • assert_info: 断言信息。
  • error_count: 错误请求数。
  • error_percentage: 错误百分比。
  • max_time: 最大响应时间。
  • mean_time: 平均响应时间。
  • min_time: 最小响应时间。
  • receive_k_b_per_second: 每秒接收KB。
  • sent_k_b_per_second: 每秒发送KB。
  • request_location: 请求路径和参数。
  • request_header: 请求头。
  • request_body: 请求体。
  • request_rate: 每秒请求速率。
  • response_code: 响应码。
  • response_data: 响应体。
  • response_header: 响应头。
  • sampler_count: 采样次数编号。
  • sampler_label: 请求名称。
  • sample_time: 请求时间戳。
  • gmt_create: 详情创建时间。
  • gmt_modified: 详情最后修改时间。

SQL语句如下:

CREATE TABLE `report_detail_stress` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `report_id` bigint unsigned DEFAULT NULL COMMENT '所属报告ID',
  `assert_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '断言信息',
  `error_count` bigint unsigned DEFAULT NULL COMMENT '错误请求数',
  `error_percentage` float unsigned DEFAULT NULL COMMENT '错误百分比',
  `max_time` int unsigned DEFAULT NULL COMMENT '最大响应时间',
  `mean_time` float unsigned DEFAULT NULL COMMENT '平均响应时间',
  `min_time` int unsigned DEFAULT NULL COMMENT '最小响应时间',
  `receive_k_b_per_second` float DEFAULT NULL COMMENT '每秒接收KB',
  `sent_k_b_per_second` float DEFAULT NULL COMMENT '每秒发送KB',
  `request_location` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '请求路径和参数',
  `request_header` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '请求头',
  `request_body` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '请求体',
  `request_rate` float unsigned DEFAULT NULL COMMENT '每秒请求速率',
  `response_code` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '响应码',
  `response_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '响应体',
  `response_header` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '响应头',
  `sampler_count` bigint unsigned DEFAULT NULL COMMENT '采样次数编号',
  `sampler_label` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '请求名称',
  `sample_time` bigint DEFAULT NULL COMMENT '请求时间戳',
  `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP,
  `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=151 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

实体间关系

压测用例与项目

  • 关系类型:多对一(Many-to-One)
  • 描述:一个项目可以包含多个压测用例,但每个压测用例只属于一个项目。
  • 关系表示:从StressCase实体指向Project实体,StressCase中的project_id是外键,引用Project的id。

压测用例与压测用例模块

  • 关系类型:多对一(Many-to-One)
  • 描述:一个压测用例模块可以包含多个压测用例,但每个压测用例只属于一个模块。
  • 关系表示:从StressCase实体指向StressCaseModule实体,StressCase中的module_id是外键,引用StressCaseModule的id。

压测用例与环境

  • 关系类型:多对一(Many-to-One)
  • 描述:一个压测用例可以在多个环境中执行,但每个用例在报告中只关联一个环境。
  • 关系表示:从StressCase实体指向Environment实体,StressCase中的environment_id是外键,引用Environment的id。

报告与项目

  • 关系类型:多对一(Many-to-One)
  • 描述:一个项目可以有多个测试报告,但每个报告只属于一个项目。
  • 关系表示:从Report实体指向Project实体,Report中的project_id是外键,引用Project的id。

报告与压测用例

  • 关系类型:多对一(Many-to-One)
  • 描述:一个压测用例可以对应多个测试报告,但每个报告只记录一个用例的测试结果。
  • 关系表示:从Report实体指向StressCase实体,Report中的case_id是外键,引用StressCase的id。

报告详情与报告

  • 关系类型:多对一(Many-to-One)
  • 描述:一个测试报告可以包含多个报告详情,但每个详情只属于一个报告。
  • 关系表示:从ReportDetailStress实体指向Report实体,ReportDetailStress中的report_id是外键,引用Report的id。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1917583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础STM32单片机编程入门(十三) 红外避障传感器模块实战含源码

文章目录 一.概要二.红外避障模块主要参数1.模块引脚定义2.模块特点3.模块原理图 三.STM32单片机红外避障模块检测实验四.CubeMX工程源代码下载五.小结 一.概要 红外避障模块具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测遇到障碍物…

【香橙派5】使用frp建立香橙派内网穿透

1、首先进入github下载需要用的tar包 https://github.com/fatedier/frp/releases请一定一定看清楚,一个是amd,一个是arm不要上传岔了!!! 2、上传之后,服务器端进行修改 首先进行压缩包解压 tar -zxvf f…

ENSP软件中DHCP的相关配置以及终端通过域名访问服务器

新建拓扑 配置路由器网关IP 设备配置命令&#xff1a;<Huawei> Huawei部分为设备名 <>代表当下所在的模式&#xff0c;不同模式下具有不同的配置权限<Huawei> 第一级模式&#xff0c;最低级模式 查看所有参数<Huawei>system-view 键入系统视图…

html5——表单

目录 表单基本结构 表单标签 常用表单元素 文本框 密码框 邮箱 单选按钮 复选框 文件域 隐藏域 列表框 多行文本域 lable标签 表单按钮 常用表单属性 只读与禁用 placeholder required pattern autofocus autocomplete 用于指定表单是否有自动完…

脉脉高聘:面对薪资福利减少,超40%职场人自动缩短工时

近日&#xff0c;脉脉高聘人才智库发布《2024职场生存洞察》&#xff08;下称《洞察》&#xff09;。 数据显示&#xff0c;2024上半年&#xff0c;新经济行业求职压力居高不下&#xff0c;人才供需比达到1.97&#xff0c;相当于2个人竞争1个岗位。求职压力也让职场人心态趋于…

【ACM珠海分会,IEEE Fellow加盟,CPS出版】第四届管理科学和软件工程国际学术会议(ICMSSE 2024,7月19-21)

第四届管理科学和软件工程国际学术会议(ICMSSE 2024)由ACM珠海分会&#xff0c;广州番禺职业技术学院主办&#xff1b;全国区块链行业产教融合共同体&#xff0c;AEIC学术交流中心承办&#xff0c;将于2024年7月19-21日于广州召开。 会议旨在为从事管理与软件工程领域的专家学…

爆款文案管理系统设计

设计一个爆款文案管理系统&#xff0c;目标是帮助营销团队高效地创建、管理并分析吸引人的文案&#xff0c;以提升产品或服务的市场吸引力和销售转化率。以下是一些关键功能和设计考量点&#xff1a; 1. 用户友好界面 简洁直观的界面&#xff1a;确保系统界面清晰&#xff0c…

zigbee笔记:七、zigbee系统电源管理与睡眠唤醒

zigbee的低功耗、近距离无线传输的特点使得其在一众近距离无线传输方案中备受青睐。而zigbee低功耗优势是通过根据不同工况选择运行在不同的运行模式&#xff08;供电模式&#xff09;实现的&#xff0c;因此&#xff0c;掌握zigbee的系统电源管理与睡眠唤醒的相关知识&#xf…

STM32的Code、RO-data、RW-data、ZI-data和RAM以及flash的关系

对于刚接触stm32编程的同学来说&#xff0c;通常不知道如何选择合适型号的芯片来开发自己的项目&#xff0c;下面就分析一下多大的片内ram以及flash能符合我们项目的需求。 不知道大家有没有注意到&#xff0c;我们的项目每次编译完成后&#xff0c;都会出现这个Program Size&…

查看尝试登服务器ssh 访问ip地址

不指定时间查看尝试登录服务器的SSH访问IP地址 # CentOS/RHEL系统 zgrep "sshd" /var/log/secure-* | grep "Failed password" | awk {print $(NF-3)} | sort | uniq -c | sort -nr | head -n 10检查过去7天的日志尝试登录服务器的SSH访问IP地址 # CentOS…

浅谈谷歌浏览器axure扩展程序

Axure RP Extension for Chrome 是一款专门为Axure设计的谷歌浏览器扩展程序&#xff0c;它的主要作用是帮助用户在谷歌浏览器中无缝预览和测试由Axure RP创建的交互式原型。当您在Axure RP中构建原型并将其导出为HTML格式时&#xff0c;此扩展程序允许您直接在浏览器中打开这些…

自主升级,平稳过渡!麒麟信安保障长沙市智慧交通发展中心CentOS迁移无忧

长沙市智慧交通发展中心围绕综合交通运输协调体系的构建&#xff0c;实施交通运行的监测、预测和预警&#xff0c;面向公众提供交通信息服务&#xff0c;开展多种运输方式的调度协调&#xff0c;提供交通行政管理和应急处置的信息保障。 该中心目前数据日交换量超2亿条&#x…

threeJS 为模型增加精灵图

前言 之前使用css3DRender创建图片弹框&#xff0c;在旋转模型到背面时&#xff0c;弹框也背对模型&#xff0c;这与UI要求的效果有出入。考虑将css3DRender换成css2Drender,但是可能是模型的问题&#xff0c;将弹框加入到模型的子集&#xff0c;旋转模型时弹框发生比较明显的…

博物馆环境监测系统——文物的绿色守护者

博物馆环境监测系统是现代博物馆不可或缺的一项技术装备。该系统可以实时监测温度、湿度等因素&#xff0c;旨在保持文物所处环境的稳定性&#xff0c;确保馆内的文物得到最佳的保护和展示条件。尤其是在梅雨季节&#xff0c;博物馆环境监测系统在博物馆的工作中发挥着至关重要…

ENSP-防火墙小实验

实验总要求 我的拓扑图&#xff1a; 具体配置 1.交换机 vlan: # sysname Lswl # vlan batch 2 to 3 # 接口&#xff1a; [LSWl]int e 0/0/2 [LSWl-Ethernet0/0/2ldisplay this # interface Ethernet0/0/2port link-type accessport default vlan 2 # return [LsWl-Ethernet0…

nohup java -jar 启动java项目

hi&#xff0c;我是程序员王也&#xff0c;一个资深Java开发工程师&#xff0c;平时十分热衷于技术副业变现和各种搞钱项目的程序员~&#xff0c;如果你也是&#xff0c;可以一起交流交流。 今天我们聊聊linux中运行java jar包的问题~ 理解nohup命令 nohup命令的基本概念 noh…

对于一些未来规划的想法

文章目录 一、关于如何加技能点二、关于大厂、中厂、小厂三、大语言模型、元宇宙、VR、虚拟货币四、关于嵌入式的技术路线五、其他 一、关于如何加技能点 首先进入课题组&#xff0c;务必先把眼前的东西学好&#xff0c;做好当下的事情。 也是关于个人的发展规划的话&#xff…

强强联手促发展,奋楫共进启新篇 | 中创算力与中国移动签订战略合作协议

在数字化浪潮席卷全球的今天&#xff0c;河南中创算力信息科技有限公司与中国移动通信集团河南有限公司郑州分公司携手并进&#xff0c;共同开启了数字化转型的新篇章。 2024年7月10日上午&#xff0c;双方在中国移动郑州分公司隆重举行了战略合作协议的签约仪式。双方将在5G技…

炎热夏季环境下的文物保护:挑战与策略

随着夏季的到来&#xff0c;高温和强烈的日照给文物保护带来了新的挑战。在这个季节&#xff0c;文物不仅面临着物理和化学损害的风险&#xff0c;还可能因为管理不善而遭受人为破坏。因此&#xff0c;探讨如何在夏季炎热天气中做好文物保护工作具有重要意义。 夏季炎热天气对文…

海外电商SAAS平台对接流程

海外电商SAAS平台对接流程通常包括以下几个步骤&#xff0c;需要说明的是对接这些平台存在一定的风险&#xff0c;为了降低这些风险&#xff0c;建议您选择信誉良好的平台&#xff0c;并做好安全防护措施。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xf…