oTree 实验上线前测试清单:从本地预演到正式运行

oTree 实验上线前测试清单:从本地预演到正式运行

标签: OTree入门上线测试

oTree 实验能在本地跑起来,不代表可以马上上线收数据。正式实验前最重要的工作是测试:把参与者可能走到的路径都走一遍,把数据导出来看一遍,把异常情况提前想一遍。

这篇是一份实用清单,可以在每次上线前照着检查。


一、基础运行检查

先确认项目能稳定启动:

otree devserver

检查后台是否能创建 session,实验链接是否能打开,所有 app 是否按预期顺序出现。如果你新增了 app,但后台 session 里没有它,优先检查 settings.pySESSION_CONFIGS


二、完整流程检查

至少用 demo participant 跑完一遍完整实验。不要只点到第一页就结束,要从说明页、决策页、等待页、结果页一直走到最后。

重点看:

  • 页面顺序是否正确。
  • 不同角色是否看到不同页面。
  • treatment/control 是否看到对应材料。
  • 返回、刷新、慢速操作是否会造成异常。
  • 最后一页是否清楚告诉参与者实验结束。

多人实验要开多个浏览器窗口模拟不同参与者,不要只测一个人。


三、分组与等待页检查

如果实验有 WaitPage,一定要测试这些情况:

  • 一组所有人到齐后是否能继续。
  • 有人停在前一页时,其他人是否被正确等待。
  • 组内计算是否只执行一次。
  • 固定分组和随机分组是否符合设计。

常见问题是把组内 payoff 计算写在个人页面里,导致先到的人拿不到其他人的数据。多人计算更适合放在 after_all_players_arrive


四、数据导出检查

测试 session 跑完后,立刻导出 CSV。检查关键变量:

  • participant code 是否存在。
  • treatment、role、round 是否正确。
  • 决策变量是否有值。
  • payoff 是否符合公式。
  • 超时或退出是否能识别。
  • 问卷变量是否导出完整。

不要等正式收数后才第一次看导出文件。很多数据问题上线后很难补救。


五、页面与设备检查

参与者可能使用不同设备,所以至少检查桌面端和移动端。重点看:

  • 表格是否超出屏幕。
  • 按钮是否容易点击。
  • 说明文字是否被遮挡。
  • 输入框在手机上是否好用。
  • 图片、视频、公式是否正常加载。

如果实验强制要求电脑端,最好在招募说明和实验开头都写清楚。


六、超时与退出检查

如果页面设置了 timeout,要测试超时后变量如何记录:

@staticmethod
def before_next_page(player: Player, timeout_happened):
    player.timeout_happened = timeout_happened

同时要想清楚:超时参与者是否继续实验?是否给默认选择?是否影响同组其他人?

退出也是一样。多人实验中,一个人退出可能让整组卡住,所以正式实验前要设计处理方案。


七、正式上线前最后确认

上线前再检查一次:

  • DEBUG 或测试配置是否关闭。
  • 管理员密码和环境变量是否正确。
  • 数据库是否使用正式环境。
  • session 名称是否清楚。
  • 招募平台里的链接是否是正式链接。
  • 支付规则和实验说明是否一致。

最后,保留一个测试记录:测试时间、测试人数、发现的问题、修复情况、最终导出文件是否检查过。这样即使几个月后回看,也能知道当时为什么认为实验可以上线。

评论