【实战演练】快速获取容器VIPs,解决集群自动化测试难题

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 尝试使用 Docker 内部的服务发现功能来识别在 Docker Swarm 集群上部署的 Docker 服务中容器的VIPs ,但是一直没有成功。经过反复尝试,终于找到一种快速、便捷的方法来查找容器的VIPs。

项目背景介绍

要想使用容器集群来启动自动化测试,那么我们就必须要了解容器的 VIPs 。文章作者 Marcos Tenrero 一直在尝试使用 Docker 内部的服务发现功能来识别在 Docker Swarm 集群上部署的 Docker 服务中容器的VIPs ,但是一直没有成功。经过反复尝试我终于找到一种快速、便捷的方法来查找容器的VIPs。

这个项目上使用的是 Apache Jmeter 压力测试工具,所以我们需要将工作节点列表作为参数传递,以便它可以与分布式负载测试环境一起工作。

第一次尝试:Docker 内部的DNS服务发现

Docker使用DNS服务器来保持注册列表和其容器的更新。

实验需要用到下列物品:

  • 两台服务器

    • 一台 (jd_master)只有一个副本的Master;
    • 另一台服务名称(jd_slave_) 下有多个副本的Workers(Slaves);
  • Docker compose
  • Docker swarm 集群(至少有3台机器用于Raft的一致性工作);

docker-compose.yml文件内容
image

image

尝试从jd_master容器中用“dig jd_slave”命令将jd_slave作为目标向Docker DNS服务器发出查询请求,但是它只返还了一个自动的负载均衡IP来指向活动的jd_slave容器。

image

所以这种方法不符合我们的需求。

第二次尝试:研究Docker覆盖网络

在相同的情况下,我使用“less /etc/hosts”命令进行查询,希望在覆盖网络当中获得容器的VIPs。

image
image
image
image

这个尝试是成功的!

第三次尝试:设计外部的服务发现

我们不仅需要服务发现功能,还需要知道容器的状态:

  • 容器镜像名称;
  • 容器测试的执行状态:等待测试/测试/完成;
  • 容器健康检测和监视;
  • 根据测试执行状态来测试观察者和协调者;
  • 在Master上必须向docker.socket 或 docker API 发出指令;

考虑到需求因素,我们需要一个定制的服务发现来处理所有需求。

image

Flight Controller

默认情况下,在Flight Controller模式中启动自动化测试队列。

它将在一个预先定义的端口上监听HTTP REST请求,所有容器都要调用这个请求来加入测试集群。

从现在起, Flight Controller 将管理和监视所有容器的生命周期和状态。密切关注其健康状况来维持最新的注册表。

WORKER CONTAINER (Alpine)

一旦控制器启动,Flight Controller将作为第一个运行脚本来公布其VIP:

/etc/hosts —> VIP and CONTAINER NAME

在同一覆盖网络中的任何容器都可以访问VIP,可以应用测试重试策略,以便在出现故障时重试测试。

MASTER CONTAINER

同Worker Container一样,但使用不同的标签。

目录
相关文章
|
19天前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
14天前
|
Web App开发 前端开发 JavaScript
Playwright极速UI自动化实战指南
Playwright告别Selenium痛点,以智能等待、强大选择器、网络拦截与多设备模拟四大利器,提升自动化效率与稳定性。本文通过实战代码详解其加速秘籍,助你构建高效、可靠的UI测试方案。
|
2月前
|
人工智能 测试技术 芯片
AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
本文介绍了使用四块Framework主板构建AI推理集群的过程,并基于AMD Ryzen AI Max+ 395处理器进行大语言模型推理性能测试,重点评估其并行推理能力及集群表现。
195 0
AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
|
2月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
2月前
|
人工智能 缓存 测试技术
Playwright进阶指南 (6) | 自动化测试实战
2025企业级测试解决方案全面解析:从单元测试到千级并发,构建高可用测试体系。结合Playwright智能工具,解决传统测试维护成本高、环境依赖强、执行效率低等痛点,提升测试成功率,内容从测试架构设计、电商系统实战框架、高级测试策略、Docker化部署、CI/CD集成及AI测试应用,助力测试工程师掌握前沿技术,打造高效稳定的测试流程。
Playwright进阶指南 (6) | 自动化测试实战
|
25天前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
275 11
|
2月前
|
传感器 人工智能 JavaScript
Playwright实战:写UI自动化脚本,速度直接起飞
简介: 测试工程师老王因UI自动化问题深夜奋战,反映出传统测试工具的局限性。微软开源的Playwright凭借智能等待、跨域操作、移动端模拟与网络拦截等强大功能,正迅速取代Selenium,成为新一代自动化测试标准。其稳定高效的设计显著降低维护成本,助力企业构建高质量测试流程。
|
3月前
|
供应链 搜索推荐 安全
淘宝/京东/亚马逊API实战:中小商家的自动化生存指南
电商API是连接电商平台、商家、支付与物流系统的技术桥梁,具备商品管理、订单处理、用户服务、营销支持等功能,助力业务自动化与数据驱动决策,成为电商生态中提升效率与创新的关键基础设施。
|
3月前
|
人工智能 JavaScript 前端开发
Playwright自动化测试系列课(5) | ​​调试神器实战:Trace Viewer 录屏分析 + AI 辅助定位修复​
Playwright 的 Trace Viewer 提供录屏级追踪,还原测试全过程,帮助定位偶发故障。结合 AI 实现自动修复,大幅提升调试效率,成为自动化测试利器。
|
3月前
|
安全 数据库 数据安全/隐私保护
Python办公自动化实战:手把手教你打造智能邮件发送工具
本文介绍如何使用Python的smtplib和email库构建智能邮件系统,支持图文混排、多附件及多收件人邮件自动发送。通过实战案例与代码详解,帮助读者快速实现办公场景中的邮件自动化需求。
278 0