这个五月,自动化圈的搜索热词密集程度有点超出预期。从 pytest、Appium 到工控、UDS 诊断,再到影刀、AI 办公自动化,一堆词扎堆往眼前蹦。作为一个常年混迹在自动化测试、工业自动化和运维自动化交叉领域的人,我翻了一遍这个月的热搜词和技术社区讨论,最大的感受是:自动化正在从“单点工具”走向“全链路工程化”,工控侧和 IT 侧的自动化语言也在加速互通。
这篇“大事速览”不是新闻联播式的官方盘点,而是从实操视角出发,把 5 月自动化及工控领域最值得关注的方向、工具、落地经验和常见坑重新捋了一遍。无论你是做 PLC 和汽车电子的工控工程师,还是写 pytest、Ansible 的开发运维,这篇内容里应该都能找到对你有用的线索。
1. 五月自动化圈到底在聊什么
先把这个月的高频关键词摊开看,你会发现它们其实分属三条完全不同的技术线:工业控制、软件测试自动化、运维与办公自动化。可它们又在同一时间段集中爆发,背后一定有些共同信号值得琢磨。
1.1 从热搜关键词看趋势
我随手整理了一下这个月刷屏频率比较高的词,大概分成了三类。你不用把它们当成严格的分类标准,重点是看关键词背后的需求方向。
| 方向 | 代表性热词 | 我理解的潜台词 |
|---|---|---|
| 软件测试自动化 | pytest、appium、playwright、maestro、接口自动化、uds自动化测试 | 测试团队在从手工点点点转向平台化、数据驱动、AI 辅助 |
| 运维与系统自动化 | ansible、网络设备自动化运维脚本、windows自动化、ios自动化 | 运维工程师在批量处理重复配置,网络设备成了新的自动化主战场 |
| 工控与办公自动化 | 工控、非标自动化、canoe自动化读取did、影刀、ai+自动化办公 | 工业场景开始大量引入数字化手段,RPA 与 AI 结合解决非结构化数据处理 |
这几个方向能不能用一个共同逻辑串起来?我觉得可以——“自动化”这个词正在从动词变成形容词。以前我们说“写个脚本自动化一下”,现在讨论的是“这套体系是不是自动化的”。工具链、平台、AI 能力、数据闭环成了新一轮竞争的焦点。
1.2 为什么五月份值得单独拿出来说
可能有人会问:月度速览这种东西是不是有点水?我的看法是,五月份在自动化领域确实有它的特殊性。
一方面,很多企业和团队在年中做第一轮项目复盘,该踩的坑上半年基本踩完了,该总结的经验也到了沉淀期。你会看到大量“上半年实践复盘”类的文章和技术分享,这些内容比年底的宏大叙事实在得多。
另一方面,工具版本的迭代通常会集中在春夏之交。pytest、Playwright、Ansible 这些活跃项目都有较密集的版本发布,新特性、新插件一批一批往外冒。如果你关注的是“怎么用”而不是“怎么吹”,五月恰恰是信息密度最高的时段。
再加上不少程序员和工程师会在年中考虑换赛道,社区里“自动化测试面试题”“接口自动化框架怎么搭”“工控人怎么转 IT”这类内容就会集中冒出来。所以这篇速览也带有一定的求职备战参考价值。
2. 工控方向:非标自动化与汽车电子总线自动化
先说工控,因为这是标题里最显眼的部分。这个月工控相关的热词里,“非标自动化”和“canoe 自动化读取 did”特别显眼。前者代表着传统制造业的设备升级需求,后者代表着汽车电子研发测试中的高频痛点。
2.1 CANoe 自动化读取 DID:为什么大家都在搜这个
做过汽车电子测试的人都知道,DID(Data Identifier)是 UDS 诊断协议里的数据标识符。想读取某个 ECU 里的 VIN 号、软件版本号、标定数据,靠的就是 DID。而 CANoe 作为 Vector 家的老牌总线开发测试工具,几乎是汽车电子工程师的标配。
“CANoe 自动化读取 DID”这个搜索词背后,其实是两个层面的需求叠加。
第一层是“读 DID”本身。UDS 诊断里读取 DID 用的服务是 0x22(ReadDataByIdentifier),请求格式很简单:0x22 + DID(两个字节)。比如想读 ECU 的软件版本,DID 可能是 0xF187。但实际项目里,一个 ECU 往往有几十上百个 DID,靠手工在诊断控制台里一个个点,效率极低。
第二层是“自动化”。测试工程师真正想要的是一键遍历所有 DID、自动解析响应、自动生成测试报告。这就需要用 CAPL 脚本或者 CANoe 的 XML Test Module 节点来做。
我见过不少人卡在使用 CAPL 通过诊断服务发送请求,却拿不到响应数据。核心问题通常是诊断请求/响应的交互方式没配对。在 CANoe 的 CAN 通道上,诊断请求一般通过 Network-Based 方式发送,用DiagSetParameter、DiagSendRequest这类函数;而响应事件的捕获则需要把诊断层和 CAPL 的on DiagResponse事件绑定起来。
下面是一个简化思路的 CAPL 示例框架:
on start { // 初始化诊断请求对象 diagRequest req = diagGetObject("MyECU", "ReadDataByIdentifier"); diagSetParameter(req, "subFunction", 0x22); diagSetParameter(req, "dataIdentifier", 0xF187); diagSendRequest(req); } on diagResponse MyECU::ReadDataByIdentifier { // 在这个事件里解析响应 byte dataArray[8]; diagGetParameterArray(this, "dataIdentifier", dataArray); write("DID value: %02x %02x", dataArray[0], dataArray[1]); }这个框架看起来简单,实际项目里比这复杂得多。DID 表往往要维护在 Excel 或者 CSV 里,脚本要循环读取、判断响应状态。而且 CANoe 仿真节点的调度模式、诊断服务是否被 ECU 正确支持,都会影响结果。我的一个建议是:在写自动化之前,先用诊断控制台手动验证你要读的 DID 能够正常通信,再上 CAPL。手工都读不出来的 DID,脚本只会帮你更快地确认失败。
2.2 非标自动化:从“造一台机器”到“做一个数据节点”
非标自动化这个词,传统意义上指的是针对特定工艺定制的自动化设备,比如流水线上的组装机、检测机、焊接专机。这个月它频繁出现在热搜里,我认为不是因为非标设备本身变了,而是非标设备的数据环境变了。
过去做一台非标设备,机械结构、气动元件、PLC 程序、触摸屏界面是核心交付物。客户关注节拍、良率、稳定性。而现在越来越多的客户会问三个新问题:设备数据能不能上传 MES?能不能跟生产管理系统做对接?报警信息能不能推送?这就逼着非标自动化团队在 PLC 程序之外,还要考虑通信协议和数据格式。
最常见的数据联通方案有两种。一种是走 OPC UA,把 PLC 里的变量映射成标准信息模型;另一种是走 MQTT,设备端用网关采集数据,上抛到边缘服务器或工业互联网平台。从我个人经验看,OPC UA 适合工厂内部局域网环境,实时性和信息模型完备性都更好;MQTT 适合跨车间、跨厂区的数据汇聚,部署更轻便,但实时性需要根据网络环境谨慎评估。
做非标自动化的朋友,不管你是电气工程师还是上位机开发,五月份这个节点特别适合做的事是:把已有设备的通信协议文档整理一遍。很多项目的痛点是设备早就验收了,但协议文档早就丢了。等到客户提数据对接需求,又要重新逆向报文,极其痛苦。
2.3 工控与 IT 融合:OT 设备的“可编程性”在提高
另一个趋势也值得在速览里提一句:工控侧的设备正在变得越来越“可编程”。产线上的 PLC 网关、工业相机、扫码枪、传感器,很多都开始支持开放的 SDK 和 API 接口。这意味着传统的 IT 自动化工具(Python 脚本、Node-RED、Ansible)也开始能直接操作 OT 设备。
比如某些工业相机,产品本身就提供 Python SDK。你可以用 Python 写视觉定位、读取检测结果、触发 PLC 信号,整个闭环已经不需要额外的“中间人”。又比如有些支持 OPC UA 的 PLC,Python 端的opcua库可以直接读写节点数据。这些能力配合 pytest、自动化测试框架,甚至可以做到对设备固件的自动化回归测试。
所以如果你发现这个月“工控”和“自动化测试”两个关键词经常同时出现,不必奇怪。制造业软件化的过程,本质上就是把传统设备改造成软件系统的一部分。这种趋势对从业者的影响是:懂 IT 协议的工控工程师,或者懂工业协议的开发者,未来在项目中的话语权会越来越高。
3. 软件测试自动化:pytest、Playwright 与接口自动化的集中爆发
这一块是这个月热词密度最高的区域。pytest 自动化测试框架、playwright 自动化框架、appium 自动化测试、maestro 自动化教学视频、java 接口自动化测试框架……搜索量全线拉满。我的判断是,测试开发这个岗位已经彻底从“会写脚本”进化到了“搭建框架、整合生态、服务业务”的阶段。
3.1 pytest:测试圈子里的基建工程
pytest 早就不是那个“比 unittest 好用一点”的小工具了。这个月围绕 pytest 的热度,集中在插件的工程化组合上。
让我列一个我实际项目中比较顺手的组合:
pytest + pytest-html / allure-pytest + pytest-xdist + pytest-rerunfailures + pytest-mock- pytest-xdist 搞定用例并行执行,尤其是接口自动化场景下,几十个用例并行跑能省一半时间。
- pytest-rerunfailures 处理不稳定用例,但要慎用。重试机制用多了会掩盖真实缺陷,建议只对网络超时或等待类问题开启。
- pytest-mock 用来做单元测试的依赖隔离,模拟外部接口调用。
pytest 的 fixture 机制是核心,scope 参数决定了 fixture 的生命周期。很多测试新手容易把 fixture 写成“函数内共享”而忽略了 session 级别的前置操作。比如一个登录态的 token,如果每个用例都重新登录,效率很差;如果直接做成scope="session"的 fixture,整个测试周期只登录一次,效率就会好很多。
在工程实践上,我习惯把用例数据放到 Excel、YAML 或者 JSON 里,用 pytest 的参数化去驱动。参数化除了@pytest.mark.parametrize,还可以通过自定义 hook 读取外部数据源。为了让测试报告直观,Allure 报告是刚需,里面不仅能看每条用例的通过失败,还能挂接截图、请求日志和关键断言。这个月在社区里讨论度最高的就是“如何把接口返回数据自动挂到 Allure 报告里”,核心做法就是在 fixture 的 yield 前后收集 request 和 response,通过 allure.attach 挂上去。
3.2 Playwright 与 UI 自动化:为什么它能压过 Selenium
Playwright 这个月在搜索词里频繁出现,我认为有一个很直接的原因:它解决了很多 Selenium 时代的老大难问题。
- 自动等待机制。不再需要手写
sleep和WebDriverWait,Playwright 在元素操作前会自动等待元素可交互。 - 影子 DOM 原生支持。过去用 Selenium 碰上 Shadow DOM 要写复杂的 JS 执行器,现在 Playwright 可以直接穿透。
- 多浏览器、多设备模拟。桌面端 Chromium、Firefox、WebKit,移动端模拟都内置支持。
从项目落地的角度,Playwright 特别适合端到端测试和中后台系统的回归测试。它的代码生成器可以先录一个脚本,再手改成结构化用例,上手成本极低。不过要注意,UI 自动化最忌讳的是把全部希望寄托在一个框架上。产品页面频繁变化、元素不可靠、数据环境污染,这些问题不是换 Playwright 就能解决的。
UI 自动化项目的健康度,我建议用一个指标衡量:自动化用例的稳定性是否长期超过 90%。低于这条线,团队会开始不信赖自动化结果,用例会越来越没人维护。与其不断追加新用例,不如先解决稳定性问题。
3.3 接口自动化、移动自动化与 AI 测试的新思路
接口自动化是这个月很多测试开发分享的主题。Java 技术栈的朋友问得最多的是框架选型,我给的答案通常是把RestAssured或HttpClient封装在自己的测试框架里,配合 TestNG/JUnit 做断言管理,再用 Maven/Gradle 做依赖管理。
如果项目是 Python 技术栈,requests结合 pytest 就是最轻便的方案。把接口地址、参数、预期结果放到 YAML 文件里,通过@pytest.mark.parametrize动态加载,既能应对接口数量的快速增长,也能让不懂代码的测试人员参与用例维护。这才是接口自动化框架设计的核心目标。
移动自动化方面,Appium 在搜索热词里依然坚挺,但它的“重”也是众所周知的。Appium 需要本地服务、依赖一堆驱动和权限配置,跑在真实设备上很容易遇到不稳定问题。相比之下,Maestro 的轻量式移动自动化在社区里讨论度在上升,它把流程定义成 YAML 文件,语法简洁,上手门槛低,特别适合做冒烟测试和核心路径回归。
AI 辅助自动化测试也在五月升温。现在一些工具已经尝试用大模型生成测试用例、分析失败原因、自动补断言。我的态度是:AI 短期内替代不了测试人员,但能明显降低测试用例的编写成本。把它当成一个“给测试团队的初级成员当副驾”的工具,价值是能落地的。比如用大模型把接口文档转换成 pytest 用例,再人工审查,比手写快 3 到 5 倍是真实存在的效果。
4. 运维与网络自动化:Ansible 和网络设备脚本的实操视角
运维自动化相关的热词在这个月同样不少,Ansible 自动化运维、网络设备自动化运维脚本、Windows 自动化都出现在搜索列表里。这些词的背后,是大量运维工程师在消化一个问题:如何把重复的劳动变成模板和流程。
4.1 Ansible:从“能跑 playbook”到“能维护整套体系”
Ansible 的优点一句话就能概括:用 SSH 就能干活,不需要在目标机器上安装 agent。但实际项目中,真正拉开差距的不是会不会写 playbook,而是能不能维护一套高质量的角色体系。
我见过不少团队把几十个 playbook 堆在一个目录里,里面的 task 重复度低得可怜,变量到处硬编码。这种项目跑一次两次没问题,一旦管理的机器上百台,绝对是灾难。
一些值得注意的实践细节:
- Inventory 一定要分组清晰。按业务、环境、角色划分主机组,变量使用层次结构覆盖,别把线上配置写到 playbook 中间。
- 优先使用 Ansible Galaxy 的角色结构。roles 的默认目录结构可以让 tasks、handlers、templates、vars 分层管理,复用性高。
- 敏感信息用 Ansible Vault 加密。密钥、口令、私钥不要直接写在文件里。
- 用 ansible-lint 做静态检查。就像写 Python 用 flake8 一样,它可以在跑起来之前发现很多低级错误。
幂等性也是 Ansible 里一个非常重要的概念。好的 playbook 无论执行一遍还是十遍,系统最终状态是一致的。很多初学者写 shell 命令时,没有结合creates、changed_when这类参数,导致每次执行都报 changed。这在审计和排查时会带来很大噪音。
4.2 网络设备自动化脚本的典型场景
“网络设备自动化运维脚本”这个热词的含义比较广,涉及路由器、交换机、防火墙的配置备份、批量配置下发、状态巡检等。对于网络工程师来说,最常用的自动化方式是 SSH 到设备执行命令。
这里推荐两个层次的工具。如果你是 Python 工程师,Netmiko是最容易上手的库,它统一了各种厂商设备的 SSH 交互方式。如果你想更进一步,可以用NAPALM,它把配置获取和配置下发抽象成了两个简单方法,适合做合规检查和批量变更。
一个最基础也最实用的场景是设备配置定期备份。大致流程是:用 Netmiko 连接设备 → 执行 show 命令 → 把输出保存到本地文件 → 推送到 Git 仓库。这样每次配置变更都能看到 diff,回滚也有据可依。
下面这段是我常用来给大家做起步参考的代码:
from netmiko import ConnectHandler device = { "device_type": "cisco_ios", "host": "192.168.100.1", "username": "admin", "password": "password", "secret": "enable_password", } with ConnectHandler(**device) as conn: conn.enable() output = conn.send_command("show running-config") with open("backup/192.168.100.1.cfg", "w", encoding="utf-8") as f: f.write(output)这段代码看着简单,但真正放到生产环境里,要补的东西很多:多厂商设备适配、并发连接控制、连接失败重试、配置脱敏、告警通知。可以把它当作一个起点,而不是终点。
4.3 运维自动化与测试自动化的共通点
我为什么把运维和测试放在同一篇速览里讲?因为这两个领域现在越来越像了。运维自动化也讲究用例、断言和报告;测试自动化也讲究环境一致性、可重复、可回滚。Ansible 的 playbook 其实就像测试用例集,它的 handler 像断言,它的报告输出就像测试报告。而 pytest 和 Ansible 可以组合使用:用 pytest 编写验证脚本,检查配置变更后的系统状态是否恢复了预期。
这个月很多人搜“网络设备自动化运维脚本”,本质上是想从“纯手工敲命令”过渡到“用代码管理网络”。我的建议是不要一上来就搞特别宏大的自动化平台。先从“备份配置”这种高频、低风险、收益明显的场景切入,跑顺了之后再加配置下发和合规检查。
5. RPA 与 AI 办公自动化:影刀与智能办公的组合打法
办公自动化相关的热词在这个月同样活跃,影刀自动化扩展程序下载、AI+自动化办公、Windows 自动化、iOS 自动化都在列表里。RPA 这个词这几年被反复提起,到今年已经脱离“模拟按键”的原始阶段,进入 AI 增强的新阶段了。
5.1 影刀为什么会被频繁搜索
影刀是我在国内 RPA 产品里看到比较多、口碑也比较扎实的一款。它最大的特点是编辑器对中文用户友好,流程录制和组件封装做得不错,普通办公用户也能绕开代码去做一些基础的自动化流程。
做 RPA 选型的时候,我建议从三个方面考察:指令稳定性、生态扩展和市场普及度。影刀在这方面比较占优,它的应用市场里有大量现成的组件,比如 Excel 处理、邮件操作、网页自动化、ERP 数据写入,能显著减少从头开发的工作量。
但这里必须提醒一句:RPA 不是万能的。它的自动化本质是对界面元素进行操作,所以它强依赖界面稳定性。任何频繁改版的系统,都是 RPA 的噩梦。上 RPA 之前,应当先判断业务流程适不适合自动化,比如页面是否稳定、操作是否有固定规则、异常分支是否可控。
5.2 AI+自动化办公:解决“半结构化数据”难题
“AI+自动化办公”这个组合词,今年讨论热度异常高。RPA 擅长处理确定流程,但对 PDF 里的表格、邮件里的非固定话术、扫描件上的印章位置这类数据,过去要么需要人工二次确认,要么直接放弃自动化。现在有了大模型的支持,这类半结构化数据也能被自动解析了。
举一个我最近做的例子:业务人员每天会收到各类供应商发来的报价单,格式各不相同,内容包含产品名、规格、价格、有效期。过去要么人工录入 ERP,要么写死正则去匹配。现在用 RPA 抓取邮件附件,用大模型解析关键字段并输出 JSON,再回填到 ERP 草稿。整个流程节省的人力非常可观。
但落地时不要天真地以为“RPA 几个指令加一个 API 调用就完事了”。大模型的输出有概率性错误,所以流程里必须加入有效的人机协同节点。比如自动解析完成后,弹出一个确认框让业务人员快速核对。完全的“无人值守”反而风险更高。成熟的 AI+RPA 方案,核心是“自动化优先,人来兜底”。
5.3 Windows 与 iOS 自动化:通用办公场景的补充
Windows 自动化和 iOS 自动化也频繁出现在热词里。Windows 自动化最常见的场景包括桌面软件的数据录入、文件批量重命名、定时执行计划任务;iOS 自动化则更多用于真机 App 的冒烟测试或者重复操作。
工具层面,Windows 上可以用 PowerShell 脚本、AutoHotkey、或者 RPA 产品的 Windows 录制器。iOS 端裸机自动化相对麻烦,通常依赖 Appium 或私有 API,稳定性会受到系统版本影响。如果你的主要诉求是 iOS 端的自动化测试,我更推荐在稳定版本的测试机上跑,并且一定要做好设备管理,避免多台设备同时连接时发生冲突。
这一块的共同点是:自动化的收益和流程的重复度成正比。在做任何办公自动化之前,先统计一下这个操作每天要花多少时间。如果一条流程每天只要 5 分钟,又不再增长,那就没必要用一整天去自动化它。把投入产出比算清楚,比掌握任何工具都重要。
6. 五月实操复盘:我踩过的坑和排查技巧
既然是“速览”,最后还是回到实操。这个月我在带项目的过程中,也在不同技术方向里趟了几个坑,顺手整理成几个小技巧。如果你刚好在类似问题上卡住,可以参考一下。
6.1 自动化测试稳定性问题排查思路
| 症状 | 常见原因 | 排查与解决思路 |
|---|---|---|
| 用例偶发失败,重试后就通过 | 元素等待时间不足、环境数据不一致 | 先看失败时刻的截图和日志,区分是同步问题还是数据污染 |
| 接口自动化返回结果和手工请求不一致 | 请求头缺默认参数、token 过期 | 在 fixture 里统一处理请求头,token 用 session 作用域刷新 |
| UI 自动化在 CI 上比本地慢 | CI 机器性能、无头浏览器渲染差异 | 手动跑一次带录制,观察是网络慢还是渲染慢 |
| 多设备并行执行 iOS 自动化时冲突 | 多个设备连接同一台 Mac 导致端口冲突 | 用设备管理工具隔离 UDID,并为每个 worker 分配独立端口 |
6.2 工控数据对接的排查心得
在 CANoe 里读 DID 遇到最多的问题,是诊断响应的解析失败。很多人以为是脚本写法错了,实际是 ECU 的会话没有切换。UDS 诊断里,普通功能一般只能在默认会话执行,有些 DID 必须切到扩展会话或编程会话才能读取。排查路径建议是:
- 检查诊断控制台里的会话状态;
- 用手册确认 DID 对应的会话权限;
- 检查是否在读取前发送了正确的会话切换请求(0x10 服务);
- 确认发送的 DID 字节序是否正确,有些 ECU 是高字节在前,有些是低字节在前。
这类问题的排查思路放到非标自动化场景也一样适用——通信不上,先查物理层连接,再查协议配置,最后才查应用层逻辑。不要一上来就怀疑程序写得不对。
6.3 运维自动化回滚的教训
Ansible 和网络脚本不止一次提醒过我:自动化跑得再顺,也要留回滚路径。比如批量下发配置时,如果只执行了下发命令,没有备份 old config,设备出了问题后的恢复会非常痛苦。我在自己的项目里已经养成了习惯:变更前先自动备份,变更后自动做关键状态校验,校验失败立即告警。这跟测试自动化的断言思想其实没有任何区别。
最后再分享一点个人体会
五月份看下来,自动化、工控、测试、运维这些领域的热词虽然各不相同,但底层逻辑越来越统一:把可重复的、有规则的事情交给机器和脚本,把人留在判断和决策层。作为一个长期折腾自动化的人,我最大的经验不是会很多工具,而是能分辨哪些流程值得自动化、哪些流程强行自动化是给自己挖坑。
这个月如果你也正好准备启动一个新自动化项目,我建议你先别急着选工具,先花半天把业务流程的具体步骤画出来,标出重复度、异常率和价值量。磨刀不误砍柴工,这一步做完,后面选框架、写脚本、做调试都会顺畅很多。工具可以慢慢学,做事的思路才是底层的核心竞争力。