
moodlehq/matrixsynapse_mock该Docker镜像提供Matrix Synapse服务器的部分模拟实现,用于测试Synapse集成场景,尤其适用于Moodle平台的Matrix相关功能测试。通过模拟真实Synapse服务器的HTTP状态码、内容类型和响应内容,支持并行测试环境隔离及测试间状态重置。
serverID前缀,支持多并行测试环境/backoffice/create-admin)和重置测试状态(/backoffice/reset)功能M_UNRECOGNIZED)通过以下命令启动Mock服务器:
bashdocker run -p 8001:80 moodlehq/matrixsynapse_mock
服务器将在本地8001端口运行,API访问路径需包含serverID前缀(如http://localhost:8001/serverID/API)。
所有API请求需包含serverID前缀,格式如下:
http://{host}:{port}/{serverID}/{API路径}
创建管理员用户
请求方法:POST
路径:/backoffice/create-admin
重置测试状态
请求方法:POST
路径:/backoffice/reset
示例请求:
bashcurl -i GET http://localhost:8001/serverID/backoffice/create-admin
错误响应示例:
json{ "errcode": "M_UNRECOGNIZED", "error": "Unrecognized request" }
Synapse Mock API
Matrix Mock API
bashcurl -i -X GET http://localhost:8001/someServerID/_synapse/admin/v2/users/@barzuser:synapse
bashcurl -i --header "Authorization: Bearer syt_YWRtaW4_iNofAsbInAInYAFwkmdi_1oVMxI" \ -X POST http://localhost:8001/someServerID/_synapse/admin/v2/users/@testuser:synapse
bashcurl -i --header "Authorization: Bearer syt_YWRtaW4_iNofAsbInAInYAFwkmdi_1oVMxI" \ -X GET http://localhost:8001/someServerID/_synapse/admin/v2/users/@testuser:synapse
bashcurl -i --header "Authorization: Bearer syt_YWRtaW4_iNofAsbInAInYAFwkmdi_1oVMxI" \ -X PUT \ -d '{"displayname":"aSomeone new","threepids":[{"medium":"email","address":"***"}],"external_ids":[{"auth_provider":"oidc-keycloak","external_id":"43b3b9f9-4100-413f-9797-223b067b6e7e"}]}' \ http://localhost:8001/someServerID/_synapse/admin/v2/users/@anewuser:synapse
在Moodle自动化测试(如PHPUnit、Behat)中,需在config.php中定义TEST_COMMUNICATION_MATRIX_MOCK_SERVER常量,否则Matrix相关测试将被标记为跳过。配置示例:
php// 在$CFG->wwwroot行之后添加 define('TEST_COMMUNICATION_MATRIX_MOCK_SERVER', "http://localhost:8001/hash" . sha1($CFG->wwwroot));
bashwget [***] -O - | bash
bashsudo apt install php7.4-sqlite3
检查系统需求:
bashcd application symfony check:requirements
数据库设置(数据库设计为可丢弃,不保证迁移兼容性):
bashphp bin/console doctrine:database:drop --force php bin/console doctrine:schema:create
启动服务器:
bashsymfony server:start --port=8001 --no-tls --allow-http
调试模式:
bashXDEBUG_SESSION=1 symfony server:start --port=8001 --no-tls --allow-http
若需发布到自定义仓库(Docker Hub或Git Container Registry),需配置以下密钥(参考GitHub加密密钥文档):
DOCKERHUB_OWNERDOCKERHUB_TOKENDOCKERHUB_USERNAMEGH_OWNER!Docker多架构发布状态
Docker Compose示例:
yamlversion: '3' services: moodle: image: moodlehq/matrixsynapse_mock ports: - "8001:80"
测试环境变量配置:
bashexport MOODLE_DOCKER_WEB_PORT=8080
模拟API请求:
bashcurl -X POST http://localhost:8001/serverID/backoffice/reset
通过以上配置和使用方法,用户可以快速部署和使用Matrix Synapse模拟服务器,确保应用的功能测试更加高效和可靠。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务