| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117 |
- const XLSX = require('C:/tmp_xlsx/node_modules/xlsx-js-style');
- // ======================================================
- // 格式说明(对标 test_case_new.xlsx):
- // 标题行背景色:#000080(海军蓝)
- // 正常场景行:#CCFFFF(浅青色)
- // 异常场景行:#FF99CC(浅粉红)
- // 边界场景行:#FFFF99(浅黄色)
- // 标题行行高:30pt;数据行行高:25pt
- // 用例编号格式:TC-模块号-序号(如TC-01-001)
- // 测试类型值:正常场景 / 异常场景 / 边界场景
- // 优先级:P0 / P1 / P2
- // ======================================================
- // ======================================================
- // 测试用例数据(基于prompt_rewritebyCC.md & newPromptAddChem.md)
- // 字段顺序:用例编号, 模块名称, 测试场景, 测试类型,
- // 前置条件, 测试操作, 预期结果, 优先级, 设计方法
- // ======================================================
- const testCases = [
- // ===================================================
- // 模块01:通用导航栏
- // ===================================================
- ['TC-01-001', '通用导航栏', '实时时钟以HH:MM:SS格式每秒刷新', '正常场景',
- '系统正常运行,页面已完整加载',
- '观察页面右上角时钟区域',
- '时钟以HH:MM:SS格式正确显示,每秒刷新一次且无闪烁',
- 'P0', '场景法'],
- ['TC-01-002', '通用导航栏', '星期信息与系统本地时间一致', '正常场景',
- '系统正常运行,页面已完整加载',
- '查看导航栏右侧星期显示并与系统时间对比',
- '正确显示当前星期几(如:星期三),与系统本地时间一致',
- 'P1', '等价类划分'],
- ['TC-01-003', '通用导航栏', '天气信息正常展示无空白乱码', '正常场景',
- '系统正常运行,网络连接正常',
- '查看天气信息区域显示内容',
- '天气信息正常显示,不出现空白区域或乱码',
- 'P1', '场景法'],
- ['TC-01-004', '通用导航栏', '标题渐变色效果正确渲染', '正常场景',
- '系统正常运行,页面已完整加载',
- '查看导航栏左侧标题文字样式',
- '「中国安全生产科学研究院实验室安全智慧化管控中心」显示白→科技蓝渐变色效果',
- 'P2', '场景法'],
- ['TC-01-005', '通用导航栏', '导航栏底部流光动画持续运行', '正常场景',
- '系统正常运行,页面已完整加载',
- '观察导航栏底部分割线动效',
- '底部渐变分割线+流光动画持续运行,4s一轮循环,无卡顿中断',
- 'P2', '场景法'],
- ['TC-01-006', '通用导航栏', '「实验室情况」按钮默认选中高亮', '正常场景',
- '页面初始加载完成',
- '观察顶部导航中间切换按钮区域',
- '「实验室情况」按钮默认选中并显示发光呼吸高亮效果,「视频监控」按钮未选中',
- 'P0', '场景法'],
- ['TC-01-007', '通用导航栏', '点击「视频监控」切换页面Tab状态同步', '正常场景',
- '当前页面为实验室情况页',
- '点击导航栏「视频监控」按钮',
- '页面切换至视频监控页,「视频监控」按钮变为选中高亮,「实验室情况」取消选中',
- 'P0', '场景法'],
- ['TC-01-008', '通用导航栏', '点击「实验室情况」切回并重新初始化ECharts', '正常场景',
- '当前页面为视频监控页',
- '点击导航栏「实验室情况」按钮',
- '页面切换回实验室情况页,延迟100ms后所有ECharts图表重新初始化并正确渲染',
- 'P0', '场景法'],
- ['TC-01-009', '通用导航栏', '两页面共享导航栏,切换时信息不变', '正常场景',
- '页面已加载,可正常切换页面',
- '分别切换两个页面,观察导航栏内容',
- '两页面切换时导航栏标题、时钟、天气信息保持不变,仅Tab选中状态变化',
- 'P1', '场景法'],
- ['TC-01-010', '通用导航栏', '网络断开时天气区域兜底展示', '异常场景',
- '系统正常运行,页面已加载后断开网络连接',
- '断网后观察天气信息区域',
- '天气区域显示"--"或"暂无数据"兜底,不出现空白区域或JS报错',
- 'P0', '错误推测法'],
- ['TC-01-011', '通用导航栏', '跨日00:00:00时日期星期同步切换', '边界场景',
- '系统持续运行至接近午夜',
- '在00:00:00前后观察日期与星期变化',
- '日期与星期同步切换,不出现跨日延迟(如00:00:01还显示昨天)',
- 'P0', '边界值分析'],
- ['TC-01-012', '通用导航栏', '跨年元旦零点年份正确切换', '边界场景',
- '系统运行至12月31日23:59:59',
- '观察00:00:00时刻年份变化',
- '年份正确切换至新年',
- 'P1', '边界值分析'],
- // ===================================================
- // 模块02:实验室基本情况统计
- // ===================================================
- ['TC-02-001', '实验室基本情况统计', '环形图正确渲染并显示实验室总数', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看左栏顶部环形图(pie, radius 45%~70%)',
- 'ECharts环形图正确渲染,中心显示实验室总数数字及"实验室总数"文字',
- 'P0', '场景法'],
- ['TC-02-002', '实验室基本情况统计', '四个安全分级颜色与标准完全对应', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看环形图各扇区颜色及右侧图例',
- 'I级显示红色#ff4d4f,II级显示橙色#ff8c00,III级显示黄色#ffcc00,IV级显示蓝色#3a7bff,颜色与教育部标准一致',
- 'P0', '等价类划分'],
- ['TC-02-003', '实验室基本情况统计', '右侧纵向图例完整显示四个分级', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看环形图右侧图例区域',
- '图例纵向显示I级、II级、III级、IV级及对应颜色和占比数据,四项缺一不可',
- 'P1', '场景法'],
- ['TC-02-004', '实验室基本情况统计', '三个状态卡片数量之和等于实验室总数', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看环形图下方使用、异常、空闲三个状态卡片数值',
- '使用数+异常数+空闲数=实验室总数,逻辑自洽;三卡片颜色分别为蓝、红、绿',
- 'P0', '等价类划分'],
- ['TC-02-005', '实验室基本情况统计', '状态卡片呼吸发光动画stagger间隔1.3s', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '观察三个状态卡片动画效果',
- '三个卡片均有呼吸发光动画,stagger间隔1.3s依次错开',
- 'P2', '场景法'],
- ['TC-02-006', '实验室基本情况统计', '四个分级占比之和为100%', '正常场景',
- '系统正常运行,数据接口正常返回',
- '验证环形图各分级占比数值之和',
- '四个分级占比之和等于100%',
- 'P0', '等价类划分'],
- ['TC-02-007', '实验室基本情况统计', '某分级数量为0时扇区不渲染无孤立标签', '异常场景',
- '某分级数量后台配置为0',
- '观察环形图对应扇区及引线标注',
- '对应扇区不渲染,不出现"0间/0%"孤立标签',
- 'P1', '错误推测法'],
- ['TC-02-008', '实验室基本情况统计', '数据接口超时时图表区域降级展示', '异常场景',
- '模拟数据接口超时或报错',
- '观察图表区域响应',
- '图表区域显示"暂无数据"占位块,不触发JS异常',
- 'P0', '错误推测法'],
- ['TC-02-009', '实验室基本情况统计', '所有实验室属同一分级时环形图渲染完整圆形', '边界场景',
- '后台配置所有实验室归属同一分级',
- '观察环形图渲染结果',
- '环形图渲染为完整圆形,无多余间隔',
- 'P1', '边界值分析'],
- ['TC-02-010', '实验室基本情况统计', '模块固定高度260px内容无溢出截断', '边界场景',
- '系统正常运行,实验室情况页已加载',
- '检查实验室基本情况统计区域高度及内容显示',
- '模块高度固定260px,内容无超出或截断',
- 'P1', '边界值分析'],
- // ===================================================
- // 模块03:实验室安全分级统计
- // ===================================================
- ['TC-03-001', '实验室安全分级统计', '堆叠柱状图图例颜色与图形一一对应', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看堆叠柱状图顶部图例',
- '图例显示I~IV级,红橙黄蓝颜色与图形颜色一一对应',
- 'P1', '场景法'],
- ['TC-03-002', '实验室安全分级统计', '默认一屏显示6个柱子X轴含名称与总数', '正常场景',
- '系统正常运行,X轴数据>=6个',
- '查看初始加载时X轴柱子数量及标签',
- '一屏展示6个柱子,X轴每柱下方同时显示二级单位名称(可换行)及实验室总数',
- 'P0', '场景法'],
- ['TC-03-003', '实验室安全分级统计', '超过6个数据时每5秒自动向右滚动1个单位', '正常场景',
- '系统正常运行,X轴数据>6个',
- '等待5秒观察图表滚动行为',
- '每隔5秒自动向右滚动1个X轴单位,动画流畅,使用dataZoom实现',
- 'P0', '场景法'],
- ['TC-03-004', '实验室安全分级统计', '滚动到最后数据后自动循环从第一个开始', '正常场景',
- '系统正常运行,X轴数据>6个,已滚动至最后一个',
- '等待下次滚动',
- '自动循环回第一个数据重新开始,无卡顿或跳跃',
- 'P1', '场景法'],
- ['TC-03-005', '实验室安全分级统计', 'Tooltip悬停显示深色背景蓝色边框', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '鼠标悬停在某个柱状条上',
- 'Tooltip背景为rgba(6,22,56,0.9),边框为蓝色,内容含各分级数量',
- 'P1', '场景法'],
- ['TC-03-006', '实验室安全分级统计', '某单位实验室总数为0时柱子不渲染或高度为0', '异常场景',
- '后台配置某二级单位实验室总数为0',
- '观察对应柱子渲染及X轴总数显示',
- '对应柱子不渲染或高度为0,X轴总数显示0',
- 'P1', '错误推测法'],
- ['TC-03-007', '实验室安全分级统计', 'X轴数据恰好6个时不触发自动滚动', '边界场景',
- '后台配置X轴数据恰好为6个',
- '等待超过5秒观察是否滚动',
- '不触发自动滚动,图表静态展示',
- 'P1', '边界值分析'],
- ['TC-03-008', '实验室安全分级统计', 'X轴数据为1个时单柱居中不触发滚动', '边界场景',
- '后台配置X轴数据仅1个',
- '观察图表展示与滚动行为',
- '单柱居中显示,不触发滚动',
- 'P2', '边界值分析'],
- ['TC-03-009', '实验室安全分级统计', 'X轴数据为7个时滚动1步即循环', '边界场景',
- '后台配置X轴数据为7个',
- '等待滚动并观察循环行为',
- '滚动仅1步即循环,展示正常',
- 'P2', '边界值分析'],
- // ===================================================
- // 模块04:实验室进入人数统计及走势
- // ===================================================
- ['TC-04-001', '实验室进入人数统计及走势', '翻牌器同行显示今日总进入与当前实验人数', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看左栏底部翻牌器区域布局与数值',
- '5位数字翻牌器(今日总进入)与4位数字翻牌器(当前实验人数)同行显示,字号突出',
- 'P0', '场景法'],
- ['TC-04-002', '实验室进入人数统计及走势', '翻牌器数字方块样式与发光动画正常', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看翻牌器每个数字方块样式及动画',
- '每个数字为独立方块(32×42px),有渐变背景+边框发光动效,2s周期呼吸动画',
- 'P1', '场景法'],
- ['TC-04-003', '实验室进入人数统计及走势', '双折线图正确展示0至24点9个时段', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看折线图X轴标签与双折线显示',
- '正确展示0:00~24:00共9个时段,进入人数(科技蓝)与实验人数(深蓝)两条折线颜色区分明确',
- 'P0', '场景法'],
- ['TC-04-004', '实验室进入人数统计及走势', '折线图面积填充渐变效果正确', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看折线图面积填充样式',
- '两条折线下方均有渐变面积填充效果,smooth曲线样式',
- 'P2', '场景法'],
- ['TC-04-005', '实验室进入人数统计及走势', '今日进入人数为0时翻牌器显示0不出现NaN', '异常场景',
- '后台配置今日进入人数为0',
- '观察翻牌器显示',
- '翻牌器显示0,不出现空白或NaN',
- 'P0', '错误推测法'],
- ['TC-04-006', '实验室进入人数统计及走势', '23:59时折线图最后时段数据无断档', '边界场景',
- '系统运行至23:59',
- '观察折线图最后时段数据',
- '最后时段数据正确填入,不出现数据断档',
- 'P1', '边界值分析'],
- ['TC-04-007', '实验室进入人数统计及走势', '人数位数增加时翻牌器自动扩展不截断', '边界场景',
- '后台配置人数从3位数跳变为4位数',
- '观察翻牌器位数变化',
- '翻牌器自动扩展位数,不出现数字截断',
- 'P1', '边界值分析'],
- ['TC-04-008', '实验室进入人数统计及走势', '模块固定高度280px内容无溢出', '边界场景',
- '系统正常运行,实验室情况页已加载',
- '检查该模块整体高度和内容',
- '模块高度固定280px,翻牌器和折线图均完整显示,无截断',
- 'P1', '边界值分析'],
- // ===================================================
- // 模块05:实验环境安全智能感知
- // ===================================================
- ['TC-05-001', '实验环境安全智能感知', '列表由上向上自动滚动流畅无卡顿', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '观察中栏顶部环境感知列表滚动行为',
- '列表无缝滚动(translateY(-50%)+数据翻倍),40s一轮循环,无卡顿跳跃',
- 'P0', '场景法'],
- ['TC-05-002', '实验环境安全智能感知', '每个条目完整显示名称单位及5个传感器值', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看列表中每个实验室条目内容',
- '正确显示实验室名称(房号)-二级单位、温度、湿度、TVOC、CO₂、O₂五个传感器实时数值',
- 'P0', '场景法'],
- ['TC-05-003', '实验环境安全智能感知', '温度正常(≤30°C)时条目无异常样式', '正常场景',
- '传感器温度≤30°C',
- '查看温度字段显示',
- '温度值显示正常颜色,无报警图标,条目无红色高亮',
- 'P0', '等价类划分'],
- ['TC-05-004', '实验环境安全智能感知', '温度异常(>30°C)触发红色高亮+报警图标', '异常场景',
- '传感器温度>30°C',
- '查看对应实验室条目温度字段显示',
- '温度值红色高亮,显示⚠报警图标,条目整体触发脉冲box-shadow动画',
- 'P0', '边界值分析'],
- ['TC-05-005', '实验环境安全智能感知', '温度恰好30°C时不触发报警(边界为>)', '边界场景',
- '传感器温度=30°C',
- '查看温度=30°C的条目显示',
- '温度值不触发异常高亮,显示正常样式',
- 'P0', '边界值分析'],
- ['TC-05-006', '实验环境安全智能感知', 'TVOC异常(>1.5mg/m³)触发报警', '异常场景',
- '传感器TVOC>1.5mg/m³',
- '查看该条目TVOC字段',
- 'TVOC值红色高亮+⚠图标+脉冲动画',
- 'P0', '边界值分析'],
- ['TC-05-007', '实验环境安全智能感知', 'TVOC恰好1.5mg/m³时不触发报警', '边界场景',
- '传感器TVOC=1.5mg/m³',
- '查看TVOC=1.5mg/m³的条目',
- 'TVOC值不触发异常高亮',
- 'P0', '边界值分析'],
- ['TC-05-008', '实验环境安全智能感知', 'CO₂异常(>900ppm)触发报警', '异常场景',
- '传感器CO₂>900ppm',
- '查看该条目CO₂字段',
- 'CO₂值红色高亮+⚠图标+脉冲动画',
- 'P0', '边界值分析'],
- ['TC-05-009', '实验环境安全智能感知', 'CO₂恰好900ppm时不触发报警', '边界场景',
- '传感器CO₂=900ppm',
- '查看CO₂=900ppm的条目',
- 'CO₂值不触发异常高亮',
- 'P0', '边界值分析'],
- ['TC-05-010', '实验环境安全智能感知', 'O₂异常(<19.5%)触发报警', '异常场景',
- '传感器O₂<19.5%',
- '查看该条目O₂字段',
- 'O₂值红色高亮+⚠图标+脉冲动画',
- 'P0', '边界值分析'],
- ['TC-05-011', '实验环境安全智能感知', 'O₂恰好19.5%时不触发报警', '边界场景',
- '传感器O₂=19.5%',
- '查看O₂=19.5%的条目',
- 'O₂值不触发异常高亮',
- 'P0', '边界值分析'],
- ['TC-05-012', '实验环境安全智能感知', '多项传感器同时异常全部标红', '异常场景',
- '同一条目多个传感器值超出阈值',
- '查看多传感器异常条目',
- '所有超阈值的传感器字段均红色高亮并显示⚠图标',
- 'P0', '错误推测法'],
- ['TC-05-013', '实验环境安全智能感知', '传感器全部离线时数值显示横杠不触发误报警', '异常场景',
- '某实验室传感器全部离线',
- '观察该条目各传感器数值与报警图标',
- '各传感器数值显示"--",不触发误报警,不渲染报警图标',
- 'P0', '错误推测法'],
- ['TC-05-014', '实验环境安全智能感知', '条目超100条时滚动帧率不低于30FPS', '边界场景',
- '后台配置实验室条目数量超过100条',
- '观察列表滚动帧率',
- '滚动性能不出现明显卡顿,FPS不低于30',
- 'P1', '边界值分析'],
- // ===================================================
- // 模块06:实验室实时风险预警
- // ===================================================
- ['TC-06-001', '实验室实时风险预警', '本月预警响应总数大字体发光动画正常', '正常场景',
- '系统正常运行,本月有预警记录',
- '查看中栏预警模块顶部数字',
- '大字体数字正常显示本月预警总数,有发光文字动画(2s周期)',
- 'P0', '场景法'],
- ['TC-06-002', '实验室实时风险预警', '原有传感器报警信息完整展示', '正常场景',
- '系统正常运行,有传感器超阈值记录',
- '查看预警滚动列表中传感器类报警条目',
- '每条包含:实验室名称-二级单位、异常传感器名称及数值(橙色高亮)、预警时间(YYYY-MM-DD HH:mm:ss)',
- 'P0', '场景法'],
- ['TC-06-003', '实验室实时风险预警', '新增化学品违规带离报警信息正常展示', '正常场景',
- '系统正常运行,有化学品违规带离记录',
- '查看预警滚动列表中化学品类报警条目',
- '每条包含:实验室名称-二级单位、实验人员未正常使用违规带离描述、预警时间(YYYY-MM-DD HH:mm:ss)',
- 'P0', '场景法'],
- ['TC-06-004', '实验室实时风险预警', '传感器报警与化学品报警融合在同一列表中', '正常场景',
- '系统同时有两类预警记录',
- '查看预警列表整体内容排列',
- '两类预警数据融合展示在一个滚动列表中,可视觉区分但共存于同一列表',
- 'P0', '场景法'],
- ['TC-06-005', '实验室实时风险预警', '预警时间格式正确(YYYY-MM-DD HH:mm:ss)', '正常场景',
- '系统正常运行,有预警记录',
- '查看列表中各条预警时间字段',
- '每条预警时间均符合YYYY-MM-DD HH:mm:ss格式',
- 'P1', '等价类划分'],
- ['TC-06-006', '实验室实时风险预警', '列表无缝循环滚动30s一轮无跳跃卡顿', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '观察预警列表滚动动画',
- '列表30s一轮循环无缝滚动,无跳跃或卡顿',
- 'P0', '场景法'],
- ['TC-06-007', '实验室实时风险预警', '左侧3px橙色竖条及脉冲动画正常显示', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看预警列表每条左侧样式',
- '每条预警左侧显示3px橙色竖条,有脉冲动画(3s周期)',
- 'P2', '场景法'],
- ['TC-06-008', '实验室实时风险预警', '本月无预警记录时列表显示占位文字', '异常场景',
- '后台配置本月无任何预警记录',
- '观察列表和计数器',
- '列表显示"暂无预警记录"占位文字,总数计数器显示0',
- 'P0', '错误推测法'],
- ['TC-06-009', '实验室实时风险预警', '模块固定高度320px内容无溢出', '边界场景',
- '系统正常运行,实验室情况页已加载',
- '检查预警模块高度',
- '模块高度固定320px,内容正常显示无溢出',
- 'P1', '边界值分析'],
- // ===================================================
- // 模块07:智能环境感知应用设备统计
- // ===================================================
- ['TC-07-001', '智能环境感知应用设备统计', '在线/离线设备数量卡片颜色正确', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看右栏顶部设备统计卡片',
- '在线设备数量显示科技蓝色,离线设备数量显示灰色,布局不塌陷',
- 'P0', '场景法'],
- ['TC-07-002', '智能环境感知应用设备统计', '仪表盘正确渲染在线率指针位置对应', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看ECharts仪表盘图表渲染',
- 'ECharts仪表盘正确渲染,范围210°~-30°,显示在线率百分比,三段颜色渐变(70%暗蓝/90%中蓝/100%亮蓝),指针位置与数值对应',
- 'P0', '场景法'],
- ['TC-07-003', '智能环境感知应用设备统计', '设备类型列表4项纵排正确显示数量', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看右下设备类型列表内容',
- '纵向列出:电子信息铭牌、化学品智能终端、传感器、智能设备,各自显示对应数量',
- 'P0', '场景法'],
- ['TC-07-004', '智能环境感知应用设备统计', '在线率计算值与展示值一致', '正常场景',
- '系统正常运行,数据接口正常返回',
- '计算在线率=在线数/(在线数+离线数),与仪表盘展示值对比',
- '仪表盘展示在线率与计算值完全一致',
- 'P0', '等价类划分'],
- ['TC-07-005', '智能环境感知应用设备统计', '所有设备均离线时在线率显示0%指针最低', '异常场景',
- '后台配置所有设备均离线',
- '观察在线率显示和仪表盘指针',
- '在线率显示0%,指针指向最低档位,不出现NaN或空白',
- 'P0', '错误推测法'],
- ['TC-07-006', '智能环境感知应用设备统计', '在线率恰好50%时仪表盘指针居中', '边界场景',
- '后台配置在线数等于离线数',
- '观察仪表盘指针位置',
- '指针指向表盘正中位置',
- 'P2', '边界值分析'],
- ['TC-07-007', '智能环境感知应用设备统计', '设备总数为1且在线时在线率显示100%满格', '边界场景',
- '后台配置设备总数为1且在线',
- '观察在线率显示和仪表盘',
- '在线率显示100%,仪表盘满格',
- 'P2', '边界值分析'],
- // ===================================================
- // 模块08:实验室设备分类及使用统计
- // ===================================================
- ['TC-08-001', '实验室设备分类及使用统计', '饼图正确渲染7类设备分类分布', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看右栏中部饼图(pie, radius 30%~60%)',
- 'ECharts饼图正确渲染,显示7类设备:分析仪器、安全防护、化学试剂设备、电气设备、力学测试、环境监测、通用设备',
- 'P0', '等价类划分'],
- ['TC-08-002', '实验室设备分类及使用统计', '右侧纵向图例完整对应各分类', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看饼图右侧图例',
- '图例纵向显示7类设备名称及对应颜色,各项完整',
- 'P1', '场景法'],
- ['TC-08-003', '实验室设备分类及使用统计', '中部3个统计卡片数值格式正确', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看中部卡片:设备总数/使用总时长/设备使用率',
- '3个卡片分别展示:设备总数、使用总时长(h)、设备使用率(%),格式正确',
- 'P0', '场景法'],
- ['TC-08-004', '实验室设备分类及使用统计', '底部4个状态卡片颜色与语义对应', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看底部状态卡片颜色',
- '使用(蓝)、空闲(绿)、正常(橙)、维修(红)4个卡片颜色正确,布局无塌陷',
- 'P1', '等价类划分'],
- ['TC-08-005', '实验室设备分类及使用统计', '某分类设备数量为0时图表不出现NaN', '异常场景',
- '后台配置某分类设备数量为0',
- '观察饼图对应扇区',
- '对应扇区不渲染,不出现NaN或零值引线标注漂移',
- 'P1', '错误推测法'],
- ['TC-08-006', '实验室设备分类及使用统计', '只有1种设备分类时饼图渲染完整圆形', '边界场景',
- '后台配置只有1种设备分类',
- '观察饼图渲染',
- '渲染为完整圆形',
- 'P2', '边界值分析'],
- // ===================================================
- // 模块09:化学品库存动态统计(新增模块)
- // ===================================================
- ['TC-09-001', '化学品库存动态统计', '模块位于右侧最下方(设备统计下方)', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '检查右侧栏目排列顺序',
- '化学品库存动态统计模块位于「实验室设备分类及使用统计」下方,在右侧最下方位置',
- 'P0', '场景法'],
- ['TC-09-002', '化学品库存动态统计', '饼图正确展示两类化学品外侧引线标注三项完整', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看饼图两扇区及外侧引线标注',
- '管控与非管控两类扇区外侧引线标注分类名称+数量(L)+占比,无侧边图例',
- 'P0', '场景法'],
- ['TC-09-003', '化学品库存动态统计', '饼图无Tab切换直接展示单一饼图', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '查看化学品统计区域是否存在Tab控件',
- '模块内无Tab切换控件,直接展示饼图',
- 'P1', '场景法'],
- ['TC-09-004', '化学品库存动态统计', '右侧统计区四项数据完整且配色正确', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看右侧统计数据区域各项',
- '展示:存量化学品总量(L)、管控类总量及占比、非管控类总量及占比、总类目数,各含SVG圆弧进度环,配色正确',
- 'P0', '场景法'],
- ['TC-09-005', '化学品库存动态统计', '管控类统计使用红色系配色SVG进度环与占比一致', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看管控类化学品统计项颜色和进度环',
- '管控类总量及占比显示红色系配色,SVG圆弧进度环进度与占比数值完全一致',
- 'P0', '等价类划分'],
- ['TC-09-006', '化学品库存动态统计', '非管控类统计使用青色系配色SVG进度环正确', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看非管控类化学品统计项颜色',
- '非管控类总量及占比显示青色系配色,SVG圆弧进度环正确渲染',
- 'P0', '等价类划分'],
- ['TC-09-007', '化学品库存动态统计', '总类目数使用金色系配色SVG进度环', '正常场景',
- '系统正常运行,数据接口正常返回',
- '查看总类目数统计项颜色',
- '总类目数显示金色系配色(如#ffd740),含SVG圆弧进度环',
- 'P1', '等价类划分'],
- ['TC-09-008', '化学品库存动态统计', '管控类加非管控类等于存量总量逻辑自洽', '正常场景',
- '系统正常运行,数据接口正常返回',
- '验证:管控类总量(L)+非管控类总量(L)=存量化学品总量(L)',
- '逻辑等式成立,两类之和等于总量',
- 'P0', '等价类划分'],
- ['TC-09-009', '化学品库存动态统计', '所有化学品数量单位统一为L无混用', '正常场景',
- '系统正常运行,实验室情况页已加载',
- '检查模块中所有数量显示单位',
- '化学品数量相关显示均以L为单位,无其他单位混用',
- 'P1', '等价类划分'],
- ['TC-09-010', '化学品库存动态统计', '管控类化学品数量为0时饼图不渲染进度环归零', '异常场景',
- '后台配置管控类化学品数量为0',
- '观察饼图扇区、SVG进度环及占比显示',
- '饼图该扇区不渲染,SVG进度环进度为0,占比显示"0%"',
- 'P0', '错误推测法'],
- ['TC-09-011', '化学品库存动态统计', '数据接口异常时统计区显示占位进度环归零', '异常场景',
- '模拟数据接口异常',
- '观察右侧各统计项和SVG进度环',
- '各统计项显示"--"占位,SVG进度环归零,不触发JS异常',
- 'P0', '错误推测法'],
- ['TC-09-012', '化学品库存动态统计', '存量总量极大时自动换算不出现溢出截断', '边界场景',
- '后台配置存量总量超过999999L',
- '观察右侧统计区数值显示',
- '自动换算为合理精度或万L表示,不出现溢出截断',
- 'P1', '边界值分析'],
- ['TC-09-013', '化学品库存动态统计', '两类各占50%时饼图平分引线不重叠', '边界场景',
- '后台配置两类各占50%',
- '观察饼图引线排列',
- '饼图平分且两侧引线不重叠',
- 'P2', '边界值分析'],
- // ===================================================
- // 模块10:全屏预警弹窗
- // ===================================================
- ['TC-10-001', '全屏预警弹窗', '传感器超阈值时弹窗自动弹出覆盖视口z-index最高', '正常场景',
- '系统正常运行,传感器数据超出阈值',
- '观察全屏预警弹窗是否弹出',
- '弹窗自动弹出,覆盖整个视口,z-index高于所有大屏内容层',
- 'P0', '场景法'],
- ['TC-10-002', '全屏预警弹窗', '页面加载15秒后自动触发预警弹窗(Demo演示)', '正常场景',
- '实验室情况页加载完成',
- '等待页面加载后15秒',
- '预警弹窗自动弹出,全屏半透明红色覆盖层出现,用于Demo演示',
- 'P1', '场景法'],
- ['TC-10-003', '全屏预警弹窗', '弹窗整体呈科幻红色报警样式四边光边框闪烁', '正常场景',
- '预警弹窗已触发',
- '观察弹窗整体视觉效果',
- '全屏半透明红色覆盖+1s周期呼吸闪烁+四周红色光晕+四边光边框0.8s周期闪烁',
- 'P1', '场景法'],
- ['TC-10-004', '全屏预警弹窗', 'showAlert函数传参正确填充弹窗内容', '正常场景',
- '页面已加载',
- '调用showAlert(lab, building, unit, param, value, person, phone)后查看弹窗内容',
- '弹窗显示所有传入参数对应内容,数据与参数完全一致',
- 'P0', '场景法'],
- ['TC-10-005', '全屏预警弹窗', '左侧信息区实验室名称楼栋楼层所属单位正确显示', '正常场景',
- '预警弹窗已触发',
- '查看弹窗左侧实验室信息各字段',
- '实验室名称(房号)、楼栋-楼层、二级单位名称均正确显示',
- 'P0', '场景法'],
- ['TC-10-006', '全屏预警弹窗', '异常参数和当前数值红色高亮显示', '正常场景',
- '预警弹窗已触发',
- '查看弹窗中异常参数和当前数值字段',
- '异常传感器名称和当前异常数值均以红色高亮显示',
- 'P0', '等价类划分'],
- ['TC-10-007', '全屏预警弹窗', '负责人姓名和联系电话正确显示', '正常场景',
- '预警弹窗已触发',
- '查看实验室负责人及联系电话',
- '负责人姓名和联系电话均正确显示',
- 'P1', '场景法'],
- ['TC-10-008', '全屏预警弹窗', '预警时间格式正确(YYYY-MM-DD HH:mm:ss)', '正常场景',
- '预警弹窗已触发',
- '查看预警时间字段',
- '预警时间显示格式符合YYYY-MM-DD HH:mm:ss',
- 'P1', '等价类划分'],
- ['TC-10-009', '全屏预警弹窗', '右侧监控画面区域样式正确显示', '正常场景',
- '预警弹窗已触发',
- '查看弹窗右侧视频区域',
- '标题"实时监控画面"+红色闪烁圆点,监控画面区域暗红色背景+扫描线纹理,左上角显示REC+摄像头名称',
- 'P1', '场景法'],
- ['TC-10-010', '全屏预警弹窗', '弹窗显示"应急疏散"按钮可正常点击', '正常场景',
- '预警弹窗已触发',
- '查看预警弹窗按钮区域',
- '弹窗内显示「应急疏散」按钮(琥珀色),可正常点击',
- 'P0', '场景法'],
- ['TC-10-011', '全屏预警弹窗', '点击确认按钮弹窗关闭恢复正常大屏', '正常场景',
- '预警弹窗已显示',
- '点击底部确认按钮',
- '弹窗关闭,红色覆盖层消失,恢复正常大屏展示',
- 'P0', '场景法'],
- ['TC-10-012', '全屏预警弹窗', '多实验室同时触发预警时弹窗按顺序逐一弹出', '异常场景',
- '模拟多个实验室同时触发预警',
- '观察弹窗弹出行为',
- '弹窗按优先级或时间顺序逐一弹出,不出现多窗口叠加错乱',
- 'P0', '错误推测法'],
- ['TC-10-013', '全屏预警弹窗', '弹窗期间传感器恢复正常时弹窗不自动关闭', '边界场景',
- '弹窗已触发,传感器数据快速恢复正常',
- '观察弹窗是否自动关闭',
- '弹窗不自动关闭,需用户手动操作',
- 'P1', '边界值分析'],
- // ===================================================
- // 模块11:应急疏散弹窗(新增模块)
- // ===================================================
- ['TC-11-001', '应急疏散弹窗', '点击「应急疏散」按钮弹出疏散弹窗层级正确', '正常场景',
- '预警弹窗已显示',
- '点击预警弹窗内的「应急疏散」按钮',
- '应急疏散弹窗全屏弹出,z-index高于预警弹窗,两层弹窗同时可见互不遮挡',
- 'P0', '场景法'],
- ['TC-11-002', '应急疏散弹窗', '弹窗进场动画流畅科幻风格与大屏主题一致', '正常场景',
- '应急疏散弹窗已打开',
- '观察弹窗进场动画效果和整体风格',
- '进场动画流畅无卡顿,深蓝科幻风格与大屏整体主题一致',
- 'P1', '场景法'],
- ['TC-11-003', '应急疏散弹窗', '点击关闭按钮仅关闭疏散弹窗预警弹窗保持', '正常场景',
- '应急疏散弹窗已打开',
- '点击右上角关闭按钮',
- '仅关闭应急疏散弹窗,底层全屏预警弹窗保持完整可见',
- 'P0', '场景法'],
- ['TC-11-004', '应急疏散弹窗', '疏散路线图显示箭头标识疏散路线方向正确', '正常场景',
- '应急疏散弹窗已打开',
- '查看弹窗内疏散路线图及箭头方向',
- '疏散路线图正确显示,箭头标识疏散方向清晰,符合设计图内容',
- 'P0', '场景法'],
- ['TC-11-005', '应急疏散弹窗', '弹窗内容及排版与设计图基本一致', '正常场景',
- '应急疏散弹窗已打开',
- '对比设计图与弹窗实际显示内容及排版',
- '弹窗内容及排版与设计图基本一致,各区域无错位遮挡',
- 'P0', '场景法'],
- ['TC-11-006', '应急疏散弹窗', '点击「执行疏散」按钮后显示疏散路线箭头', '正常场景',
- '应急疏散弹窗已显示,未点击执行疏散',
- '点击「执行疏散」按钮',
- '弹窗或图示上出现箭头标识疏散路线,路线清晰可辨',
- 'P0', '场景法'],
- ['TC-11-007', '应急疏散弹窗', '未点击执行疏散前不显示疏散路线箭头', '正常场景',
- '应急疏散弹窗已打开,未点击执行疏散',
- '查看疏散弹窗中图示内容',
- '疏散弹窗内图示不显示路线箭头',
- 'P1', '场景法'],
- ['TC-11-008', '应急疏散弹窗', '疏散弹窗可正常关闭并返回上层', '正常场景',
- '应急疏散弹窗已打开',
- '关闭应急疏散弹窗',
- '弹窗关闭后返回预警弹窗或正常大屏页面',
- 'P0', '场景法'],
- ['TC-11-009', '应急疏散弹窗', '关闭后再次点击应急疏散弹窗正常重新打开', '边界场景',
- '已打开并关闭应急疏散弹窗',
- '再次点击「应急疏散」按钮',
- '弹窗重新正常打开,状态重置(如输入框清空等)',
- 'P1', '边界值分析'],
- // ===================================================
- // 模块12:视频监控-建筑结构导航
- // ===================================================
- ['TC-12-001', '视频监控-建筑结构导航', '切换至视频监控页左侧导航正常显示', '正常场景',
- '点击顶部「视频监控」按钮',
- '查看左侧导航栏结构',
- '左侧300px导航栏正常显示,标题"建筑结构导航"可见,panel样式正确',
- 'P0', '场景法'],
- ['TC-12-002', '视频监控-建筑结构导航', '搜索框输入关键字实时过滤树节点', '正常场景',
- '视频监控页已显示',
- '在搜索框输入楼栋或楼层名称关键字',
- '树状结构实时显示包含关键字的节点,不匹配项隐藏或灰显',
- 'P0', '场景法'],
- ['TC-12-003', '视频监控-建筑结构导航', '搜索框聚焦时边框发光效果', '正常场景',
- '视频监控页已显示',
- '点击搜索框',
- '搜索框聚焦时边框出现发光效果',
- 'P2', '场景法'],
- ['TC-12-004', '视频监控-建筑结构导航', '下拉筛选可按二级单位过滤节点', '正常场景',
- '视频监控页已显示',
- '展开筛选下拉,选择某二级单位(如:化学品安全研究所)',
- '树状结构只显示属于该二级单位的楼栋/楼层/房间节点',
- 'P0', '等价类划分'],
- ['TC-12-005', '视频监控-建筑结构导航', '下拉筛选包含四个单位选项', '正常场景',
- '视频监控页已显示',
- '展开筛选下拉查看所有选项',
- '下拉包含:安全技术研究所、职业安全研究所、化学品安全研究所、矿山安全研究所四个选项',
- 'P1', '等价类划分'],
- ['TC-12-006', '视频监控-建筑结构导航', '树状结构四级层级可独立展开折叠', '正常场景',
- '视频监控页已显示',
- '逐级点击院区→楼栋→楼层→房间节点展开/折叠',
- '树状结构为四层:院区→楼栋→楼层→房间,每级可独立展开/折叠',
- 'P0', '流程分析法'],
- ['TC-12-007', '视频监控-建筑结构导航', '选中节点高亮(科技蓝背景+左侧竖线)', '正常场景',
- '视频监控页已显示',
- '点击某一树节点',
- '被点击节点高亮显示科技蓝背景和左侧蓝色竖线',
- 'P1', '场景法'],
- ['TC-12-008', '视频监控-建筑结构导航', '节点悬停光扫效果', '正常场景',
- '视频监控页已显示',
- '鼠标悬停在树节点上',
- '节点显示light sweep光扫效果',
- 'P2', '场景法'],
- ['TC-12-009', '视频监控-建筑结构导航', '子节点展开时有淡入动画(0.35s)', '正常场景',
- '视频监控页已显示',
- '点击展开有子节点的树节点',
- '子节点以0.35s淡入动画方式展开,动画流畅',
- 'P2', '场景法'],
- ['TC-12-010', '视频监控-建筑结构导航', '搜索无匹配时树状图显示无匹配结果提示', '异常场景',
- '视频监控页已显示',
- '输入无匹配的搜索关键词',
- '树状图显示"无匹配结果"提示,不出现空白区域',
- 'P1', '错误推测法'],
- ['TC-12-011', '视频监控-建筑结构导航', '搜索框清空后树状图恢复完整展示', '异常场景',
- '搜索框已有内容',
- '清空搜索框',
- '树状图恢复完整展示',
- 'P1', '场景法'],
- ['TC-12-012', '视频监控-建筑结构导航', '树状图仅1个根节点时折叠展开按钮不显示或置灰', '边界场景',
- '后台配置树状图仅1个根节点',
- '观察折叠/展开按钮状态',
- '折叠/展开按钮不显示或置灰',
- 'P2', '边界值分析'],
- // ===================================================
- // 模块13:视频监控-视频区域
- // ===================================================
- ['TC-13-001', '视频监控-视频区域', '3×3九宫格摄像头科幻风边框正常显示', '正常场景',
- '视频监控页已显示',
- '查看右侧视频区域九宫格',
- '3×3共9个摄像头格子均正常显示,科幻风格外层渐变背景+内外双层边框效果',
- 'P0', '场景法'],
- ['TC-13-002', '视频监控-视频区域', '面包屑显示当前路径(院区→楼栋→楼层)', '正常场景',
- '视频监控页已显示',
- '查看视频区域顶部面包屑',
- '面包屑显示:院区→楼栋名称→楼层名称,路径正确',
- 'P1', '场景法'],
- ['TC-13-003', '视频监控-视频区域', '摄像头格子四角L形发光装饰呼吸动画', '正常场景',
- '视频监控页已显示',
- '观察摄像头格子四角装饰效果',
- '四角L形发光装饰有呼吸动画(2.5s周期,stagger 0.6s),效果正常',
- 'P2', '场景法'],
- ['TC-13-004', '视频监控-视频区域', '每个摄像头左上角显示绿色闪烁圆点和编号', '正常场景',
- '视频监控页已显示',
- '查看每个摄像头格子左上角',
- '显示绿色闪烁圆点(2s周期)和摄像头编号',
- 'P1', '场景法'],
- ['TC-13-005', '视频监控-视频区域', '摄像头内扫描线动画6s周期', '正常场景',
- '视频监控页已显示',
- '观察摄像头内部动画效果',
- '摄像头内有扫描线动画,6s一个周期,循环运行',
- 'P2', '场景法'],
- ['TC-13-006', '视频监控-视频区域', '摄像头悬停时轻微放大+增强发光', '正常场景',
- '视频监控页已显示',
- '鼠标悬停在某个摄像头格子上',
- '摄像头格子轻微放大并增强发光效果',
- 'P2', '场景法'],
- ['TC-13-007', '视频监控-视频区域', '九宫格stagger入场动画每格延迟0.05s', '正常场景',
- '切换至视频监控页面',
- '观察视频页切换时九宫格入场动画',
- '9个格子依次以0.05s间隔stagger入场,动画流畅',
- 'P2', '场景法'],
- ['TC-13-008', '视频监控-视频区域', '每页第一个为AI智能摄像头橙金色主题', '正常场景',
- '视频监控页已显示',
- '查看第一个摄像头格子样式',
- '第一个格子使用橙金色主题替代蓝色,内部扫描线为橙色',
- 'P0', '等价类划分'],
- ['TC-13-009', '视频监控-视频区域', 'AI徽章显示「AI智能」渐变背景+脉冲动画', '正常场景',
- '视频监控页已显示',
- '查看AI摄像头右上角徽章',
- '"AI智能"徽章显示渐变背景,有脉冲动画(1.5s周期)',
- 'P1', '场景法'],
- ['TC-13-010', '视频监控-视频区域', '点击下一页切换摄像头组面包屑同步更新', '正常场景',
- '视频监控页已显示,存在多页(>9个摄像头)',
- '点击"下一页"按钮',
- '视频区域切换至下一页摄像头组,分页数字更新,面包屑信息同步',
- 'P0', '场景法'],
- ['TC-13-011', '视频监控-视频区域', '点击上一页切换至上一组摄像头', '正常场景',
- '视频监控页在非第一页',
- '点击"上一页"按钮',
- '视频区域切换至上一页摄像头组',
- 'P0', '场景法'],
- ['TC-13-012', '视频监控-视频区域', '第一页时上一页按钮禁用不可点击', '边界场景',
- '视频监控页在第一页',
- '查看"上一页"按钮状态',
- '第一页时"上一页"按钮不可点击或无响应',
- 'P1', '边界值分析'],
- ['TC-13-013', '视频监控-视频区域', '最后一页时下一页按钮禁用不可点击', '边界场景',
- '视频监控页在最后一页',
- '查看"下一页"按钮状态',
- '最后一页时"下一页"按钮不可点击或无响应',
- 'P1', '边界值分析'],
- ['TC-13-014', '视频监控-视频区域', '摄像头总数恰好9个时下一页按钮置灰', '边界场景',
- '后台配置摄像头总数为9',
- '观察翻页按钮状态',
- '下一页按钮置灰不可点击',
- 'P1', '边界值分析'],
- ['TC-13-015', '视频监控-视频区域', '摄像头总数为0时九宫格全部显示占位', '边界场景',
- '后台配置摄像头总数为0',
- '观察九宫格和翻页按钮状态',
- '九宫格全部显示"暂无信号"占位格,翻页按钮均置灰',
- 'P1', '边界值分析'],
- // ===================================================
- // 模块14:自适应缩放与全屏
- // ===================================================
- ['TC-14-001', '自适应缩放与全屏', '1920×1080分辨率下无缩放完整显示', '正常场景',
- '浏览器分辨率1920×1080全屏打开页面',
- '检查页面整体显示效果',
- '页面完整无缩放显示,无滚动条,1920×1080px完整呈现',
- 'P0', '场景法'],
- ['TC-14-002', '自适应缩放与全屏', '分辨率小于1920×1080时按比例缩放居中显示', '正常场景',
- '浏览器窗口缩小至非1920×1080',
- '调整浏览器窗口大小,观察页面缩放效果',
- '页面通过CSS scale等比缩放居中显示,不变形不溢出',
- 'P0', '场景法'],
- ['TC-14-003', '自适应缩放与全屏', 'resize事件实时更新缩放比无错位', '正常场景',
- '页面已加载',
- '拖动调整浏览器窗口大小',
- '缩放比实时计算更新(Math.min(vw/1920, vh/1080)),页面不出现错位',
- 'P0', '场景法'],
- ['TC-14-004', '自适应缩放与全屏', '首次点击页面触发全屏', '正常场景',
- '页面已加载,非全屏状态',
- '首次点击页面任意位置',
- '调用requestFullscreen()进入全屏模式',
- 'P1', '场景法'],
- ['TC-14-005', '自适应缩放与全屏', '全屏触发仅一次(once:true)', '边界场景',
- '页面已加载,已触发一次全屏',
- '再次点击页面',
- '不再重复触发requestFullscreen(),使用once:true确保只触发一次',
- 'P1', '边界值分析'],
- ['TC-14-006', '自适应缩放与全屏', '浏览器不支持全屏API时页面正常显示不报错', '异常场景',
- '使用不支持Fullscreen API的浏览器',
- '打开页面观察显示和错误',
- '页面正常显示,不出现白屏、黑屏或JS报错',
- 'P1', '错误推测法'],
- // ===================================================
- // 模块15:ECharts图表通用规范
- // ===================================================
- ['TC-15-001', 'ECharts图表通用', '所有图表Tooltip统一深色背景蓝色边框', '正常场景',
- '任意ECharts图表已渲染',
- '鼠标悬停在任意ECharts图表数据上',
- 'Tooltip背景为rgba(6,22,56,0.9),边框为蓝色,样式全局统一',
- 'P1', '等价类划分'],
- ['TC-15-002', 'ECharts图表通用', '窗口resize时所有图表自动调用resize', '正常场景',
- '页面已加载,所有图表已渲染',
- '调整浏览器窗口大小',
- '所有ECharts图表均自动调用.resize()方法,图表自适应新尺寸',
- 'P0', '场景法'],
- ['TC-15-003', 'ECharts图表通用', '图表初始化延迟200ms等待DOM渲染', '正常场景',
- '切换至实验室情况页',
- '观察图表渲染时序',
- '图表在DOM渲染后延迟200ms初始化,不出现容器尺寸获取错误',
- 'P1', '场景法'],
- ['TC-15-004', 'ECharts图表通用', '切回实验室页时ECharts延迟100ms重新初始化', '正常场景',
- '从视频监控页切换回实验室情况页',
- '切换页面观察图表状态',
- '延迟100ms后所有ECharts图表重新初始化并正确渲染,无白屏',
- 'P0', '场景法'],
- ['TC-15-005', 'ECharts图表通用', 'ECharts资源加载失败时图表区域显示占位块', '异常场景',
- '模拟ECharts资源加载失败',
- '观察图表区域响应',
- '对应图表区域显示"图表加载失败"占位块,不影响其他模块渲染',
- 'P0', '错误推测法'],
- // ===================================================
- // 模块16:全局样式与动效
- // ===================================================
- ['TC-16-001', '全局样式与动效', '主背景深蓝渐变正确显示', '正常场景',
- '页面已加载',
- '查看页面整体背景',
- '页面背景显示#020c1b→#061630→#0a2550深蓝渐变',
- 'P1', '场景法'],
- ['TC-16-002', '全局样式与动效', '面板背景毛玻璃效果正确渲染', '正常场景',
- '页面已加载',
- '查看各功能面板背景样式',
- '面板背景为rgba(6,22,56,0.82)配合backdrop-filter:blur(8px)毛玻璃效果',
- 'P1', '场景法'],
- ['TC-16-003', '全局样式与动效', '面板顶部2px渐变高亮线正确显示', '正常场景',
- '页面已加载',
- '查看各面板顶部边缘',
- '各面板顶部有2px渐变高亮线(accent色)',
- 'P2', '场景法'],
- ['TC-16-004', '全局样式与动效', '面板四角装饰元素3s呼吸动画', '正常场景',
- '页面已加载',
- '观察面板四角装饰效果',
- '各面板四角有corner-deco装饰元素,有3s周期呼吸动画',
- 'P2', '场景法'],
- ['TC-16-005', '全局样式与动效', '全局技术网格覆盖层正常显示', '正常场景',
- '页面已加载',
- '查看页面整体视觉效果',
- '页面有半透明技术网格覆盖层持续显示',
- 'P2', '场景法'],
- ['TC-16-006', '全局样式与动效', '浮动粒子效果20s周期正常运行', '正常场景',
- '页面已加载',
- '观察页面背景动效',
- '浮动粒子以20s周期漂浮,动效正常运行无卡顿',
- 'P2', '场景法'],
- ['TC-16-007', '全局样式与动效', '所有文字为中文简体无乱码', '正常场景',
- '页面已加载',
- '查看页面所有文本标签',
- '所有标签和文案均为简体中文,无英文混用或乱码',
- 'P1', '等价类划分'],
- ['TC-16-008', '全局样式与动效', '多动效同时运行时页面帧率流畅无卡顿', '异常场景',
- '系统正常运行,所有动效同时运行',
- '观察页面帧率和流畅度',
- '页面帧率保持流畅,无明显卡顿',
- 'P1', '错误推测法'],
- ['TC-16-009', '全局样式与动效', '页面持续运行8小时以上无内存泄漏退化', '边界场景',
- '系统正常运行超过8小时',
- '持续观察各实时刷新模块性能',
- '时钟、传感器数据、预警通知等模块不出现因内存泄漏导致的性能退化',
- 'P0', '边界值分析'],
- ];
- // ======================================================
- // 创建Excel工作簿(带样式)
- // ======================================================
- // 颜色常量
- const COLOR_HEADER = '000080'; // 标题行:海军蓝
- const COLOR_NORMAL = 'CCFFFF'; // 正常场景:浅青色
- const COLOR_ABNORMAL = 'FF99CC'; // 异常场景:浅粉红
- const COLOR_BOUNDARY = 'FFFF99'; // 边界场景:浅黄色
- function getRowColor(testType) {
- if (testType === '正常场景') return COLOR_NORMAL;
- if (testType === '异常场景') return COLOR_ABNORMAL;
- if (testType === '边界场景') return COLOR_BOUNDARY;
- return COLOR_NORMAL;
- }
- function makeCell(value, bgColor, isHeader) {
- const cell = { v: value === undefined || value === null ? '' : value, t: 's' };
- cell.s = {
- fill: {
- patternType: 'solid',
- fgColor: { rgb: bgColor },
- bgColor: { rgb: '000000' }
- },
- alignment: {
- wrapText: true,
- vertical: 'center'
- }
- };
- if (isHeader) {
- cell.s.font = { bold: true, color: { rgb: 'FFFFFF' } };
- }
- return cell;
- }
- const wb = XLSX.utils.book_new();
- const headers = ['用例编号', '模块名称', '测试场景', '测试类型',
- '前置条件', '测试操作', '预期结果', '优先级', '设计方法', '测试结果'];
- // 构建工作表数据
- const ws = {};
- const cols = ['A','B','C','D','E','F','G','H','I','J'];
- // 写入标题行
- headers.forEach((h, ci) => {
- const addr = cols[ci] + '1';
- ws[addr] = makeCell(h, COLOR_HEADER, true);
- });
- // 写入数据行
- testCases.forEach((row, ri) => {
- const excelRow = ri + 2;
- const testType = row[3]; // 测试类型
- const bgColor = getRowColor(testType);
- for (let ci = 0; ci < 10; ci++) {
- const addr = cols[ci] + excelRow;
- const val = row[ci] !== undefined ? row[ci] : '';
- ws[addr] = makeCell(val, bgColor, false);
- }
- });
- // 设置工作表范围
- ws['!ref'] = 'A1:J' + (testCases.length + 1);
- // 设置行高:标题行30pt,数据行25pt
- const rowHeights = [{ hpt: 30, hpx: 30 }];
- for (let i = 0; i < testCases.length; i++) {
- rowHeights.push({ hpt: 25, hpx: 25 });
- }
- ws['!rows'] = rowHeights;
- // 设置列宽
- ws['!cols'] = [
- { wch: 12 }, // 用例编号
- { wch: 20 }, // 模块名称
- { wch: 36 }, // 测试场景
- { wch: 10 }, // 测试类型
- { wch: 32 }, // 前置条件
- { wch: 40 }, // 测试操作
- { wch: 55 }, // 预期结果
- { wch: 8 }, // 优先级
- { wch: 12 }, // 设计方法
- { wch: 14 }, // 测试结果
- ];
- XLSX.utils.book_append_sheet(wb, ws, '测试用例');
- const outputPath = 'e:/anKeYuan-largeScreen-1080/test_case/test_case.xlsx';
- XLSX.writeFile(wb, outputPath, { cellStyles: true });
- console.log('✅ 文件已生成:' + outputPath);
- console.log('📊 共生成测试用例:' + testCases.length + ' 条');
- console.log('📋 模块分布:');
- const moduleStat = {};
- testCases.forEach(r => {
- moduleStat[r[1]] = (moduleStat[r[1]] || 0) + 1;
- });
- Object.entries(moduleStat).forEach(([mod, cnt]) => {
- console.log(' ' + mod + ': ' + cnt + ' 条');
- });
|