
couchbase/mobile-testkit该Docker镜像用于部署Couchbase Mobile后端环境,并在其上执行功能测试和性能测试。支持本地迭代开发、Jenkins CI/CD测试执行、网络流量捕获分析以及自定义镜像构建,为Couchbase Mobile相关组件的测试提供完整环境。
clean.sh清除挂载卷中的陈旧状态(如.pyc文件、测试缓存等)docker/create_cluster.py所需依赖,需重新执行source setup.sh:
bash$ source setup.sh
通过挂载本地开发目录到容器,实现代码实时修改与测试执行。
使用"docker in docker"模式
本地机器执行(挂载本地目录和配置文件):
bash$ docker run --privileged -it --network=cbl --name mobile-testkit \ -v $(pwd):/opt/mobile-testkit \ -v $(pwd)/resources/pool.json:/opt/mobile-testkit/resources/pool.json \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ couchbase/mobile-testkit /bin/bash
远程机器执行(无需挂载本地目录,手动复制配置文件):
bashdocker run --privileged -it --network=cbl --name mobile-testkit \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ couchbase/mobile-testkit /bin/bash
之后需手动将主机的pool.json文件复制到容器中。
Centos7主机 workaround(解决libltdl.so.7缺失错误):
bashdocker run ... -v /usr/lib64/libltdl.so.7:/usr/lib64/libltdl.so.7 ...
容器内操作步骤
进入容器后执行以下命令配置测试环境:
bash# 复制并修改ansible配置 cp ansible.cfg.example ansible.cfg sed -i 's/remote_user = vagrant/remote_user = root/' ansible.cfg # 生成集群配置 python libraries/utilities/generate_clusters_from_pool.py --use-docker # 执行测试(示例) pytest -s --mode=cc --server-version=4.6.1 --sync-gateway-version=1.4.0.2-3 testsuites/syncgateway/functional/tests
通过entrypoint.sh执行预设测试套件(适用于CI/CD流程):
cc/no xattrs模式:
bashdocker run --rm --privileged --network=cbl --name mobile-testkit \ -v hosts.json:/opt/mobile-testkit/hosts.json \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ mobile-testkit-local ./entrypoint.sh master base_cc 'pytest -s --sequoia --server-version=4.6.2 --sync-gateway-version=1.4.1-3 testsuites/functional/tests/'
在运行Docker的Linux主机上捕获测试相关网络流量:
bash# 安装tcpdump $ yum install -y tcpdump # 捕获docker0接口4984端口流量并保存 $ tcpdump -i docker0 -w /tmp/docker.pcap port 4984 ^C # 按Ctrl+C停止捕获
将/tmp/docker.pcap文件传输到OSX主机,使用Wireshark打开即可分析测试套件与Sync Gateway之间的HTTP流量。
若Docker Hub上的镜像不是最新版本,可本地重建:
bash$ cd docker/mobile-testkit $ docker build -t mobile-testkit-dev .
OSX主机上编译:
bash$ ./build.sh && rm -f sync_gateway && GOOS=linux GOARCH=amd64 go build -v github.com/couchbase/sync_gateway && cp sync_gateway /tmp/cbl.1-sg/sync_gateway/
容器内部署:
bash$ cd /home/sync_gateway && systemctl stop sync_gateway && \ rm -f /opt/couchbase-sync-gateway/bin/sync_gateway && \ cp sync_gateway /opt/couchbase-sync-gateway/bin/sync_gateway && \ systemctl restart sync_gateway





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