ClassPad 真机测试结果

每一条都在真实平板上执行,并回到设备上核对结果 —— 不看接口返回,不看「已下发」。

测试时间:2026-10-05 10:32:56+0800 · 结论:全部通过
测试设备 厂商自有测试机,序列号 T69A2026080025
平板端版本 4.2.2.0 (634)
被测安装包 SHA-256 9ce13d7bc3aa709a9b33b19e0ecf7e4ec1eea48ab743b8e2e717d255d15f0542
与官网下载的安装包比对这一串,即可确认「测的就是发的」。
服务端 https://classpad.owly.cn
49通过
0不通过
1未验到
50合计
关于「未验到」:既不算通过,也不算不通过。算通过是自欺;算不通过等于把环境限制说成产品缺陷。下表中每一条「未验到」都写明了受限原因与补验条件。
单独复验某一项:改动只涉及一个功能时,不必跑完整轮 —— 在测试机上执行 python3 run.py --only <项名里的关键词>,例如 --only 举手、--only 推课件,只跑名字里含这个词的判据,前置由判据自己建好。

功能性测试(模拟真人点界面)

测试项测试步骤(机器实际执行的动作)结论截图(平板 / 后台)
学生告知页逐条显示学校能看到的每一项学生告知页:服务端恒声明的每一条,平板上都真的显示出来,「看不到什么」一句与实际一致(604 起)。通过 24 秒平板后台
指令面板发完,下发记录不刷新也会自己变成「成功」在指令面板发一条指令、不刷新页面,下发记录要自己从「未回执」变成「成功」。通过 25 秒平板后台
设备详情页的客户端版本等于平板上实际在跑的版本设备详情页「客户端版本」卡片显示的,要等于平板上实际在跑的版本。通过 4 秒平板后台
指令面板不显示本设备形态做不到的按钮指令面板:这台设备的形态做不到的指令不显示按钮,做得到的照常显示。通过 4 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame 'B11065D6110A6D4F1F35B2518D8530BA'.
装机页 8 寸与 10 寸的二维码里,下载地址与校验和各对各的装机页按机型出二维码:8 寸与 10 寸的码里,下载地址与签名校验和各对各的。通过 14 秒平板后台
每个下载源都能跨源读到且内容一致每个候选下载源都要能被控制台跨源读到,且内容一致。通过 1 秒平板后台
点「选择安装包」真的唤起文件选择点「选择安装包」要真的唤起文件选择。通过 5 秒平板后台
界面上点「启动应用」设备真的把应用拉到前台在设备详情页选一个应用点发送,设备上那个应用要真的到前台。通过 16 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame '4EA26BA89BECDBA682E2C6B6DF05495E'.
界面上点「固定到应用」设备真的被固定住在设备详情页点「固定到应用」,设备要真的进入锁定任务且前台是那个应用。通过 15 秒平板后台
界面上点「解除固定」设备真的解开点「解除固定」,设备要真的退出锁定任务。依赖上一条先固定住。通过 11 秒平板后台
老师点「上课」+「锁定全班」学生平板真的锁上老师点「上课」→「锁定全班」,学生平板要真的锁上。通过 15 秒平板后台
点「解除锁定」学生平板真的解开点「解除锁定」,学生平板要真的解开。依赖上一条先锁上。通过 8 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame '79AF5DAC84FB93CF3CCFCCD9D6B90608'.
点「全班截屏」真的拿到学生屏幕图点「全班截屏」,服务端要真的多出学生的屏幕图。通过 68 秒平板后台
老师点「推课件到全班」学生平板真的打开了课件老师点「推课件到全班」,学生平板要真的把课件打开在屏幕上。通过 33 秒平板后台
老师出的随堂题真的弹到学生平板上老师在界面上出一道随堂题,学生平板上要真的弹出题目并能选。通过 33 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame '19008A10535D3475FDEEEFA79F08E624'.
学生答题后老师界面上的统计真的变了学生在平板上选一项,老师界面上的统计要真的变。依赖上一条先把题推出去。通过 13 秒平板后台
学生点「举手」老师界面上真的看到他学生在平板上点「举手」,老师界面上要真的出现这个学生。通过 40 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame '94BD58D06C9494626B7914A389283C4E'.
看屏幕:两条入口都真的看到学生屏幕的画面老师发起看屏,浏览器里要真的出现学生屏幕的连续画面 —— **两条入口都验**。通过 172 秒平板后台
平板连不上服务器时,共享失败如实报回、看屏页说得出原因平板连不上服务器时,共享桌面要如实报失败,老师的看屏页要说出平板给的原因。未验到 20 秒
设坏私人 DNS 后平板仍能解析服务器域名,且这台不是 root(不能加防火墙规则),造不出「连不上服务器」的前提
平板后台
点「下课」课堂真的结束点「下课」,课堂要真的结束(服务端不再有进行中的课)。通过 9 秒平板后台

控制台页面

测试项测试步骤(机器实际执行的动作)结论截图(平板 / 后台)
控制台页面打得开且有内容:dashboard用浏览器以管理员身份打开控制台的 dashboard 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 1 秒平板后台
控制台页面打得开且有内容:org用浏览器以管理员身份打开控制台的 org 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:groups用浏览器以管理员身份打开控制台的 groups 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:enroll用浏览器以管理员身份打开控制台的 enroll 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:devices用浏览器以管理员身份打开控制台的 devices 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:devices/d9e50cdc0514b1e5b39681124e836ffe8用浏览器以管理员身份打开控制台的 devices/d9e50cdc0514b1e5b39681124e836ffe8 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:policies用浏览器以管理员身份打开控制台的 policies 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame '0189DF1030403ED238F14EAD2C3E11BA'.
控制台页面打得开且有内容:apps用浏览器以管理员身份打开控制台的 apps 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:client用浏览器以管理员身份打开控制台的 client 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:filelib用浏览器以管理员身份打开控制台的 filelib 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:alerts用浏览器以管理员身份打开控制台的 alerts 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:classroom用浏览器以管理员身份打开控制台的 classroom 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:wall用浏览器以管理员身份打开控制台的 wall 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:reports用浏览器以管理员身份打开控制台的 reports 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:branding用浏览器以管理员身份打开控制台的 branding 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:theme用浏览器以管理员身份打开控制台的 theme 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:users用浏览器以管理员身份打开控制台的 users 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame 'C0C54AF3933F64EE92B59766108F9378'.
控制台页面打得开且有内容:sso-settings用浏览器以管理员身份打开控制台的 sso-settings 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:parent-requests用浏览器以管理员身份打开控制台的 parent-requests 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:parent-portal用浏览器以管理员身份打开控制台的 parent-portal 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:audits用浏览器以管理员身份打开控制台的 audits 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台
控制台页面打得开且有内容:storage用浏览器以管理员身份打开控制台的 storage 页面,等它真正渲染出内容,再确认三件事:页面主体不是空的、没有出现错误提示、浏览器控制台没有报 JS 异常。只看 HTTP 200 不算 —— 白屏页面同样会回 200。通过 0 秒平板后台

屏幕与消息

测试项测试步骤(机器实际执行的动作)结论截图(平板 / 后台)
发送消息弹窗真的显示在设备上发送消息:弹窗要真的显示在设备上。通过 16 秒平板后台
熄屏时发的消息:屏幕亮起、消息盖在锁屏上,学生不解锁也看得到熄屏时发的消息:屏幕要自己亮起来、消息盖在锁屏上,学生不解锁也看得到。通过 15 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame '1511938AC3016514B6514685BC88B2FE'.
悬浮消息按控制台原样发不崩溃且字幕真的显示悬浮消息:按控制台原样发(不带颜色/速度/字号),客户端不能崩,字幕要真的显示。通过 11 秒平板后台
共享桌面的授权框真的弹到学生屏幕上共享桌面:授权框要真的弹到学生的屏幕上。通过 7 秒平板后台
停止共享真的把投屏停掉停止共享:系统里的那一路投屏要真的没了。通过 4 秒平板后台
锁屏时发起共享会如实说明原因而不是沉默锁屏时发起共享:必须如实回失败并说清下一步,不能沉默。通过 9 秒平板
后台未截到:后台截图失败:Attempted to use detached Frame '4B9A49AA1381EF8B2B32B1D4E5FD0C7E'.
锁定屏幕真的锁上了锁定屏幕:我们的锁屏界面要真的顶到前台。通过 4 秒平板后台
解除锁定真的解开了解除锁定:锁屏界面要真的退下去。依赖 check_lock 先把设备锁上。通过 4 秒平板后台