在线考试系统使用指南
本指南介绍在线考试系统的完整使用方法,包括题库管理、试卷管理、考场管理、考试流程(含答题卡导航、题目标记、实时保存、编程题在线运行)、考试记录、错题本、人脸核身防作弊、AI智能功能、成绩分析报表(含实时监控大屏、按题批量阅卷与评分量规)、考试排行榜与竞赛模式以及服务器安全防护。
一、题库管理
题库是存放试题的文件夹,按学科或类别分类组织。
1.1 创建题库
- 进入「考试管理」→「题库管理」
- 点击「新建题库」
- 填写题库名称、描述和所属分类
1.2 添加题目
在题库中可以添加以下类型的题目:
| 题型 | 说明 | 判分方式 |
|---|---|---|
| 单选题 | 提供多个选项,选择一个正确答案 | 自动判分 |
| 多选题 | 提供多个选项,选择多个正确答案 | 自动判分(部分正确可得部分分) |
| 判断题 | 判断对错 | 自动判分 |
| 填空题 | 输入答案,多个可接受答案用英文逗号分隔 | 自动判分 |
| 排序题 | 将选项按正确顺序排列 | 自动判分(部分正确可得部分分) |
| 连线题 | 将左右两列项目一一配对 | 自动判分(部分正确可得部分分) |
| 编程题 | 在代码编辑器中编写代码 | 需人工评分或AI辅助评分 |
| 音频题 | 播放音频后作答(选项设置与单选题相同) | 自动判分 |
| 视频题 | 观看视频后作答(选项设置与单选题相同) | 自动判分 |
| 简答题 | 开放式回答 | 需人工评分 |
| 阅读理解 | 包含阅读材料和多个子题目 | 子题自动/人工判分 |
每道题可以设置:分值、难度(简单/中等/困难)、答案解析。
1.3 批量导入题目
支持通过Excel文件批量导入题目,按模板格式填写后上传即可。
二、试卷管理
试卷是从题库中选取题目组成的考试卷。
2.1 创建试卷
- 进入「考试管理」→「试卷管理」
- 点击「新建试卷」
- 配置试卷参数:
| 参数 | 说明 |
|---|---|
| 试卷标题 | 试卷名称 |
| 关联题库 | 从哪个题库中选题 |
| 总分 | 试卷满分 |
| 考试时长 | 限时(分钟) |
| 及格分数 | 通过分数线 |
| 随机出题 | 每次考试随机排列题目顺序 |
| 随机选项 | 每次考试随机排列选项顺序 |
| 考后显示答案 | 提交后是否显示正确答案和解析 |
| 显示分数 | 提交后是否显示得分 |
2.2 选题方式
- 手动选题:从题库中逐题挑选
- 随机抽题:按题型和数量自动从题库随机抽取,每位考生拿到的题目可能不同
三、考场管理
考场是考试的入口,关联试卷并设置考试规则。考生通过考场进入考试。
3.1 创建考场
- 进入「考试管理」→「考场管理」
- 点击「新建考场」
- 配置考场参数:
| 参数 | 说明 |
|---|---|
| 考场标题 | 考试名称 |
| 关联试卷 | 选择使用的试卷 |
| 考试时间 | 设置开考和结束时间(不限时则留空) |
| 最大考试次数 | 允许考生重考的次数 |
| 练习模式 | 开启后不记录成绩,答题后立即判断对错,可反复练习 |
| 付费考试 | 设置考试费用,考生需付费后才能参加 |
| 允许人员 | 指定可参加考试的用户或用户组(不限制则所有人可参加) |
| 安全核验 | 开启人脸核身和随机拍照防作弊(详见第七章) |
| 屏幕水印 | 开启后考试页面叠加考生姓名和ID水印,防止截图泄露 |
| 考试证书 | 及格后生成证书图片(JPG),含防伪二维码,支持自定义背景图和字体选择 |
| 竞赛模式 | 开启后支持每题限时答题和积分排行榜(详见第十章) |
| 通知渠道 | 发布考场时向参考人员发送通知(邮件/短信/站内信/企业微信) |
3.2 考场二维码
每个考场可生成二维码,用户扫码直接进入考试,方便线下推广和快速入场。
四、考试流程
4.1 考生参加考试
- 考生登录后进入「考试列表」
- 选择要参加的考试,点击「开始考试」
- 如考场开启了付费,需先完成支付
- 如考场开启了人脸核身,需先完成身份验证
- 进入答题界面,按题目顺序作答
- 答题过程中系统会自动保存草稿,防止意外丢失
- 答完后点击「提交试卷」,或考试时间到后自动交卷
答题卡导航:
答题界面右侧(或顶部)显示答题卡面板,直观展示所有题目的答题状态:
| 状态 | 颜色 | 说明 |
|---|---|---|
| 未答 | 默认灰底 | 尚未作答的题目 |
| 已答 | 蓝色 | 已完成作答的题目 |
| 已标记 | 橙色边框+角标 | 考生标记的不确定题目 |
点击答题卡中的题号可快速跳转到对应题目。顶部显示已答/未答/标记的统计数字,方便考生掌握整体进度。
题目标记:
每道题标题栏右侧有「🏷 标记」按钮,点击可标记该题为"不确定"。标记后:
- 答题卡上该题号显示橙色边框和角标
- 题目左侧边框变为橙色
- 点击「🏷 查看标记」按钮可快速跳转到下一道标记题目
- 点击「❓ 未答题」按钮可快速跳转到下一道未答题目
- 提交试卷时,弹窗会提示标记题目的数量,防止遗漏
实时保存状态:
答题界面顶部栏显示保存状态指示器,实时反馈答案保存情况:
| 状态 | 图标 | 说明 |
|---|---|---|
| 保存中 | 💾 蓝色 | 答案正在保存到服务器 |
| 已保存 | ✅ 绿色 | 答案已成功保存 |
| 保存失败 | ❌ 红色 | 保存出错,请检查网络 |
保存成功或失败后指示器会自动隐藏,确保不干扰答题。
编程题在线运行:
编程题支持在线运行代码,考生可在提交前测试代码效果:
- 在代码编辑器中编写代码
- 可选:在「标准输入」框中输入测试数据
- 点击「▶ 运行代码」按钮
- 查看运行结果面板,包括程序输出、错误信息、运行耗时
支持的语言:Python、JavaScript、Java、C++、Go、SQL
代码运行有10秒超时限制和50000字符长度限制,仅用于调试测试,运行结果不影响最终评分。
4.2 继续未完成的考试
如果考试中途中断(如关闭浏览器),可以重新进入考试列表,点击「继续考试」恢复之前的答题进度。
4.3 练习模式
开启练习模式的考场,答题方式与正式考试不同:
- 每次只显示一道题
- 提交答案后立即判断对错
- 显示正确答案和解析
- 不记录成绩,可反复练习
4.4 查看考试结果
提交试卷后,根据试卷设置:
- 自动判分:如果试卷只有客观题(单选/多选/判断/填空/排序/连线/音频/视频),系统立即给出分数
- 待阅卷:如果试卷包含简答题或编程题,客观题部分立即出分,简答题和编程题需等待管理员评分后公布最终成绩
- 根据试卷设置,可能显示或隐藏正确答案、分数等信息
五、考试记录
5.1 查看记录
管理员可在「考试管理」→「考试记录」中查看所有考生的考试情况:
| 信息 | 说明 |
|---|---|
| 考生信息 | 姓名、用户名 |
| 考试成绩 | 得分、是否及格 |
| 答题详情 | 每道题的作答情况 |
| 考试时长 | 实际用时 |
| 核验照片 | 人脸核身时抓拍的照片(如已开启) |
5.2 人工阅卷
对于包含简答题或编程题的试卷,管理员需要进行人工阅卷:
- 在考试记录中找到状态为「待阅卷」的记录
- 查看每道主观题的考生回答
- 逐题打分
- 系统自动汇总客观题分数和主观题分数,计算总分
5.3 AI辅助阅卷
在人工阅卷界面,点击「AI辅助评分」按钮,系统会调用AI对每道主观题进行评分建议:
- AI根据参考答案和考生回答,给出建议分数和评分理由
- 管理员可参考AI建议,也可自行调整分数
- 支持简答题、填空题和编程题的AI评分
5.4 导出记录
支持将考试记录导出为Excel文件,方便统计和存档。
5.5 导出PDF
支持将单条考试记录导出为PDF文件,包含考生信息、答题详情和核验照片。
5.6 考试证书
考生成绩达到及格分数后,管理员可为该考生生成考试证书,系统自动生成证书图片(JPG):
- 在考场设置中开启「考试通过自动发证」,可选配置证书背景图URL和证书字体
- 证书字体提供两种选择:小标宋(推荐,支持玥/镕/璟等异体字)和宋体(标准字体)
- 在考试记录中找到及格的记录,点击「生成证书」按钮
- 系统自动生成包含考生姓名、考试名称、成绩、日期、证书编号的证书图片
- 证书附带防伪二维码,扫码获取验证码,可在管理端验证真伪
- 考生可在移动端查看证书图片,支持保存到相册
- 管理端证书管理页可预览证书图片、重新生成图片
六、错题本
考生答错的题目会自动进入错题本,方便复习巩固。
- 支持按题库、题型筛选错题
- 可以标记「已掌握」的题目
- 支持错题练习模式,重新作答错题
七、人脸核身与防作弊
系统提供多种防作弊机制,从身份验证到考试全程监控,全方位保障考试公平。
7.0 防作弊机制总览
| 机制 | 说明 | 适用场景 |
|---|---|---|
| 人脸核身 | 入场验证身份,考试中定时拍照比对 | 防止替考 |
| 切屏检测 | 检测考生离开考试页面的行为 | 防止搜索答案 |
| 屏幕水印 | 在考试页面叠加考生信息水印 | 防止截图泄露 |
切屏检测:考试过程中,如果考生切换到其他标签页、窗口或应用,系统会自动记录切屏行为,包括切屏次数和时间。管理员可在考试记录中查看每位考生的切屏情况。
屏幕水印:开启后,考试页面会叠加一层半透明水印,显示考生姓名和用户ID。即使考生截图或拍照,水印也会随图片一起保留,便于追溯泄露来源。
系统支持人脸核身功能,防止替考等作弊行为。需要在管理后台「系统设置」→「人脸核身」中先完成腾讯云配置。
7.1 三种核验模式
| 模式 | 入场验证 | 考试中拍照 | 人脸比对 | 适用场景 |
|---|---|---|---|---|
| 严格模式 | 需人脸核身 | 定时拍照 | 与入场照片实时比对 | 重要考试、资格认证 |
| 入口核验模式 | 需人脸核身 | 定时拍照(仅存档) | 不比对 | 普通考试 |
| 仅拍照模式 | 无需核身 | 定时拍照(仅存档) | 不比对 | 一般测验、日常考试 |
严格模式说明:
- 进入考试前需完成人脸核身验证身份
- 考试过程中按设定间隔随机弹出拍照
- 系统自动将中途拍照与入场照片进行比对
- 比对未通过会提示考生,但不会强制交卷或中断考试
- 管理员可在后台查看所有比对结果和相似度分数
入口核验模式说明:
- 进入考试前需完成人脸核身验证身份
- 考试过程中仅定时拍照存档,不进行人脸比对
仅拍照模式说明:
- 进入考试前无需人脸核身
- 考试过程中仅定时拍照存档
- 不调用腾讯云人脸比对服务,无额外费用
7.2 核验参数配置
在考场设置中开启安全核验后,可配置:
| 参数 | 说明 | 建议值 |
|---|---|---|
| 核验间隔 | 每隔多少秒拍照一次 | 300秒(5分钟) |
| 随机偏移 | 在设定间隔上增加随机偏移,防止考生预判拍照时间 | 建议开启 |
7.3 考生核验流程
根据考生使用的平台不同,核验方式自动适配:
- 微信小程序:使用微信原生核身,体验最佳
- 微信公众号:在微信内打开核身页面完成验证
- 手机浏览器:跳转到核身页面完成验证
- 电脑浏览器:弹出新窗口完成验证,通过后自动进入考试
核身通过后,有效期与考试时长一致。超时需重新核验。
7.4 查看核验记录
- 进入「考试管理」→「考场管理」
- 找到开启了安全核验的考场,点击「核验照片」
- 查看该考场所有考生的核验照片、比对结果、相似度分数
- 可批量删除核验记录
核验结果状态说明:
| 状态 | 说明 |
|---|---|
| 通过 | 入场核身通过,或严格模式下中途拍照比对通过 |
| 比对未通过 | 严格模式下中途拍照与入场照片比对未通过,仅标记不中断考试 |
| 比对异常 | 严格模式下比对服务调用失败,仅标记不中断考试 |
| 已存档 | 入口核验模式或仅拍照模式下,照片已保存 |
7.5 腾讯云配置
人脸核身功能基于腾讯云服务,需要先完成以下配置:
开通腾讯云服务
- 登录腾讯云控制台,完成账号实名认证
- 开通「人脸核身」服务
- 获取API密钥(SecretId和SecretKey),如已配置对象存储的密钥则可共用
创建业务流程
在腾讯云人脸核身控制台中,为不同使用渠道分别创建业务流程:
| 渠道 | 适用场景 | 说明 |
|---|---|---|
| 微信小程序 | 小程序内使用 | 有行业资质要求,审核需3-5个工作日 |
| 微信浮层H5 | 微信公众号内使用 | 无行业限制,审核快,推荐 |
| 微信原生H5 | 微信公众号内使用(原生体验) | 有行业资质要求,体验更好 |
| 移动端H5 | 手机浏览器 | 无特殊限制 |
| PC端 | 电脑浏览器 | 无特殊限制 |
创建时选择「Plus版人脸核身」,活体检测推荐选「一闪活体」。审核通过后会获得一个业务流程编号(RuleId)。
如何选择微信H5模式? 如果您的公众号主体符合金融、政务、医疗等行业资质,推荐选「微信原生H5」,体验更好;否则选「微信浮层H5」,无行业限制,审核快。
在系统中填写配置
进入管理后台「系统设置」→「人脸核身」,填写以下信息:
| 配置项 | 说明 | 是否必填 |
|---|---|---|
| 密钥ID / 密钥Key | 腾讯云API密钥,留空则使用对象存储的密钥 | 可选 |
| 默认业务流程编号 | 通用编号,未匹配到渠道时使用 | 推荐 |
| 小程序业务流程编号 | 微信小程序专用 | 小程序场景必填 |
| 公众号H5业务流程编号 | 微信公众号专用 | 公众号场景必填 |
| 移动端业务流程编号 | 手机浏览器专用 | 移动端场景必填 |
| PC端业务流程编号 | 电脑浏览器专用 | PC端场景必填 |
| 回调地址 | 核验完成后的跳转地址,留空使用默认 | 可选 |
自动回退机制:如果某个渠道没有配置对应的编号,系统会自动使用上一级的编号。例如移动端未配置,会自动使用公众号H5的编号;公众号H5也未配置,会使用默认编号。因此最少只需配置一个默认编号即可使用。
7.6 费用说明
| 项目 | 适用模式 | 大致费用 |
|---|---|---|
| 人脸核身(入场验证) | 严格模式 / 入口核验模式 | 约0.8-1.5元/次 |
| 人脸比对(中途拍照比对) | 严格模式 | 约0.15元/次 |
| 仅拍照模式 | 仅拍照模式 | 无费用 |
费用估算:严格模式下,一场60分钟的考试,入场核身1次 + 每5分钟拍照比对约12次,总费用约3元/人。仅拍照模式无任何费用。具体价格以腾讯云官网为准。
7.7 常见问题
微信小程序审核提示需要隐私权限怎么办?
系统已做兼容处理,未配置腾讯云参数或未开启考试开关时,人脸核验页面显示"未开启"状态,不会调用摄像头。
电脑端支持哪些浏览器?
仅支持 Chrome 87及以上 和 Firefox 45及以上 版本。
严格模式下比对未通过会怎样?
系统会提示考生"人脸比对未通过",但不会强制交卷或中断考试。管理员可在后台查看比对结果进行复核。
手机浏览器拍照能否强制使用摄像头?
不能。手机浏览器拍照时可从相册选择照片,这是浏览器的限制。如需更高安全性,建议使用微信小程序。
只配置了一个业务流程编号,其他渠道能用吗?
可以。系统有自动回退机制,未配置的渠道会自动使用上一级的编号。
八、AI智能功能
系统集成了多种AI功能,帮助提高出题和教学效率。需要在管理后台「系统设置」→「AI配置」中先配置AI服务的密钥和模型。
8.1 AI智能出题
利用AI根据知识点自动生成题目,大幅提高出题效率。
使用方法:
- 进入题库管理,点击「AI出题」
- 选择题目要添加到的题库
- 配置生成参数:
| 参数 | 说明 |
|---|---|
| 题型 | 选择要生成的题型(单选/多选/判断/填空/简答/排序/连线/编程) |
| 难度 | 简单/中等/困难 |
| 数量 | 一次生成的题目数量 |
| 主题/知识点 | 输入题目涉及的知识领域,如"中国近代史"、"Python基础语法" |
- 点击「开始生成」,AI异步生成题目
- 生成完成后预览题目,可逐题编辑修改
- 确认后批量添加到题库
单选题和多选题自动生成4个选项,每道题自动生成答案解析,默认每题2分,可后续修改。
8.2 AI文档解析出题
从文档文本中自动识别和提取题目,适合将纸质试卷快速数字化。
使用方法:
- 进入题库管理,点击「AI解析文档」
- 将文档文本粘贴到输入框(最多8000字)
- 点击「开始解析」
- AI自动识别文档中的题目,提取为结构化数据
- 预览识别结果,确认后添加到题库
AI可以自动识别题目类型、提取题目内容和选项、提取正确答案和解析、判断题目难度。
8.3 AI智能组卷
AI根据要求从题库中自动选题,生成推荐试卷方案。
使用方法:
- 进入试卷管理,点击「AI智能组卷」
- 配置组卷参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
| 试卷标题 | 试卷名称 | - |
| 所属题库 | 从哪个题库选题 | - |
| 总分 | 试卷总分 | 100 |
| 考试时长 | 考试限时(分钟) | 60 |
| 及格分数 | 通过分数线 | 60 |
| 难度比例 | 简单:中等:困难的比例 | 3:5:2 |
- 点击「开始AI组卷」
- 查看AI生成的组卷方案,包括组卷思路、题目配置和题目预览
- 确认方案后点击「确认创建」,系统自动创建试卷
AI组卷方案仅供参考,创建后仍可手动调整。建议题库中至少有50道以上题目,AI组卷效果更好。
8.4 AI智能分析
考试完成后,AI可以对每道错题进行智能分析,帮助考生理解错误原因。
使用方法:
- 在考试记录详情页,点击题目旁的「AI分析」按钮
- AI异步分析该题目
- 查看分析结果,包括:答案解析、考查知识点、易错点、学习建议
九、成绩分析报表
管理员可以对考场成绩进行多维度统计分析,全面了解考试情况和教学效果。
9.1 基本概览
在「考试管理」→「考场管理」中,点击考场的「统计分析」按钮,进入成绩分析页面。基本概览包含:
| 指标 | 说明 |
|---|---|
| 参考人数 | 实际参加考试的人数 |
| 平均分 | 所有考生成绩的平均值 |
| 最高分 / 最低分 | 成绩范围 |
| 及格率 | 达到及格分数的考生占比 |
| 中位数 | 排名中间位置的考生分数 |
| 分数分布 | 各分数段的人数分布图 |
9.2 题目分析
题目分析帮助管理员评估每道题的质量和难度:
| 指标 | 说明 |
|---|---|
| 答对率 | 答对该题的考生占比 |
| 平均得分 | 所有考生在该题的平均得分 |
| 区分度 | 衡量题目区分高低分考生能力(0~1之间) |
| 高分组答对率 | 成绩前27%的考生对该题的答对率 |
| 低分组答对率 | 成绩后27%的考生对该题的答对率 |
区分度等级判定:
| 区分度 | 等级 | 说明 |
|---|---|---|
| ≥ 0.4 | 优 | 题目能很好地区分高低分考生 |
| 0.3 ~ 0.4 | 良 | 题目区分能力较好 |
| 0.2 ~ 0.3 | 中 | 题目区分能力一般,可考虑修改 |
| < 0.2 | 差 | 题目几乎无法区分考生水平,建议删除或重写 |
9.3 知识点掌握率
按题目标签(知识点)统计考生的掌握情况:
| 指标 | 说明 |
|---|---|
| 掌握率 | 该知识点所有题目的综合答对率 |
| 题目数量 | 属于该知识点的题目数 |
| 答对数量 | 考生在该知识点答对的题目总数 |
| 平均得分 | 该知识点的平均得分 |
掌握率等级判定:
| 掌握率 | 等级 | 建议 |
|---|---|---|
| ≥ 80% | 掌握 | 考生整体掌握良好 |
| 60% ~ 80% | 基本掌握 | 可适当加强练习 |
| 40% ~ 60% | 薄弱 | 需重点讲解和练习 |
| < 40% | 很差 | 需重新学习该知识点 |
9.4 用户组对比
按用户所属组(如部门、班级)对比不同群体的考试表现:
| 指标 | 说明 |
|---|---|
| 平均分 | 该组所有考生的平均成绩 |
| 及格率 | 该组达到及格分数的考生占比 |
| 中位数 | 该组排名中间位置的考生分数 |
| 最高分 / 最低分 | 该组的成绩范围 |
用户组对比以柱状图和表格形式展示,方便管理员发现不同群体间的差距,针对性地改进教学或培训方案。
9.5 实时监控大屏
实时监控大屏为管理员提供考试进行中的全局视角,实时掌握考场动态。
进入方式:在「考试管理」→「考场管理」中,点击考场的「实时监控」按钮。
监控指标:
| 指标 | 说明 |
|---|---|
| 总考生数 | 考场中的总考生人数 |
| 在线人数 | 当前正在答题的考生数 |
| 已交卷 | 已提交试卷的考生数 |
| 作弊预警 | 触发作弊告警的考生数 |
| 平均进度 | 所有在线考生的平均答题进度 |
功能特性:
- 深色主题大屏界面,适合投屏展示
- 进度分布条:直观展示各进度区间的考生人数
- 考生详情表格:显示每位考生的用户名、姓名、状态、答题进度、剩余时间、作弊告警次数
- 状态筛选:支持按"全部/在线/已交卷/未开始"筛选考生
- 自动刷新:每10秒自动更新数据,也可手动刷新
9.6 按题批量阅卷与评分量规
按题批量阅卷让阅卷人聚焦于同一道题的所有考生答案,配合评分量规实现标准化评分,提高阅卷效率和一致性。
进入方式:在「考试管理」侧边栏中点击「批量阅卷」。
使用流程:
- 选择考场:从下拉列表中选择需要阅卷的考场
- 选择题目:系统自动筛选出需要人工阅卷的题目(简答题、编程题等)
- 逐个评分:查看每位考生的答案,输入评分
- 批量保存:完成评分后点击「批量保存」,一次性提交所有评分
评分量规:
评分量规是预设的评分标准,帮助阅卷人保持评分一致性。在题目编辑页面可添加评分量规:
| 量规字段 | 说明 |
|---|---|
| 分值 | 该档对应的得分 |
| 描述 | 该档的评分标准描述 |
快捷评分:
- 满分:一键填入该题满分
- 零分:一键填入0分
- 量规评分:点击量规条目,自动填入对应分值
评分量规建议在出题时同步设置,阅卷时可直接参考,减少主观偏差。
十、考试排行榜与竞赛模式
10.1 考试排行榜
排行榜展示考场中所有考生的成绩排名,支持两种排名方式:
按分数排名:按考试成绩从高到低排列,分数相同则用时短者排前。
按积分排名(竞赛模式):综合考虑正确率和答题速度,积分计算公式为:
积分 = 正确率 × 70 + 用时奖励 × 30
其中用时奖励根据考生的相对用时计算,用时越短奖励越高。
查看排行榜:
- 在考试中心点击「排行榜」按钮
- 选择要查看的考试
- 切换"按分数"或"按积分"排名方式
- 查看前三名展示和完整排名列表
匿名模式:管理员可开启匿名显示,排行榜中只显示排名和成绩,不显示考生姓名。
我的排名:考生可在排行榜页面查看自己的排名、分数和积分。
10.2 竞赛模式
竞赛模式适合知识竞赛、闯关答题等场景,与普通考试相比有以下特点:
| 特性 | 普通考试 | 竞赛模式 |
|---|---|---|
| 答题方式 | 自由浏览所有题目 | 每题限时,超时自动跳下一题 |
| 排名方式 | 按分数排名 | 按积分排名(含用时奖励) |
| 考后展示 | 成绩和解析 | 成绩 + 排行榜入口 |
开启竞赛模式:
- 在创建或编辑考场时,勾选「启用竞赛模式」
- 设置「每题限时」(秒),0表示不限时
- 勾选「考后显示排行榜」,考生提交后可直接查看排行榜
竞赛答题流程:
- 考生进入考试后,页面顶部显示总倒计时和当前题目倒计时
- 当前题目倒计时归零后,自动跳转到下一题
- 已跳过的题目无法返回修改
- 提交试卷后,显示成绩和「查看排行榜」按钮
提示:竞赛模式下建议设置较短的考试时长和每题限时(如30~60秒),营造紧张刺激的竞赛氛围。
十、霸屏模式(防作弊)
霸屏模式是一种强化的防作弊机制,可防止考生切屏、复制粘贴、退出全屏等行为,超过告警阈值自动强制交卷。
10.1 开启霸屏模式
- 在创建或编辑考场时,勾选「启用霸屏模式」
- 选择「霸屏级别」:
- 设置「作弊告警阈值」(默认3次),考生违规操作超过此次数将自动强制交卷
10.2 支持的告警类型
| 告警类型 | 说明 |
|---|---|
fullscreen_exit | 考生退出全屏模式 |
visibility_change | 页面不可见(切屏/切换应用) |
window_blur | 窗口失去焦点 |
copy_attempt | 尝试复制内容 |
paste_attempt | 尝试粘贴内容 |
right_click | 右键点击 |
devtools_open | 打开开发者工具 |
multi_monitor | 检测到多显示器 |
10.3 霸屏模式工作流程
- 考生进入考试后,页面自动请求全屏
- 考生退出全屏时,自动记录告警并重新进入全屏
- 切屏、复制粘贴等操作实时上报后端
- 告警次数达到阈值时,后端自动强制提交试卷
- 管理员可在后台查看作弊告警列表
10.4 相关API
| 接口 | 方法 | 说明 |
|---|---|---|
/v1/exam/cheat-report | POST | 前端上报作弊行为 |
/v1/exam/kiosk-config | POST | 获取霸屏模式配置 |
/v1/exam/cheat-warnings | POST | 管理端查看作弊告警列表 |
十一、协同阅卷
协同阅卷支持多阅卷人并行评分,提供双评机制和评分仲裁,确保主观题评分的公平性和准确性。
11.1 创建阅卷分配
- 考试结束后,进入考试记录管理页面
- 对含主观题的考场创建阅卷分配
- 配置分配参数:
11.2 分配策略说明
| 策略 | 说明 |
|---|---|
random | 随机将阅卷任务分配给阅卷人 |
balanced | 按阅卷人当前负载均衡分配,任务量更均匀 |
by_question | 同一题目固定由同一阅卷人评分,保证评分标准一致 |
11.3 双评与仲裁流程
- 单评模式(reviewsPerQ=1):每道主观题由1人评分,评分后直接计入成绩
- 双评模式(reviewsPerQ=2):每道主观题由2人独立评分
- 仲裁:管理员对争议题目给出最终裁定分数
11.4 阅卷工作流程
- 管理员创建阅卷分配,系统自动按策略分配任务
- 阅卷人登录后查看「我的阅卷任务」,逐题评分
- 所有任务完成后,系统自动汇总计算最终分数
- 争议题目由管理员仲裁评分
11.5 相关API
| 接口 | 方法 | 说明 |
|---|---|---|
/v1/exam/grading/create-assignment | POST | 创建阅卷分配 |
/v1/exam/grading/my-tasks | POST | 我的阅卷任务列表 |
/v1/exam/grading/grade-task | POST | 阅卷人评分 |
/v1/exam/grading/progress | POST | 阅卷进度统计 |
/v1/exam/grading/reconcile | POST | 争议题目列表(需仲裁) |
/v1/exam/grading/reconcile-grade | POST | 管理员仲裁评分 |
十二、服务器安全防护
系统内置安全防护模块,保护服务器免受 WebShell 入侵、恶意 IP 攻击和文件篡改等威胁。无需额外部署,配置即生效。
12.1 启用安全防护
在 config.yaml 中配置安全防护参数:
security:
enabled: true # 总开关,设为 true 启用安全防护
watch_paths: [] # 监控目录,留空自动使用当前平台默认路径
ignore_paths: [] # 忽略目录,留空自动使用当前平台默认路径
auto_block: true # 发现威胁时自动隔离文件
auto_ip_block: true # 自动封禁恶意 IP
block_duration: 3600 # IP 封禁时长(秒),默认1小时
quarantine_dir: '' # 隔离文件存放目录,留空自动使用默认路径
alert_webhook: '' # 告警推送 Webhook URL(如企业微信机器人)
scan_schedule: '0 3 * * *' # 定时扫描 Cron 表达式,默认每天凌晨3点
nginx_log_path: '' # Nginx 日志路径,留空自动检测
enable_file_watch: true # 文件实时监控开关
enable_scan: true # 定时扫描开关
enable_alert: true # 告警推送开关
enable_ip_block: true # IP 自动封禁开关
修改配置后需重启系统生效。
12.2 跨平台默认路径
配置中路径留空时,系统自动根据当前操作系统选择默认值:
| 配置项 | Linux | Windows | macOS |
|---|---|---|---|
| 监控目录 | /www/wwwroot | C:\phpstudy_pro\WWW、C:\xampp\htdocs 等 | /usr/local/var/www |
| 忽略目录 | */runtime、*/storage/logs | */runtime、*/storage/logs | */runtime、*/storage/logs |
| 隔离目录 | /www/security/quarantine | ~/security/quarantine | ~/security/quarantine |
| Nginx日志 | /www/wwwlogs | 自动检测 | /usr/local/var/log/nginx |
| IP封禁方式 | iptables | netsh advfirewall | 仅记录数据库 |
系统启动时会自动过滤不存在的监控目录,避免监控无效路径报错。
12.3 子功能开关
安全防护包含4个子功能,可独立启停,灵活适配不同场景:
| 开关 | 配置项 | 说明 | 适用场景 |
|---|---|---|---|
| 文件实时监控 | enable_file_watch | 监控 Web 目录文件的新增/修改/删除 | 所有环境 |
| 定时扫描 | enable_scan | 按 Cron 表达式定时全量扫描 WebShell | 所有环境 |
| 告警推送 | enable_alert | 发现威胁时推送 Webhook 告警 | 需要即时通知的场景 |
| IP 自动封禁 | enable_ip_block | 自动识别并封禁恶意 IP | 有公网访问的环境 |
典型配置示例:
仅扫描不封禁(开发环境推荐):
security:
enabled: true
enable_file_watch: true
enable_scan: true
enable_alert: true
enable_ip_block: false
仅监控不扫描(低负载场景):
security:
enabled: true
enable_file_watch: true
enable_scan: false
enable_alert: true
enable_ip_block: false
12.4 WebShell 检测规则
系统内置 34 条 WebShell 检测规则,覆盖以下威胁类型:
| 规则类别 | 覆盖内容 | 严重级别 |
|---|---|---|
| 一句话木马 | eval($_POST)、assert($_GET) 等经典一句话 | 严重 |
| 编码绕过 | Base64解码、gzinflate、str_rot13 等编码混淆 | 严重/高危 |
| 经典 Shell | C99 Shell、R57 Shell、PHP Spy、Mini Shell、Weevely | 严重/高危 |
| 回调后门 | array_map、preg_replace_callback、call_user_func 等 | 高危 |
| 反序列化利用 | unserialize + 用户输入组合 | 严重 |
| 环境操控 | putenv(LD_PRELOAD)、ini_set(disable_functions) | 严重 |
| 文件操作后门 | proc_open、远程文件下载写入 | 严重/高危 |
| .htaccess 注入 | php_value、auto_prepend_file 等 | 严重 |
| 隐藏管理面板 | b374k、FilesMan、AlfaNum 等特征 | 严重 |
12.5 管理页面
启用安全防护后,在管理后台「安全防护」页面可查看和管理:
概览 Tab:
- 安全守护运行状态和平台信息
- 子功能开关状态(文件监控/定时扫描/告警推送/IP封禁)
- 待处理事件、活跃封禁 IP、隔离文件数统计
- 最近7天威胁分布(严重/高危/中危/低危)
- 最近安全事件列表
- 手动触发即时扫描
安全事件 Tab:
- 查看所有安全事件,支持按状态/严重级别/类型筛选
- 处理事件(确认威胁并采取行动)
- 忽略事件(标记为误报)
IP 黑名单 Tab:
- 查看已封禁 IP 列表,支持按活跃状态筛选
- 手动封禁 IP(填写 IP 地址和封禁原因)
- 手动解封 IP
隔离文件 Tab:
- 查看被隔离的可疑文件列表
- 恢复误隔离的文件(将文件从隔离区移回原路径)
12.6 告警推送
配置 alert_webhook 后,系统发现安全威胁时会自动推送告警消息。支持标准 Webhook 格式(兼容企业微信、钉钉、飞书等)。
推送内容包括:
- 事件类型(WebShell 检测 / 文件变更 / 恶意 IP)
- 严重级别
- 文件路径或 IP 地址
- 检测规则名称和描述
- 时间戳
12.7 Windows 系统注意事项
在 Windows 系统上使用安全防护时需注意:
- IP 封禁使用 Windows 防火墙(netsh advfirewall),需要管理员权限运行
- 防火墙规则名格式为
SecurityGuard_Block_{IP},可在「高级安全 Windows 防火墙」中查看 - 文件监控自动忽略
C:\Windows、C:\Program Files、临时目录等系统路径 - 如使用 XAMPP、PhpStudy 等集成环境,系统自动监控其 Web 根目录
- 解封 IP 时系统自动删除对应的防火墙规则
十三、单元测试
项目包含完整的单元测试和集成测试,覆盖核心业务逻辑和 API 接口。
13.1 运行测试
# 运行全部测试
go test ./... -count=1
# 运行指定包的测试(详细输出)
go test ./configs/... -v -count=1
go test ./controllers/... -v -count=1
# 运行指定测试函数
go test ./controllers/... -v -run "TestAPI_FullExamFlow" -count=1
13.2 测试文件说明
| 测试文件 | 测试内容 |
|---|---|
configs/utils_test.go | 工具函数:密码加密、手机号/邮箱验证、ID编解码、模块权限 |
configs/model_test.go | 模型方法:用户角色判断、自定义角色权限、订单状态、分类树 |
controllers/exam_utils_test.go | 考试核心逻辑:答案标准化(多选/填空/排序)、判断题判分、连线题解析、题目去答案、证书生成 |
controllers/user_auth_test.go | JWT认证:Token生成/解析/过期检测、用户过期判断、上下文取用户 |
controllers/api_test.go | API集成测试:使用SQLite内存数据库,覆盖分类/题库/题目/试卷/考场/考试/用户/角色等全部接口 |
controllers/exam_kiosk_grading_test.go | 霸屏模式和协同阅卷测试:作弊告警上报、强制提交、阅卷分配、评分、仲裁 |
13.3 测试架构
- 单元测试:直接调用内部函数,无需数据库,运行速度快
- 集成测试:使用 SQLite 内存数据库(纯Go实现,无需CGO),通过
TestMain初始化测试环境和路由,模拟HTTP请求验证完整API流程 - 完整流程测试:
TestAPI_FullExamFlow模拟从创建分类→题库→题目→试卷→考场→开始考试→查看记录的完整考试流程
温馨提示
知识产权声明:本软件已获国家版权局软件著作权登记(登记号:2022SR0558725),受《计算机软件保护条例》保护。未经书面授权,严禁对本软件进行反向工程、反编译、破解或任何形式的篡改。侵权必究。
官方指引:本文档为官方安装部署说明,仅适用于当前发布版本,后续版本请以最新官方文档为准。
环境要求:安装前请确认操作系统版本、运行环境(如 .NET、Java 等)及硬件配置满足软件运行要求,避免因环境不兼容导致异常。
操作风险与免责:安装配置涉及防火墙、注册表或环境变量等系统级变更,建议由具备相关经验的技术人员操作。因用户未严格遵循本官方指引或操作不当导致的任何数据丢失、系统异常或其他损失,我方不承担相关责任。如遇问题,请及时联系技术支持。
反馈渠道:如有未覆盖的问题,欢迎通过客服反馈,我们将持续更新与改进。
版本记录:最后更新于 2026-08-07