test-report-1777262956208.json 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316
  1. {
  2. "timestamp": "2026-04-27T04:09:16.208Z",
  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": 51,
  20. "passed": 6,
  21. "failed": 45
  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-27T01:58:09.538Z"
  42. },
  43. "response": {
  44. "status": 200,
  45. "statusText": "OK",
  46. "data": {
  47. "code": 200,
  48. "message": "success",
  49. "data": {}
  50. },
  51. "duration": 1,
  52. "timestamp": "2026-04-27T01:58:09.539Z"
  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-27T01:58:09.539Z"
  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-27T01:58:09.539Z"
  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-27"
  104. },
  105. "timestamp": "2026-04-27T01:58:09.539Z"
  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-27T01:58:09.539Z"
  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-27T01:58:09.540Z",
  134. "proof": {
  135. "type": "photo",
  136. "url": "https://example.com/photo.jpg",
  137. "description": "已完成作业拍照"
  138. }
  139. },
  140. "timestamp": "2026-04-27T01:58:09.540Z"
  141. },
  142. "response": {
  143. "status": 200,
  144. "statusText": "OK",
  145. "data": {
  146. "code": 200,
  147. "message": "success",
  148. "data": {}
  149. },
  150. "duration": 0,
  151. "timestamp": "2026-04-27T01:58:09.540Z"
  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-27T01:58:09.540Z"
  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-27T01:58:09.540Z"
  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-27T01:58:09.540Z"
  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-27T01:58:09.540Z"
  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-27T01:58:09.541Z"
  235. },
  236. "response": {
  237. "status": 200,
  238. "statusText": "OK",
  239. "data": {
  240. "code": 200,
  241. "message": "success",
  242. "data": {}
  243. },
  244. "duration": 0,
  245. "timestamp": "2026-04-27T01:58:09.541Z"
  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-27T01:58:09.541Z"
  266. },
  267. "response": {
  268. "status": 200,
  269. "statusText": "OK",
  270. "data": {
  271. "code": 200,
  272. "message": "success",
  273. "data": {}
  274. },
  275. "duration": 0,
  276. "timestamp": "2026-04-27T01:58:09.541Z"
  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-27T01:58:09.541Z"
  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-27T01:58:09.541Z"
  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-27T01:58:09.541Z"
  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-27T01:58:09.541Z"
  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-27T01:58:09.542Z"
  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-27T01:58:09.542Z"
  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-27T01:58:09.542Z"
  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-27T01:58:09.542Z"
  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-27T01:58:09.542Z"
  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-27T01:58:09.542Z"
  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-27T01:58:09.542Z"
  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-27T01:58:09.542Z"
  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-27T01:58:09.543Z"
  477. },
  478. "response": {
  479. "status": 200,
  480. "statusText": "OK",
  481. "data": {
  482. "code": 200,
  483. "message": "success",
  484. "data": {}
  485. },
  486. "duration": 0,
  487. "timestamp": "2026-04-27T01:58:09.543Z"
  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-27T01:58:09.543Z"
  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-27T01:58:09.543Z"
  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-27T01:58:09.544Z"
  543. },
  544. "response": {
  545. "status": 200,
  546. "statusText": "OK",
  547. "data": {
  548. "code": 200,
  549. "message": "success",
  550. "data": {}
  551. },
  552. "duration": 0,
  553. "timestamp": "2026-04-27T01:58:09.544Z"
  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-27T01:58:09.544Z"
  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-27T01:58:09.544Z"
  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-27T01:58:09.544Z"
  609. },
  610. "response": {
  611. "status": 200,
  612. "statusText": "OK",
  613. "data": {
  614. "code": 200,
  615. "message": "success",
  616. "data": {}
  617. },
  618. "duration": 0,
  619. "timestamp": "2026-04-27T01:58:09.544Z"
  620. },
  621. "error": null
  622. }
  623. ],
  624. "webTests": [
  625. {
  626. "id": "WEB-001",
  627. "description": "管理员登录Web后台",
  628. "priority": "P0",
  629. "status": "passed",
  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_form_filled.png",
  645. "./screenshots/WEB-002_03_after_login.png",
  646. "./screenshots/WEB-002_01_user_menu.png",
  647. "./screenshots/WEB-002_02_user_list.png"
  648. ],
  649. "error": null
  650. },
  651. {
  652. "id": "WEB-003",
  653. "description": "管理员查看任务统计",
  654. "priority": "P0",
  655. "status": "failed",
  656. "screenshots": [
  657. "./screenshots/WEB-003_01_login_page.png",
  658. "./screenshots/WEB-003_02_form_filled.png",
  659. "./screenshots/WEB-003_03_after_login.png",
  660. "./screenshots/WEB-003_01_task_menu.png",
  661. "./screenshots/WEB-003_02_task_stats.png"
  662. ],
  663. "error": null
  664. },
  665. {
  666. "id": "WEB-004",
  667. "description": "指导师登录Web后台",
  668. "priority": "P0",
  669. "status": "failed",
  670. "screenshots": [
  671. "./screenshots/WEB-004_01_teacher_login_page.png",
  672. "./screenshots/WEB-004_02_teacher_form_filled.png",
  673. "./screenshots/WEB-004_03_teacher_after_login.png"
  674. ],
  675. "error": null
  676. },
  677. {
  678. "id": "WEB-005",
  679. "description": "指导师查看分配的家庭",
  680. "priority": "P0",
  681. "status": "failed",
  682. "screenshots": [
  683. "./screenshots/WEB-005_01_teacher_login_page.png",
  684. "./screenshots/WEB-005_02_teacher_form_filled.png",
  685. "./screenshots/WEB-005_03_teacher_after_login.png",
  686. "./screenshots/WEB-005_01_my_families.png"
  687. ],
  688. "error": null
  689. },
  690. {
  691. "id": "WEB-006",
  692. "description": "管理员审核指导师注册",
  693. "priority": "P1",
  694. "status": "passed",
  695. "screenshots": [
  696. "./screenshots/WEB-006_01_login_page.png",
  697. "./screenshots/WEB-006_02_form_filled.png",
  698. "./screenshots/WEB-006_03_after_login.png",
  699. "./screenshots/WEB-006_01_guide_menu.png",
  700. "./screenshots/WEB-006_02_pending_guides.png",
  701. "./screenshots/WEB-006_03_approved.png"
  702. ],
  703. "error": null
  704. },
  705. {
  706. "id": "WEB-007",
  707. "description": "管理员查看街道统计",
  708. "priority": "P1",
  709. "status": "passed",
  710. "screenshots": [
  711. "./screenshots/WEB-007_01_login_page.png",
  712. "./screenshots/WEB-007_02_form_filled.png",
  713. "./screenshots/WEB-007_03_after_login.png",
  714. "./screenshots/WEB-007_01_stats_menu.png",
  715. "./screenshots/WEB-007_02_street_stats.png"
  716. ],
  717. "error": null
  718. },
  719. {
  720. "id": "WEB-008",
  721. "description": "指导师审核家庭任务",
  722. "priority": "P0",
  723. "status": "passed",
  724. "screenshots": [
  725. "./screenshots/WEB-008_01_teacher_login_page.png",
  726. "./screenshots/WEB-008_02_teacher_form_filled.png",
  727. "./screenshots/WEB-008_03_teacher_after_login.png",
  728. "./screenshots/WEB-008_01_pending_tasks.png",
  729. "./screenshots/WEB-008_02_approved.png"
  730. ],
  731. "error": null
  732. },
  733. {
  734. "id": "WEB-009",
  735. "description": "指导师查看家庭任务详情",
  736. "priority": "P1",
  737. "status": "passed",
  738. "screenshots": [
  739. "./screenshots/WEB-009_01_teacher_login_page.png",
  740. "./screenshots/WEB-009_02_teacher_form_filled.png",
  741. "./screenshots/WEB-009_03_teacher_after_login.png",
  742. "./screenshots/WEB-009_01_family_list.png",
  743. "./screenshots/WEB-009_02_family_tasks.png"
  744. ],
  745. "error": null
  746. },
  747. {
  748. "id": "WEB-010",
  749. "description": "管理员查看用户列表",
  750. "priority": "P0",
  751. "status": "failed",
  752. "screenshots": [
  753. "./screenshots/WEB-010_01_login_page.png",
  754. "./screenshots/WEB-010_02_form_filled.png",
  755. "./screenshots/WEB-010_03_after_login.png",
  756. "./screenshots/WEB-010_01_user_menu.png",
  757. "./screenshots/WEB-010_02_user_list.png"
  758. ],
  759. "error": null
  760. },
  761. {
  762. "id": "WEB-011",
  763. "description": "管理员查看用户详情",
  764. "priority": "P0",
  765. "status": "failed",
  766. "screenshots": [
  767. "./screenshots/WEB-011_01_login_page.png",
  768. "./screenshots/WEB-011_02_form_filled.png",
  769. "./screenshots/WEB-011_03_after_login.png",
  770. "./screenshots/WEB-011_01_user_list.png",
  771. "./screenshots/WEB-011_02_user_detail.png"
  772. ],
  773. "error": null
  774. },
  775. {
  776. "id": "WEB-012",
  777. "description": "管理员编辑用户信息",
  778. "priority": "P0",
  779. "status": "failed",
  780. "screenshots": [
  781. "./screenshots/WEB-012_01_login_page.png",
  782. "./screenshots/WEB-012_02_form_filled.png",
  783. "./screenshots/WEB-012_03_after_login.png",
  784. "./screenshots/WEB-012_01_user_list.png",
  785. "./screenshots/WEB-012_02_edit_modal.png"
  786. ],
  787. "error": null
  788. },
  789. {
  790. "id": "WEB-013",
  791. "description": "管理员停用孩子账号",
  792. "priority": "P0",
  793. "status": "failed",
  794. "screenshots": [
  795. "./screenshots/WEB-013_01_login_page.png",
  796. "./screenshots/WEB-013_02_form_filled.png",
  797. "./screenshots/WEB-013_03_after_login.png",
  798. "./screenshots/WEB-013_01_user_list.png"
  799. ],
  800. "error": null
  801. },
  802. {
  803. "id": "WEB-014",
  804. "description": "管理员启用孩子账号",
  805. "priority": "P0",
  806. "status": "failed",
  807. "screenshots": [
  808. "./screenshots/WEB-014_01_login_page.png",
  809. "./screenshots/WEB-014_02_form_filled.png",
  810. "./screenshots/WEB-014_03_after_login.png",
  811. "./screenshots/WEB-014_01_user_list.png"
  812. ],
  813. "error": null
  814. },
  815. {
  816. "id": "WEB-015",
  817. "description": "管理员创建任务",
  818. "priority": "P0",
  819. "status": "failed",
  820. "screenshots": [
  821. "./screenshots/WEB-015_01_login_page.png",
  822. "./screenshots/WEB-015_02_form_filled.png",
  823. "./screenshots/WEB-015_03_after_login.png",
  824. "./screenshots/WEB-015_01_task_list.png",
  825. "./screenshots/WEB-015_02_create_task_modal.png"
  826. ],
  827. "error": null
  828. },
  829. {
  830. "id": "WEB-016",
  831. "description": "管理员设置任务分类",
  832. "priority": "P0",
  833. "status": "failed",
  834. "screenshots": [
  835. "./screenshots/WEB-016_01_login_page.png",
  836. "./screenshots/WEB-016_02_form_filled.png",
  837. "./screenshots/WEB-016_03_after_login.png",
  838. "./screenshots/WEB-016_01_create_task.png"
  839. ],
  840. "error": null
  841. },
  842. {
  843. "id": "WEB-017",
  844. "description": "管理员设置任务积分",
  845. "priority": "P0",
  846. "status": "failed",
  847. "screenshots": [
  848. "./screenshots/WEB-017_01_login_page.png",
  849. "./screenshots/WEB-017_02_form_filled.png",
  850. "./screenshots/WEB-017_03_after_login.png",
  851. "./screenshots/WEB-017_01_create_task.png"
  852. ],
  853. "error": null
  854. },
  855. {
  856. "id": "WEB-018",
  857. "description": "管理员设置任务截止时间",
  858. "priority": "P0",
  859. "status": "failed",
  860. "screenshots": [
  861. "./screenshots/WEB-018_01_login_page.png",
  862. "./screenshots/WEB-018_02_form_filled.png",
  863. "./screenshots/WEB-018_03_after_login.png",
  864. "./screenshots/WEB-018_01_create_task.png"
  865. ],
  866. "error": null
  867. },
  868. {
  869. "id": "WEB-019",
  870. "description": "管理员编辑任务",
  871. "priority": "P0",
  872. "status": "failed",
  873. "screenshots": [
  874. "./screenshots/WEB-019_01_login_page.png",
  875. "./screenshots/WEB-019_02_form_filled.png",
  876. "./screenshots/WEB-019_03_after_login.png",
  877. "./screenshots/WEB-019_01_task_list.png",
  878. "./screenshots/WEB-019_02_edit_task_modal.png"
  879. ],
  880. "error": null
  881. },
  882. {
  883. "id": "WEB-020",
  884. "description": "管理员删除任务",
  885. "priority": "P0",
  886. "status": "failed",
  887. "screenshots": [
  888. "./screenshots/WEB-020_01_login_page.png",
  889. "./screenshots/WEB-020_02_form_filled.png",
  890. "./screenshots/WEB-020_03_after_login.png",
  891. "./screenshots/WEB-020_01_task_list.png",
  892. "./screenshots/WEB-020_02_delete_confirm.png"
  893. ],
  894. "error": null
  895. },
  896. {
  897. "id": "WEB-021",
  898. "description": "管理员使用任务模板",
  899. "priority": "P1",
  900. "status": "failed",
  901. "screenshots": [
  902. "./screenshots/WEB-021_01_login_page.png",
  903. "./screenshots/WEB-021_02_form_filled.png",
  904. "./screenshots/WEB-021_03_after_login.png",
  905. "./screenshots/WEB-021_01_task_template.png"
  906. ],
  907. "error": null
  908. },
  909. {
  910. "id": "WEB-022",
  911. "description": "管理员查看任务历史",
  912. "priority": "P0",
  913. "status": "failed",
  914. "screenshots": [
  915. "./screenshots/WEB-022_01_login_page.png",
  916. "./screenshots/WEB-022_02_form_filled.png",
  917. "./screenshots/WEB-022_03_after_login.png",
  918. "./screenshots/WEB-022_01_task_list.png"
  919. ],
  920. "error": null
  921. },
  922. {
  923. "id": "WEB-023",
  924. "description": "管理员查看任务统计",
  925. "priority": "P0",
  926. "status": "failed",
  927. "screenshots": [
  928. "./screenshots/WEB-023_01_login_page.png",
  929. "./screenshots/WEB-023_02_form_filled.png",
  930. "./screenshots/WEB-023_03_after_login.png"
  931. ],
  932. "error": null
  933. },
  934. {
  935. "id": "WEB-024",
  936. "description": "管理员查看奖励列表",
  937. "priority": "P0",
  938. "status": "failed",
  939. "screenshots": [
  940. "./screenshots/WEB-024_01_login_page.png",
  941. "./screenshots/WEB-024_02_form_filled.png",
  942. "./screenshots/WEB-024_03_after_login.png",
  943. "./screenshots/WEB-024_01_reward_list.png"
  944. ],
  945. "error": null
  946. },
  947. {
  948. "id": "WEB-025",
  949. "description": "管理员创建奖励",
  950. "priority": "P0",
  951. "status": "failed",
  952. "screenshots": [
  953. "./screenshots/WEB-025_01_login_page.png",
  954. "./screenshots/WEB-025_02_form_filled.png",
  955. "./screenshots/WEB-025_03_after_login.png",
  956. "./screenshots/WEB-025_01_reward_list.png",
  957. "./screenshots/WEB-025_02_create_reward_modal.png"
  958. ],
  959. "error": null
  960. },
  961. {
  962. "id": "WEB-026",
  963. "description": "管理员设置奖励分类",
  964. "priority": "P0",
  965. "status": "failed",
  966. "screenshots": [
  967. "./screenshots/WEB-026_01_login_page.png",
  968. "./screenshots/WEB-026_02_form_filled.png",
  969. "./screenshots/WEB-026_03_after_login.png",
  970. "./screenshots/WEB-026_01_create_reward.png"
  971. ],
  972. "error": null
  973. },
  974. {
  975. "id": "WEB-027",
  976. "description": "管理员编辑奖励",
  977. "priority": "P2",
  978. "status": "failed",
  979. "screenshots": [
  980. "./screenshots/WEB-027_01_login_page.png",
  981. "./screenshots/WEB-027_02_form_filled.png",
  982. "./screenshots/WEB-027_03_after_login.png",
  983. "./screenshots/WEB-027_01_reward_list.png",
  984. "./screenshots/WEB-027_02_edit_reward_modal.png"
  985. ],
  986. "error": null
  987. },
  988. {
  989. "id": "WEB-028",
  990. "description": "管理员删除奖励",
  991. "priority": "P2",
  992. "status": "failed",
  993. "screenshots": [
  994. "./screenshots/WEB-028_01_login_page.png",
  995. "./screenshots/WEB-028_02_form_filled.png",
  996. "./screenshots/WEB-028_03_after_login.png",
  997. "./screenshots/WEB-028_01_reward_list.png",
  998. "./screenshots/WEB-028_02_delete_confirm.png"
  999. ],
  1000. "error": null
  1001. },
  1002. {
  1003. "id": "WEB-029",
  1004. "description": "管理员查看奖励模板",
  1005. "priority": "P0",
  1006. "status": "failed",
  1007. "screenshots": [
  1008. "./screenshots/WEB-029_01_login_page.png",
  1009. "./screenshots/WEB-029_02_form_filled.png",
  1010. "./screenshots/WEB-029_03_after_login.png",
  1011. "./screenshots/WEB-029_01_reward_template.png"
  1012. ],
  1013. "error": null
  1014. },
  1015. {
  1016. "id": "WEB-030",
  1017. "description": "管理员查看奖励兑换进度",
  1018. "priority": "P0",
  1019. "status": "failed",
  1020. "screenshots": [
  1021. "./screenshots/WEB-030_01_login_page.png",
  1022. "./screenshots/WEB-030_02_form_filled.png",
  1023. "./screenshots/WEB-030_03_after_login.png",
  1024. "./screenshots/WEB-030_01_reward_list.png"
  1025. ],
  1026. "error": null
  1027. },
  1028. {
  1029. "id": "WEB-031",
  1030. "description": "管理员查看家庭列表",
  1031. "priority": "P0",
  1032. "status": "failed",
  1033. "screenshots": [
  1034. "./screenshots/WEB-031_01_login_page.png",
  1035. "./screenshots/WEB-031_02_form_filled.png",
  1036. "./screenshots/WEB-031_03_after_login.png",
  1037. "./screenshots/WEB-031_01_family_list.png"
  1038. ],
  1039. "error": null
  1040. },
  1041. {
  1042. "id": "WEB-032",
  1043. "description": "管理员查看家庭详情",
  1044. "priority": "P0",
  1045. "status": "failed",
  1046. "screenshots": [
  1047. "./screenshots/WEB-032_01_login_page.png",
  1048. "./screenshots/WEB-032_02_form_filled.png",
  1049. "./screenshots/WEB-032_03_after_login.png",
  1050. "./screenshots/WEB-032_01_family_list.png",
  1051. "./screenshots/WEB-032_02_family_members.png"
  1052. ],
  1053. "error": null
  1054. },
  1055. {
  1056. "id": "WEB-033",
  1057. "description": "管理员编辑家庭信息",
  1058. "priority": "P1",
  1059. "status": "failed",
  1060. "screenshots": [
  1061. "./screenshots/WEB-033_01_login_page.png",
  1062. "./screenshots/WEB-033_02_form_filled.png",
  1063. "./screenshots/WEB-033_03_after_login.png",
  1064. "./screenshots/WEB-033_01_family_list.png",
  1065. "./screenshots/WEB-033_02_edit_family_modal.png"
  1066. ],
  1067. "error": null
  1068. },
  1069. {
  1070. "id": "WEB-034",
  1071. "description": "管理员删除家庭",
  1072. "priority": "P1",
  1073. "status": "failed",
  1074. "screenshots": [
  1075. "./screenshots/WEB-034_01_login_page.png",
  1076. "./screenshots/WEB-034_02_form_filled.png",
  1077. "./screenshots/WEB-034_03_after_login.png",
  1078. "./screenshots/WEB-034_01_family_list.png",
  1079. "./screenshots/WEB-034_02_delete_confirm.png"
  1080. ],
  1081. "error": null
  1082. },
  1083. {
  1084. "id": "WEB-035",
  1085. "description": "管理员查看孩子管理",
  1086. "priority": "P0",
  1087. "status": "failed",
  1088. "screenshots": [
  1089. "./screenshots/WEB-035_01_login_page.png",
  1090. "./screenshots/WEB-035_02_form_filled.png",
  1091. "./screenshots/WEB-035_03_after_login.png",
  1092. "./screenshots/WEB-035_01_child_list.png"
  1093. ],
  1094. "error": null
  1095. },
  1096. {
  1097. "id": "WEB-036",
  1098. "description": "管理员查看积分管理",
  1099. "priority": "P0",
  1100. "status": "failed",
  1101. "screenshots": [
  1102. "./screenshots/WEB-036_01_login_page.png",
  1103. "./screenshots/WEB-036_02_form_filled.png",
  1104. "./screenshots/WEB-036_03_after_login.png",
  1105. "./screenshots/WEB-036_01_points_list.png"
  1106. ],
  1107. "error": null
  1108. },
  1109. {
  1110. "id": "WEB-037",
  1111. "description": "管理员系统设置入口",
  1112. "priority": "P0",
  1113. "status": "failed",
  1114. "screenshots": [
  1115. "./screenshots/WEB-037_01_login_page.png",
  1116. "./screenshots/WEB-037_02_form_filled.png",
  1117. "./screenshots/WEB-037_03_after_login.png",
  1118. "./screenshots/WEB-037_01_system_menu.png"
  1119. ],
  1120. "error": null
  1121. },
  1122. {
  1123. "id": "WEB-038",
  1124. "description": "管理员操作日志查看",
  1125. "priority": "P1",
  1126. "status": "failed",
  1127. "screenshots": [
  1128. "./screenshots/WEB-038_01_login_page.png",
  1129. "./screenshots/WEB-038_02_form_filled.png",
  1130. "./screenshots/WEB-038_03_after_login.png",
  1131. "./screenshots/WEB-038_01_operation_log.png"
  1132. ],
  1133. "error": null
  1134. },
  1135. {
  1136. "id": "WEB-039",
  1137. "description": "管理员套餐审核",
  1138. "priority": "P1",
  1139. "status": "failed",
  1140. "screenshots": [
  1141. "./screenshots/WEB-039_01_login_page.png",
  1142. "./screenshots/WEB-039_02_form_filled.png",
  1143. "./screenshots/WEB-039_03_after_login.png",
  1144. "./screenshots/WEB-039_01_package_review.png"
  1145. ],
  1146. "error": null
  1147. },
  1148. {
  1149. "id": "WEB-040",
  1150. "description": "指导师登录Web后台",
  1151. "priority": "P0",
  1152. "status": "failed",
  1153. "screenshots": [
  1154. "./screenshots/WEB-040_01_login_page.png",
  1155. "./screenshots/WEB-040_02_form_filled.png",
  1156. "./screenshots/WEB-040_03_after_login.png"
  1157. ],
  1158. "error": null
  1159. },
  1160. {
  1161. "id": "WEB-041",
  1162. "description": "指导师查看我的家庭",
  1163. "priority": "P0",
  1164. "status": "failed",
  1165. "screenshots": [
  1166. "./screenshots/WEB-041_01_teacher_login_page.png",
  1167. "./screenshots/WEB-041_02_teacher_form_filled.png",
  1168. "./screenshots/WEB-041_03_teacher_after_login.png",
  1169. "./screenshots/WEB-041_01_my_families.png"
  1170. ],
  1171. "error": null
  1172. },
  1173. {
  1174. "id": "WEB-042",
  1175. "description": "指导师查看家庭任务详情",
  1176. "priority": "P0",
  1177. "status": "failed",
  1178. "screenshots": [
  1179. "./screenshots/WEB-042_01_teacher_login_page.png",
  1180. "./screenshots/WEB-042_02_teacher_form_filled.png",
  1181. "./screenshots/WEB-042_03_teacher_after_login.png",
  1182. "./screenshots/WEB-042_01_family_list.png",
  1183. "./screenshots/WEB-042_02_task_detail.png"
  1184. ],
  1185. "error": null
  1186. },
  1187. {
  1188. "id": "WEB-043",
  1189. "description": "指导师审核任务",
  1190. "priority": "P0",
  1191. "status": "failed",
  1192. "screenshots": [
  1193. "./screenshots/WEB-043_01_teacher_login_page.png",
  1194. "./screenshots/WEB-043_02_teacher_form_filled.png",
  1195. "./screenshots/WEB-043_03_teacher_after_login.png",
  1196. "./screenshots/WEB-043_01_pending_tasks.png"
  1197. ],
  1198. "error": null
  1199. },
  1200. {
  1201. "id": "WEB-044",
  1202. "description": "指导师任务审核通过",
  1203. "priority": "P0",
  1204. "status": "failed",
  1205. "screenshots": [
  1206. "./screenshots/WEB-044_01_teacher_login_page.png",
  1207. "./screenshots/WEB-044_02_teacher_form_filled.png",
  1208. "./screenshots/WEB-044_03_teacher_after_login.png",
  1209. "./screenshots/WEB-044_01_pending_tasks.png",
  1210. "./screenshots/WEB-044_02_approve_confirm.png"
  1211. ],
  1212. "error": null
  1213. },
  1214. {
  1215. "id": "WEB-045",
  1216. "description": "指导师任务审核拒绝",
  1217. "priority": "P0",
  1218. "status": "failed",
  1219. "screenshots": [
  1220. "./screenshots/WEB-045_01_teacher_login_page.png",
  1221. "./screenshots/WEB-045_02_teacher_form_filled.png",
  1222. "./screenshots/WEB-045_03_teacher_after_login.png",
  1223. "./screenshots/WEB-045_01_pending_tasks.png",
  1224. "./screenshots/WEB-045_02_reject_confirm.png"
  1225. ],
  1226. "error": null
  1227. },
  1228. {
  1229. "id": "WEB-046",
  1230. "description": "管理员登出",
  1231. "priority": "P0",
  1232. "status": "passed",
  1233. "screenshots": [
  1234. "./screenshots/WEB-046_01_login_page.png",
  1235. "./screenshots/WEB-046_02_form_filled.png",
  1236. "./screenshots/WEB-046_03_after_login.png",
  1237. "./screenshots/WEB-046_01_logout_confirm.png"
  1238. ],
  1239. "error": null
  1240. },
  1241. {
  1242. "id": "WEB-047",
  1243. "description": "SQL注入测试",
  1244. "priority": "P0",
  1245. "status": "failed",
  1246. "screenshots": [
  1247. "./screenshots/WEB-047_01_login_page.png",
  1248. "./screenshots/WEB-047_02_form_filled.png",
  1249. "./screenshots/WEB-047_03_after_login.png",
  1250. "./screenshots/WEB-047_01_user_list.png",
  1251. "./screenshots/WEB-047_02_sql_injection_input.png"
  1252. ],
  1253. "error": {}
  1254. },
  1255. {
  1256. "id": "WEB-048",
  1257. "description": "XSS测试",
  1258. "priority": "P0",
  1259. "status": "failed",
  1260. "screenshots": [
  1261. "./screenshots/WEB-048_01_login_page.png",
  1262. "./screenshots/WEB-048_02_form_filled.png",
  1263. "./screenshots/WEB-048_03_after_login.png",
  1264. "./screenshots/WEB-048_01_user_list.png",
  1265. "./screenshots/WEB-048_02_edit_modal.png",
  1266. "./screenshots/WEB-048_03_xss_filled.png"
  1267. ],
  1268. "error": {}
  1269. },
  1270. {
  1271. "id": "WEB-049",
  1272. "description": "无效手机号测试",
  1273. "priority": "P0",
  1274. "status": "failed",
  1275. "screenshots": [
  1276. "./screenshots/WEB-049_01_login_page.png",
  1277. "./screenshots/WEB-049_02_form_filled.png",
  1278. "./screenshots/WEB-049_03_after_login.png",
  1279. "./screenshots/WEB-049_01_user_list.png",
  1280. "./screenshots/WEB-049_02_edit_modal.png",
  1281. "./screenshots/WEB-049_03_invalid_phone.png"
  1282. ],
  1283. "error": {}
  1284. },
  1285. {
  1286. "id": "WEB-050",
  1287. "description": "无效身份证测试",
  1288. "priority": "P0",
  1289. "status": "failed",
  1290. "screenshots": [
  1291. "./screenshots/WEB-050_01_login_page.png",
  1292. "./screenshots/WEB-050_02_form_filled.png",
  1293. "./screenshots/WEB-050_03_after_login.png",
  1294. "./screenshots/WEB-050_01_user_list.png",
  1295. "./screenshots/WEB-050_02_edit_modal.png",
  1296. "./screenshots/WEB-050_03_invalid_idcard.png"
  1297. ],
  1298. "error": {}
  1299. },
  1300. {
  1301. "id": "WEB-051",
  1302. "description": "积分超范围测试",
  1303. "priority": "P0",
  1304. "status": "failed",
  1305. "screenshots": [
  1306. "./screenshots/WEB-051_01_login_page.png",
  1307. "./screenshots/WEB-051_02_form_filled.png",
  1308. "./screenshots/WEB-051_03_after_login.png",
  1309. "./screenshots/WEB-051_01_task_list.png",
  1310. "./screenshots/WEB-051_02_create_task_modal.png",
  1311. "./screenshots/WEB-051_03_invalid_points.png"
  1312. ],
  1313. "error": {}
  1314. }
  1315. ]
  1316. }