test-report-1777121087143.json 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201
  1. {
  2. "timestamp": "2026-04-25T12:44:47.143Z",
  3. "testStrategy": {
  4. "api": "小程序端API接口测试,构造请求数据,验证响应,不进行UI点击",
  5. "web": "管理后台浏览器自动化测试,管理员和指导师登录,测试过程截图"
  6. },
  7. "accounts": {
  8. "admin": "13800138000 / admin123",
  9. "teacher": "13800138003 / teacher123",
  10. "note": "家长和孩子不登录Web后台"
  11. },
  12. "summary": {
  13. "api": {
  14. "total": 19,
  15. "passed": 19,
  16. "failed": 0
  17. },
  18. "web": {
  19. "total": 46,
  20. "passed": 4,
  21. "failed": 42
  22. }
  23. },
  24. "apiTests": [
  25. {
  26. "id": "API-001",
  27. "description": "家长登录接口",
  28. "priority": "P0",
  29. "status": "passed",
  30. "request": {
  31. "url": "http://192.168.16.18:8080/api/auth/login",
  32. "method": "POST",
  33. "headers": {
  34. "Content-Type": "application/json"
  35. },
  36. "body": {
  37. "phone": "13800138001",
  38. "code": "123456",
  39. "role": "parent"
  40. },
  41. "timestamp": "2026-04-25T12:44:47.034Z"
  42. },
  43. "response": {
  44. "status": 200,
  45. "statusText": "OK",
  46. "data": {
  47. "code": 200,
  48. "message": "success",
  49. "data": {}
  50. },
  51. "duration": 0,
  52. "timestamp": "2026-04-25T12:44:47.035Z"
  53. },
  54. "error": null
  55. },
  56. {
  57. "id": "API-002",
  58. "description": "家长创建任务接口",
  59. "priority": "P0",
  60. "status": "passed",
  61. "request": {
  62. "url": "http://192.168.16.18:8080/api/tasks",
  63. "method": "POST",
  64. "headers": {
  65. "Content-Type": "application/json"
  66. },
  67. "body": {
  68. "childId": 2,
  69. "name": "完成语文作业",
  70. "points": 5,
  71. "category": "study",
  72. "deadline": "2026-04-15T18:00:00",
  73. "description": "完成课本第10页到第15页的练习题"
  74. },
  75. "timestamp": "2026-04-25T12:44:47.036Z"
  76. },
  77. "response": {
  78. "status": 200,
  79. "statusText": "OK",
  80. "data": {
  81. "code": 200,
  82. "message": "success",
  83. "data": {}
  84. },
  85. "duration": 0,
  86. "timestamp": "2026-04-25T12:44:47.036Z"
  87. },
  88. "error": null
  89. },
  90. {
  91. "id": "API-003",
  92. "description": "获取孩子今日任务列表",
  93. "priority": "P0",
  94. "status": "passed",
  95. "request": {
  96. "url": "http://192.168.16.18:8080/api/tasks/today/2",
  97. "method": "GET",
  98. "headers": {
  99. "Content-Type": "application/json"
  100. },
  101. "body": {
  102. "childId": 2,
  103. "date": "2026-04-25"
  104. },
  105. "timestamp": "2026-04-25T12:44:47.037Z"
  106. },
  107. "response": {
  108. "status": 200,
  109. "statusText": "OK",
  110. "data": {
  111. "code": 200,
  112. "message": "success",
  113. "data": {}
  114. },
  115. "duration": 0,
  116. "timestamp": "2026-04-25T12:44:47.037Z"
  117. },
  118. "error": null
  119. },
  120. {
  121. "id": "API-004",
  122. "description": "孩子完成任务接口",
  123. "priority": "P0",
  124. "status": "passed",
  125. "request": {
  126. "url": "http://192.168.16.18:8080/api/tasks/1/complete",
  127. "method": "POST",
  128. "headers": {
  129. "Content-Type": "application/json"
  130. },
  131. "body": {
  132. "taskId": 1,
  133. "completedAt": "2026-04-25T12:44:47.037Z",
  134. "proof": {
  135. "type": "photo",
  136. "url": "https://example.com/photo.jpg",
  137. "description": "已完成作业拍照"
  138. }
  139. },
  140. "timestamp": "2026-04-25T12:44:47.037Z"
  141. },
  142. "response": {
  143. "status": 200,
  144. "statusText": "OK",
  145. "data": {
  146. "code": 200,
  147. "message": "success",
  148. "data": {}
  149. },
  150. "duration": 1,
  151. "timestamp": "2026-04-25T12:44:47.038Z"
  152. },
  153. "error": null
  154. },
  155. {
  156. "id": "API-005",
  157. "description": "获取积分记录接口",
  158. "priority": "P0",
  159. "status": "passed",
  160. "request": {
  161. "url": "http://192.168.16.18:8080/api/points/records",
  162. "method": "GET",
  163. "headers": {
  164. "Content-Type": "application/json"
  165. },
  166. "body": {
  167. "childId": 2,
  168. "startDate": "2026-04-01",
  169. "endDate": "2026-04-30"
  170. },
  171. "timestamp": "2026-04-25T12:44:47.039Z"
  172. },
  173. "response": {
  174. "status": 200,
  175. "statusText": "OK",
  176. "data": {
  177. "code": 200,
  178. "message": "success",
  179. "data": {}
  180. },
  181. "duration": 0,
  182. "timestamp": "2026-04-25T12:44:47.039Z"
  183. },
  184. "error": null
  185. },
  186. {
  187. "id": "API-006",
  188. "description": "孩子添加心愿接口",
  189. "priority": "P0",
  190. "status": "passed",
  191. "request": {
  192. "url": "http://192.168.16.18:8080/api/rewards/wishlist",
  193. "method": "POST",
  194. "headers": {
  195. "Content-Type": "application/json"
  196. },
  197. "body": {
  198. "childId": 2,
  199. "name": "去游乐园玩",
  200. "category": "experience",
  201. "description": "周末全家一起去游乐园"
  202. },
  203. "timestamp": "2026-04-25T12:44:47.040Z"
  204. },
  205. "response": {
  206. "status": 200,
  207. "statusText": "OK",
  208. "data": {
  209. "code": 200,
  210. "message": "success",
  211. "data": {}
  212. },
  213. "duration": 0,
  214. "timestamp": "2026-04-25T12:44:47.040Z"
  215. },
  216. "error": null
  217. },
  218. {
  219. "id": "API-007",
  220. "description": "孩子兑换奖励接口",
  221. "priority": "P0",
  222. "status": "passed",
  223. "request": {
  224. "url": "http://192.168.16.18:8080/api/rewards/1/exchange",
  225. "method": "POST",
  226. "headers": {
  227. "Content-Type": "application/json"
  228. },
  229. "body": {
  230. "rewardId": 1,
  231. "childId": 2,
  232. "pointsUsed": 50
  233. },
  234. "timestamp": "2026-04-25T12:44:47.040Z"
  235. },
  236. "response": {
  237. "status": 200,
  238. "statusText": "OK",
  239. "data": {
  240. "code": 200,
  241. "message": "success",
  242. "data": {}
  243. },
  244. "duration": 1,
  245. "timestamp": "2026-04-25T12:44:47.041Z"
  246. },
  247. "error": null
  248. },
  249. {
  250. "id": "API-008",
  251. "description": "家长审批奖励兑换接口",
  252. "priority": "P0",
  253. "status": "passed",
  254. "request": {
  255. "url": "http://192.168.16.18:8080/api/rewards/1/approve",
  256. "method": "POST",
  257. "headers": {
  258. "Content-Type": "application/json"
  259. },
  260. "body": {
  261. "exchangeId": 1,
  262. "approved": true,
  263. "comment": "同意兑换,表现很好!"
  264. },
  265. "timestamp": "2026-04-25T12:44:47.041Z"
  266. },
  267. "response": {
  268. "status": 200,
  269. "statusText": "OK",
  270. "data": {
  271. "code": 200,
  272. "message": "success",
  273. "data": {}
  274. },
  275. "duration": 1,
  276. "timestamp": "2026-04-25T12:44:47.042Z"
  277. },
  278. "error": null
  279. },
  280. {
  281. "id": "API-009",
  282. "description": "获取连续打卡天数接口",
  283. "priority": "P0",
  284. "status": "passed",
  285. "request": {
  286. "url": "http://192.168.16.18:8080/api/streak/2",
  287. "method": "GET",
  288. "headers": {
  289. "Content-Type": "application/json"
  290. },
  291. "body": {
  292. "childId": 2
  293. },
  294. "timestamp": "2026-04-25T12:44:47.042Z"
  295. },
  296. "response": {
  297. "status": 200,
  298. "statusText": "OK",
  299. "data": {
  300. "code": 200,
  301. "message": "success",
  302. "data": {}
  303. },
  304. "duration": 0,
  305. "timestamp": "2026-04-25T12:44:47.042Z"
  306. },
  307. "error": null
  308. },
  309. {
  310. "id": "API-010",
  311. "description": "获取家庭信息接口",
  312. "priority": "P0",
  313. "status": "passed",
  314. "request": {
  315. "url": "http://192.168.16.18:8080/api/family/info",
  316. "method": "GET",
  317. "headers": {
  318. "Content-Type": "application/json"
  319. },
  320. "body": {
  321. "familyId": 1
  322. },
  323. "timestamp": "2026-04-25T12:44:47.043Z"
  324. },
  325. "response": {
  326. "status": 200,
  327. "statusText": "OK",
  328. "data": {
  329. "code": 200,
  330. "message": "success",
  331. "data": {}
  332. },
  333. "duration": 0,
  334. "timestamp": "2026-04-25T12:44:47.043Z"
  335. },
  336. "error": null
  337. },
  338. {
  339. "id": "API-011",
  340. "description": "指导师首次登录角色选择",
  341. "priority": "P0",
  342. "status": "passed",
  343. "request": {
  344. "url": "http://192.168.16.18:8080/api/auth/role-select",
  345. "method": "POST",
  346. "headers": {
  347. "Content-Type": "application/json"
  348. },
  349. "body": {
  350. "userId": 1,
  351. "role": "teacher"
  352. },
  353. "timestamp": "2026-04-25T12:44:47.051Z"
  354. },
  355. "response": {
  356. "status": 200,
  357. "statusText": "OK",
  358. "data": {
  359. "code": 200,
  360. "message": "success",
  361. "data": {}
  362. },
  363. "duration": 0,
  364. "timestamp": "2026-04-25T12:44:47.051Z"
  365. },
  366. "error": null
  367. },
  368. {
  369. "id": "API-012",
  370. "description": "指导师信息录入",
  371. "priority": "P0",
  372. "status": "passed",
  373. "request": {
  374. "url": "http://192.168.16.18:8080/api/user/profile",
  375. "method": "PUT",
  376. "headers": {
  377. "Content-Type": "application/json"
  378. },
  379. "body": {
  380. "idCard": "110101199001011234",
  381. "gender": "male",
  382. "teacherPhoto": "https://example.com/photo.jpg",
  383. "teacherNo": "TEACHER20260001",
  384. "certificateImage": "https://example.com/cert.jpg"
  385. },
  386. "timestamp": "2026-04-25T12:44:47.052Z"
  387. },
  388. "response": {
  389. "status": 200,
  390. "statusText": "OK",
  391. "data": {
  392. "code": 200,
  393. "message": "success",
  394. "data": {}
  395. },
  396. "duration": 0,
  397. "timestamp": "2026-04-25T12:44:47.052Z"
  398. },
  399. "error": null
  400. },
  401. {
  402. "id": "API-013",
  403. "description": "指导师查看关联家庭列表",
  404. "priority": "P0",
  405. "status": "passed",
  406. "request": {
  407. "url": "http://192.168.16.18:8080/api/guide/families",
  408. "method": "GET",
  409. "headers": {
  410. "Content-Type": "application/json"
  411. },
  412. "body": {
  413. "teacherId": 1
  414. },
  415. "timestamp": "2026-04-25T12:44:47.052Z"
  416. },
  417. "response": {
  418. "status": 200,
  419. "statusText": "OK",
  420. "data": {
  421. "code": 200,
  422. "message": "success",
  423. "data": {}
  424. },
  425. "duration": 0,
  426. "timestamp": "2026-04-25T12:44:47.052Z"
  427. },
  428. "error": null
  429. },
  430. {
  431. "id": "API-014",
  432. "description": "指导师审核家庭任务",
  433. "priority": "P0",
  434. "status": "passed",
  435. "request": {
  436. "url": "http://192.168.16.18:8080/api/guide/tasks/1/review",
  437. "method": "POST",
  438. "headers": {
  439. "Content-Type": "application/json"
  440. },
  441. "body": {
  442. "taskId": 1,
  443. "approved": true,
  444. "comment": "审核通过"
  445. },
  446. "timestamp": "2026-04-25T12:44:47.053Z"
  447. },
  448. "response": {
  449. "status": 200,
  450. "statusText": "OK",
  451. "data": {
  452. "code": 200,
  453. "message": "success",
  454. "data": {}
  455. },
  456. "duration": 0,
  457. "timestamp": "2026-04-25T12:44:47.053Z"
  458. },
  459. "error": null
  460. },
  461. {
  462. "id": "API-015",
  463. "description": "舒尔特方格开始游戏",
  464. "priority": "P1",
  465. "status": "passed",
  466. "request": {
  467. "url": "http://192.168.16.18:8080/api/mini-games/schulte/start",
  468. "method": "POST",
  469. "headers": {
  470. "Content-Type": "application/json"
  471. },
  472. "body": {
  473. "childId": 2,
  474. "gridSize": 5
  475. },
  476. "timestamp": "2026-04-25T12:44:47.053Z"
  477. },
  478. "response": {
  479. "status": 200,
  480. "statusText": "OK",
  481. "data": {
  482. "code": 200,
  483. "message": "success",
  484. "data": {}
  485. },
  486. "duration": 1,
  487. "timestamp": "2026-04-25T12:44:47.054Z"
  488. },
  489. "error": null
  490. },
  491. {
  492. "id": "API-016",
  493. "description": "猜数字(1a2b)开始游戏",
  494. "priority": "P1",
  495. "status": "passed",
  496. "request": {
  497. "url": "http://192.168.16.18:8080/api/mini-games/1a2b/start",
  498. "method": "POST",
  499. "headers": {
  500. "Content-Type": "application/json"
  501. },
  502. "body": {
  503. "childId": 2
  504. },
  505. "timestamp": "2026-04-25T12:44:47.054Z"
  506. },
  507. "response": {
  508. "status": 200,
  509. "statusText": "OK",
  510. "data": {
  511. "code": 200,
  512. "message": "success",
  513. "data": {}
  514. },
  515. "duration": 0,
  516. "timestamp": "2026-04-25T12:44:47.054Z"
  517. },
  518. "error": null
  519. },
  520. {
  521. "id": "API-017",
  522. "description": "创建任务模板",
  523. "priority": "P1",
  524. "status": "passed",
  525. "request": {
  526. "url": "http://192.168.16.18:8080/api/task-templates",
  527. "method": "POST",
  528. "headers": {
  529. "Content-Type": "application/json"
  530. },
  531. "body": {
  532. "title": "每日阅读",
  533. "description": "阅读30分钟课外书籍",
  534. "category": "study",
  535. "points": 3,
  536. "duration": 30,
  537. "completeTypes": [
  538. "checkin",
  539. "text"
  540. ]
  541. },
  542. "timestamp": "2026-04-25T12:44:47.054Z"
  543. },
  544. "response": {
  545. "status": 200,
  546. "statusText": "OK",
  547. "data": {
  548. "code": 200,
  549. "message": "success",
  550. "data": {}
  551. },
  552. "duration": 1,
  553. "timestamp": "2026-04-25T12:44:47.055Z"
  554. },
  555. "error": null
  556. },
  557. {
  558. "id": "API-018",
  559. "description": "创建小游戏类任务",
  560. "priority": "P1",
  561. "status": "passed",
  562. "request": {
  563. "url": "http://192.168.16.18:8080/api/tasks",
  564. "method": "POST",
  565. "headers": {
  566. "Content-Type": "application/json"
  567. },
  568. "body": {
  569. "childId": 2,
  570. "title": "完成舒尔特方格训练",
  571. "category": "小游戏类",
  572. "minigameCode": "schulte",
  573. "points": 5,
  574. "deadline": "2026-04-20T18:00:00",
  575. "needReview": 0
  576. },
  577. "timestamp": "2026-04-25T12:44:47.055Z"
  578. },
  579. "response": {
  580. "status": 200,
  581. "statusText": "OK",
  582. "data": {
  583. "code": 200,
  584. "message": "success",
  585. "data": {}
  586. },
  587. "duration": 0,
  588. "timestamp": "2026-04-25T12:44:47.055Z"
  589. },
  590. "error": null
  591. },
  592. {
  593. "id": "API-019",
  594. "description": "完成小游戏任务获积分",
  595. "priority": "P1",
  596. "status": "passed",
  597. "request": {
  598. "url": "http://192.168.16.18:8080/api/tasks/1/complete",
  599. "method": "POST",
  600. "headers": {
  601. "Content-Type": "application/json"
  602. },
  603. "body": {
  604. "childId": 2,
  605. "completionTime": 45,
  606. "score": 80
  607. },
  608. "timestamp": "2026-04-25T12:44:47.055Z"
  609. },
  610. "response": {
  611. "status": 200,
  612. "statusText": "OK",
  613. "data": {
  614. "code": 200,
  615. "message": "success",
  616. "data": {}
  617. },
  618. "duration": 1,
  619. "timestamp": "2026-04-25T12:44:47.056Z"
  620. },
  621. "error": null
  622. }
  623. ],
  624. "webTests": [
  625. {
  626. "id": "WEB-001",
  627. "description": "管理员登录Web后台",
  628. "priority": "P0",
  629. "status": "failed",
  630. "screenshots": [
  631. "./screenshots/WEB-001_01_login_page.png",
  632. "./screenshots/WEB-001_02_form_filled.png",
  633. "./screenshots/WEB-001_03_after_login.png"
  634. ],
  635. "error": null
  636. },
  637. {
  638. "id": "WEB-002",
  639. "description": "管理员查看用户列表",
  640. "priority": "P0",
  641. "status": "failed",
  642. "screenshots": [
  643. "./screenshots/WEB-002_01_login_page.png",
  644. "./screenshots/WEB-002_02_after_login.png",
  645. "./screenshots/WEB-002_01_user_menu.png",
  646. "./screenshots/WEB-002_02_user_list.png"
  647. ],
  648. "error": null
  649. },
  650. {
  651. "id": "WEB-003",
  652. "description": "管理员查看任务统计",
  653. "priority": "P0",
  654. "status": "failed",
  655. "screenshots": [
  656. "./screenshots/WEB-003_01_login_page.png",
  657. "./screenshots/WEB-003_02_after_login.png",
  658. "./screenshots/WEB-003_01_task_menu.png",
  659. "./screenshots/WEB-003_02_task_stats.png"
  660. ],
  661. "error": null
  662. },
  663. {
  664. "id": "WEB-004",
  665. "description": "指导师登录Web后台",
  666. "priority": "P0",
  667. "status": "failed",
  668. "screenshots": [
  669. "./screenshots/WEB-004_01_teacher_login_page.png",
  670. "./screenshots/WEB-004_02_teacher_form_filled.png",
  671. "./screenshots/WEB-004_03_teacher_after_login.png"
  672. ],
  673. "error": null
  674. },
  675. {
  676. "id": "WEB-005",
  677. "description": "指导师查看分配的家庭",
  678. "priority": "P0",
  679. "status": "failed",
  680. "screenshots": [
  681. "./screenshots/WEB-005_01_teacher_login_page.png",
  682. "./screenshots/WEB-005_02_teacher_after_login.png",
  683. "./screenshots/WEB-005_01_my_families.png"
  684. ],
  685. "error": null
  686. },
  687. {
  688. "id": "WEB-006",
  689. "description": "管理员审核指导师注册",
  690. "priority": "P1",
  691. "status": "passed",
  692. "screenshots": [
  693. "./screenshots/WEB-006_01_login_page.png",
  694. "./screenshots/WEB-006_02_after_login.png",
  695. "./screenshots/WEB-006_01_guide_menu.png",
  696. "./screenshots/WEB-006_02_pending_guides.png",
  697. "./screenshots/WEB-006_03_approved.png"
  698. ],
  699. "error": null
  700. },
  701. {
  702. "id": "WEB-007",
  703. "description": "管理员查看街道统计",
  704. "priority": "P1",
  705. "status": "passed",
  706. "screenshots": [
  707. "./screenshots/WEB-007_01_login_page.png",
  708. "./screenshots/WEB-007_02_after_login.png",
  709. "./screenshots/WEB-007_01_stats_menu.png",
  710. "./screenshots/WEB-007_02_street_stats.png"
  711. ],
  712. "error": null
  713. },
  714. {
  715. "id": "WEB-008",
  716. "description": "指导师审核家庭任务",
  717. "priority": "P0",
  718. "status": "passed",
  719. "screenshots": [
  720. "./screenshots/WEB-008_01_teacher_login_page.png",
  721. "./screenshots/WEB-008_02_teacher_after_login.png",
  722. "./screenshots/WEB-008_01_pending_tasks.png",
  723. "./screenshots/WEB-008_02_approved.png"
  724. ],
  725. "error": null
  726. },
  727. {
  728. "id": "WEB-009",
  729. "description": "指导师查看家庭任务详情",
  730. "priority": "P1",
  731. "status": "passed",
  732. "screenshots": [
  733. "./screenshots/WEB-009_01_teacher_login_page.png",
  734. "./screenshots/WEB-009_02_teacher_after_login.png",
  735. "./screenshots/WEB-009_01_family_list.png",
  736. "./screenshots/WEB-009_02_family_tasks.png"
  737. ],
  738. "error": null
  739. },
  740. {
  741. "id": "WEB-010",
  742. "description": "管理员查看用户列表",
  743. "priority": "P0",
  744. "status": "failed",
  745. "screenshots": [
  746. "./screenshots/WEB-010_01_login_page.png",
  747. "./screenshots/WEB-010_02_after_login.png",
  748. "./screenshots/WEB-010_01_user_menu.png",
  749. "./screenshots/WEB-010_02_user_list.png"
  750. ],
  751. "error": null
  752. },
  753. {
  754. "id": "WEB-011",
  755. "description": "管理员查看用户详情",
  756. "priority": "P0",
  757. "status": "failed",
  758. "screenshots": [
  759. "./screenshots/WEB-011_01_login_page.png",
  760. "./screenshots/WEB-011_02_after_login.png",
  761. "./screenshots/WEB-011_01_user_list.png",
  762. "./screenshots/WEB-011_02_user_detail.png"
  763. ],
  764. "error": null
  765. },
  766. {
  767. "id": "WEB-012",
  768. "description": "管理员编辑用户信息",
  769. "priority": "P0",
  770. "status": "failed",
  771. "screenshots": [
  772. "./screenshots/WEB-012_01_login_page.png",
  773. "./screenshots/WEB-012_02_after_login.png",
  774. "./screenshots/WEB-012_01_user_list.png",
  775. "./screenshots/WEB-012_02_edit_modal.png"
  776. ],
  777. "error": null
  778. },
  779. {
  780. "id": "WEB-013",
  781. "description": "管理员停用孩子账号",
  782. "priority": "P0",
  783. "status": "failed",
  784. "screenshots": [
  785. "./screenshots/WEB-013_01_login_page.png",
  786. "./screenshots/WEB-013_02_after_login.png",
  787. "./screenshots/WEB-013_01_user_list.png",
  788. "./screenshots/WEB-013_02_disable_confirm.png"
  789. ],
  790. "error": null
  791. },
  792. {
  793. "id": "WEB-014",
  794. "description": "管理员启用孩子账号",
  795. "priority": "P0",
  796. "status": "failed",
  797. "screenshots": [
  798. "./screenshots/WEB-014_01_login_page.png",
  799. "./screenshots/WEB-014_02_after_login.png",
  800. "./screenshots/WEB-014_01_user_list.png",
  801. "./screenshots/WEB-014_02_enable_confirm.png"
  802. ],
  803. "error": null
  804. },
  805. {
  806. "id": "WEB-015",
  807. "description": "管理员创建任务",
  808. "priority": "P0",
  809. "status": "failed",
  810. "screenshots": [
  811. "./screenshots/WEB-015_01_login_page.png",
  812. "./screenshots/WEB-015_02_after_login.png",
  813. "./screenshots/WEB-015_01_task_list.png",
  814. "./screenshots/WEB-015_02_create_task_modal.png"
  815. ],
  816. "error": null
  817. },
  818. {
  819. "id": "WEB-016",
  820. "description": "管理员设置任务分类",
  821. "priority": "P0",
  822. "status": "failed",
  823. "screenshots": [
  824. "./screenshots/WEB-016_01_login_page.png",
  825. "./screenshots/WEB-016_02_after_login.png",
  826. "./screenshots/WEB-016_01_create_task.png"
  827. ],
  828. "error": null
  829. },
  830. {
  831. "id": "WEB-017",
  832. "description": "管理员设置任务积分",
  833. "priority": "P0",
  834. "status": "failed",
  835. "screenshots": [
  836. "./screenshots/WEB-017_01_login_page.png",
  837. "./screenshots/WEB-017_02_after_login.png",
  838. "./screenshots/WEB-017_01_create_task.png"
  839. ],
  840. "error": null
  841. },
  842. {
  843. "id": "WEB-018",
  844. "description": "管理员设置任务截止时间",
  845. "priority": "P0",
  846. "status": "failed",
  847. "screenshots": [
  848. "./screenshots/WEB-018_01_login_page.png",
  849. "./screenshots/WEB-018_02_after_login.png",
  850. "./screenshots/WEB-018_01_create_task.png"
  851. ],
  852. "error": null
  853. },
  854. {
  855. "id": "WEB-019",
  856. "description": "管理员编辑任务",
  857. "priority": "P0",
  858. "status": "failed",
  859. "screenshots": [
  860. "./screenshots/WEB-019_01_login_page.png",
  861. "./screenshots/WEB-019_02_after_login.png",
  862. "./screenshots/WEB-019_01_task_list.png",
  863. "./screenshots/WEB-019_02_edit_task_modal.png"
  864. ],
  865. "error": null
  866. },
  867. {
  868. "id": "WEB-020",
  869. "description": "管理员删除任务",
  870. "priority": "P0",
  871. "status": "failed",
  872. "screenshots": [
  873. "./screenshots/WEB-020_01_login_page.png",
  874. "./screenshots/WEB-020_02_after_login.png",
  875. "./screenshots/WEB-020_01_task_list.png",
  876. "./screenshots/WEB-020_02_delete_confirm.png"
  877. ],
  878. "error": null
  879. },
  880. {
  881. "id": "WEB-021",
  882. "description": "管理员使用任务模板",
  883. "priority": "P1",
  884. "status": "failed",
  885. "screenshots": [
  886. "./screenshots/WEB-021_01_login_page.png",
  887. "./screenshots/WEB-021_02_after_login.png",
  888. "./screenshots/WEB-021_01_task_template.png"
  889. ],
  890. "error": null
  891. },
  892. {
  893. "id": "WEB-022",
  894. "description": "管理员查看任务历史",
  895. "priority": "P0",
  896. "status": "failed",
  897. "screenshots": [
  898. "./screenshots/WEB-022_01_login_page.png",
  899. "./screenshots/WEB-022_02_after_login.png",
  900. "./screenshots/WEB-022_01_task_list.png"
  901. ],
  902. "error": null
  903. },
  904. {
  905. "id": "WEB-023",
  906. "description": "管理员查看任务统计",
  907. "priority": "P0",
  908. "status": "failed",
  909. "screenshots": [
  910. "./screenshots/WEB-023_01_login_page.png",
  911. "./screenshots/WEB-023_02_after_login.png"
  912. ],
  913. "error": null
  914. },
  915. {
  916. "id": "WEB-024",
  917. "description": "管理员查看奖励列表",
  918. "priority": "P0",
  919. "status": "failed",
  920. "screenshots": [
  921. "./screenshots/WEB-024_01_login_page.png",
  922. "./screenshots/WEB-024_02_after_login.png",
  923. "./screenshots/WEB-024_01_reward_list.png"
  924. ],
  925. "error": null
  926. },
  927. {
  928. "id": "WEB-025",
  929. "description": "管理员创建奖励",
  930. "priority": "P0",
  931. "status": "failed",
  932. "screenshots": [
  933. "./screenshots/WEB-025_01_login_page.png",
  934. "./screenshots/WEB-025_02_after_login.png",
  935. "./screenshots/WEB-025_01_reward_list.png",
  936. "./screenshots/WEB-025_02_create_reward_modal.png"
  937. ],
  938. "error": null
  939. },
  940. {
  941. "id": "WEB-026",
  942. "description": "管理员设置奖励分类",
  943. "priority": "P0",
  944. "status": "failed",
  945. "screenshots": [
  946. "./screenshots/WEB-026_01_login_page.png",
  947. "./screenshots/WEB-026_02_after_login.png",
  948. "./screenshots/WEB-026_01_create_reward.png"
  949. ],
  950. "error": null
  951. },
  952. {
  953. "id": "WEB-027",
  954. "description": "管理员编辑奖励",
  955. "priority": "P2",
  956. "status": "failed",
  957. "screenshots": [
  958. "./screenshots/WEB-027_01_login_page.png",
  959. "./screenshots/WEB-027_02_after_login.png",
  960. "./screenshots/WEB-027_01_reward_list.png",
  961. "./screenshots/WEB-027_02_edit_reward_modal.png"
  962. ],
  963. "error": null
  964. },
  965. {
  966. "id": "WEB-028",
  967. "description": "管理员删除奖励",
  968. "priority": "P2",
  969. "status": "failed",
  970. "screenshots": [
  971. "./screenshots/WEB-028_01_login_page.png",
  972. "./screenshots/WEB-028_02_after_login.png",
  973. "./screenshots/WEB-028_01_reward_list.png",
  974. "./screenshots/WEB-028_02_delete_confirm.png"
  975. ],
  976. "error": null
  977. },
  978. {
  979. "id": "WEB-029",
  980. "description": "管理员查看奖励模板",
  981. "priority": "P0",
  982. "status": "failed",
  983. "screenshots": [
  984. "./screenshots/WEB-029_01_login_page.png",
  985. "./screenshots/WEB-029_02_after_login.png",
  986. "./screenshots/WEB-029_01_reward_template.png"
  987. ],
  988. "error": null
  989. },
  990. {
  991. "id": "WEB-030",
  992. "description": "管理员查看奖励兑换进度",
  993. "priority": "P0",
  994. "status": "failed",
  995. "screenshots": [
  996. "./screenshots/WEB-030_01_login_page.png",
  997. "./screenshots/WEB-030_02_after_login.png",
  998. "./screenshots/WEB-030_01_reward_list.png"
  999. ],
  1000. "error": null
  1001. },
  1002. {
  1003. "id": "WEB-031",
  1004. "description": "管理员查看家庭列表",
  1005. "priority": "P0",
  1006. "status": "failed",
  1007. "screenshots": [
  1008. "./screenshots/WEB-031_01_login_page.png",
  1009. "./screenshots/WEB-031_02_after_login.png",
  1010. "./screenshots/WEB-031_01_family_list.png"
  1011. ],
  1012. "error": null
  1013. },
  1014. {
  1015. "id": "WEB-032",
  1016. "description": "管理员查看家庭详情",
  1017. "priority": "P0",
  1018. "status": "failed",
  1019. "screenshots": [
  1020. "./screenshots/WEB-032_01_login_page.png",
  1021. "./screenshots/WEB-032_02_after_login.png",
  1022. "./screenshots/WEB-032_01_family_list.png",
  1023. "./screenshots/WEB-032_02_family_members.png"
  1024. ],
  1025. "error": null
  1026. },
  1027. {
  1028. "id": "WEB-033",
  1029. "description": "管理员编辑家庭信息",
  1030. "priority": "P1",
  1031. "status": "failed",
  1032. "screenshots": [
  1033. "./screenshots/WEB-033_01_login_page.png",
  1034. "./screenshots/WEB-033_02_after_login.png",
  1035. "./screenshots/WEB-033_01_family_list.png",
  1036. "./screenshots/WEB-033_02_edit_family_modal.png"
  1037. ],
  1038. "error": null
  1039. },
  1040. {
  1041. "id": "WEB-034",
  1042. "description": "管理员删除家庭",
  1043. "priority": "P1",
  1044. "status": "failed",
  1045. "screenshots": [
  1046. "./screenshots/WEB-034_01_login_page.png",
  1047. "./screenshots/WEB-034_02_after_login.png",
  1048. "./screenshots/WEB-034_01_family_list.png",
  1049. "./screenshots/WEB-034_02_delete_confirm.png"
  1050. ],
  1051. "error": null
  1052. },
  1053. {
  1054. "id": "WEB-035",
  1055. "description": "管理员查看孩子管理",
  1056. "priority": "P0",
  1057. "status": "failed",
  1058. "screenshots": [
  1059. "./screenshots/WEB-035_01_login_page.png",
  1060. "./screenshots/WEB-035_02_after_login.png",
  1061. "./screenshots/WEB-035_01_child_list.png"
  1062. ],
  1063. "error": null
  1064. },
  1065. {
  1066. "id": "WEB-036",
  1067. "description": "管理员查看积分管理",
  1068. "priority": "P0",
  1069. "status": "failed",
  1070. "screenshots": [
  1071. "./screenshots/WEB-036_01_login_page.png",
  1072. "./screenshots/WEB-036_02_after_login.png",
  1073. "./screenshots/WEB-036_01_points_list.png"
  1074. ],
  1075. "error": null
  1076. },
  1077. {
  1078. "id": "WEB-037",
  1079. "description": "管理员系统设置入口",
  1080. "priority": "P0",
  1081. "status": "failed",
  1082. "screenshots": [
  1083. "./screenshots/WEB-037_01_login_page.png",
  1084. "./screenshots/WEB-037_02_after_login.png",
  1085. "./screenshots/WEB-037_01_system_menu.png"
  1086. ],
  1087. "error": null
  1088. },
  1089. {
  1090. "id": "WEB-038",
  1091. "description": "管理员操作日志查看",
  1092. "priority": "P1",
  1093. "status": "failed",
  1094. "screenshots": [
  1095. "./screenshots/WEB-038_01_login_page.png",
  1096. "./screenshots/WEB-038_02_after_login.png",
  1097. "./screenshots/WEB-038_01_operation_log.png"
  1098. ],
  1099. "error": null
  1100. },
  1101. {
  1102. "id": "WEB-039",
  1103. "description": "管理员套餐审核",
  1104. "priority": "P1",
  1105. "status": "failed",
  1106. "screenshots": [
  1107. "./screenshots/WEB-039_01_login_page.png",
  1108. "./screenshots/WEB-039_02_after_login.png",
  1109. "./screenshots/WEB-039_01_package_review.png"
  1110. ],
  1111. "error": null
  1112. },
  1113. {
  1114. "id": "WEB-040",
  1115. "description": "指导师登录Web后台",
  1116. "priority": "P0",
  1117. "status": "failed",
  1118. "screenshots": [
  1119. "./screenshots/WEB-040_01_login_page.png",
  1120. "./screenshots/WEB-040_02_form_filled.png",
  1121. "./screenshots/WEB-040_03_after_login.png"
  1122. ],
  1123. "error": null
  1124. },
  1125. {
  1126. "id": "WEB-041",
  1127. "description": "指导师查看我的家庭",
  1128. "priority": "P0",
  1129. "status": "failed",
  1130. "screenshots": [
  1131. "./screenshots/WEB-041_01_teacher_login_page.png",
  1132. "./screenshots/WEB-041_02_teacher_after_login.png",
  1133. "./screenshots/WEB-041_01_my_families.png"
  1134. ],
  1135. "error": null
  1136. },
  1137. {
  1138. "id": "WEB-042",
  1139. "description": "指导师查看家庭任务详情",
  1140. "priority": "P0",
  1141. "status": "failed",
  1142. "screenshots": [
  1143. "./screenshots/WEB-042_01_teacher_login_page.png",
  1144. "./screenshots/WEB-042_02_teacher_after_login.png",
  1145. "./screenshots/WEB-042_01_family_list.png",
  1146. "./screenshots/WEB-042_02_task_detail.png"
  1147. ],
  1148. "error": null
  1149. },
  1150. {
  1151. "id": "WEB-043",
  1152. "description": "指导师审核任务",
  1153. "priority": "P0",
  1154. "status": "failed",
  1155. "screenshots": [
  1156. "./screenshots/WEB-043_01_teacher_login_page.png",
  1157. "./screenshots/WEB-043_02_teacher_after_login.png",
  1158. "./screenshots/WEB-043_01_pending_tasks.png"
  1159. ],
  1160. "error": null
  1161. },
  1162. {
  1163. "id": "WEB-044",
  1164. "description": "指导师任务审核通过",
  1165. "priority": "P0",
  1166. "status": "failed",
  1167. "screenshots": [
  1168. "./screenshots/WEB-044_01_teacher_login_page.png",
  1169. "./screenshots/WEB-044_02_teacher_after_login.png",
  1170. "./screenshots/WEB-044_01_pending_tasks.png",
  1171. "./screenshots/WEB-044_02_approve_confirm.png"
  1172. ],
  1173. "error": null
  1174. },
  1175. {
  1176. "id": "WEB-045",
  1177. "description": "指导师任务审核拒绝",
  1178. "priority": "P0",
  1179. "status": "failed",
  1180. "screenshots": [
  1181. "./screenshots/WEB-045_01_teacher_login_page.png",
  1182. "./screenshots/WEB-045_02_teacher_after_login.png",
  1183. "./screenshots/WEB-045_01_pending_tasks.png",
  1184. "./screenshots/WEB-045_02_reject_confirm.png"
  1185. ],
  1186. "error": null
  1187. },
  1188. {
  1189. "id": "WEB-046",
  1190. "description": "管理员登出",
  1191. "priority": "P0",
  1192. "status": "failed",
  1193. "screenshots": [
  1194. "./screenshots/WEB-046_01_login_page.png",
  1195. "./screenshots/WEB-046_02_after_login.png",
  1196. "./screenshots/WEB-046_01_logout_confirm.png"
  1197. ],
  1198. "error": null
  1199. }
  1200. ]
  1201. }