新闻详情

新闻详情

首页 / 资讯中心 / 详情

移动云测试平台选型与实战:设备池、脚本兼容与JMeter压测

发布时间:2026/10/1 19:30:16来源:尧图网络
移动云测试平台选型与实战:设备池、脚本兼容与JMeter压测
移动端的测试干久了会发现最耗时间的往往不是写用例而是等设备。手里就那几台机器要覆盖几十个机型、十几个系统版本还要处理各种厂商定制 ROM 的差异一条用例在 A 机上跑得好好的换到 B 机就卡在启动页。移动云测试这条路线本质上是用云端共享的设备池把设备数量这个瓶颈拆掉而我这次花了两周时间把几类主流云测试平台从设备覆盖、脚本兼容、报告能力到成本模型整体过了一遍中间还顺带把后端一套跑在单节点 k8s 上的若依微服务整套环境迁到了阿里云 ECS 上然后用配套的 JMeter 脚本做了高并发验证。这篇文章就是把这整套流程和我对各家云测试平台的实际体验写清楚从选型逻辑到踩坑记录都有不管你是刚接触移动云测试的新手还是已经在用某个云测试平台但总觉得跑得不够顺的老手应该都能捞到点可复用的东西。1. 移动云测试平台到底在解决什么问题1.1 真机碎片化本地设备墙为什么撑不住先说我为什么要去看云测试平台。移动端和 Web 最大的区别在于运行环境不可控Web 端你还能靠浏览器版本矩阵收敛移动端是真的收不住。光是屏幕这一项从 5.5 英寸到 7 英寸以上的折叠屏宽高比、DPR、刘海和挖孔位置全都不一样UI 元素错位、按钮被遮挡这类问题只有在真机上才看得出来。再往上叠系统版本和厂商定制Android 各家 ROM 对后台进程、通知权限、自启动的处理策略差别很大同一个 App 在两家厂商的机器上表现完全可能是两回事尤其是长连接保活、定时任务唤醒这类功能。本地自建真机墙听起来是个解法我自己也搭过。采购、刷机、定期校准、装自动化代理、维护 USB Hub 供电一套下来隐性成本非常高。更麻烦的是复用率低——大部分时间机器在待机只有发版前那几天会满负荷设备利用率可能连 20% 都不到。而且设备一旦被某个人借走做手工回归自动化那边就只能排队。云测试平台做的事情很直接把这些机器放到云上统一调度你需要的时候按小时或者按次租跑完就还回去设备折旧、充电、系统升级这些事全都不在你这边的账上。注意云测平台的设备池不等于你自己那台主力测试机的镜像。同一个机型不同平台装的系统小版本、是否 root、是否预装厂商定制服务都可能不一样选型阶段一定要拿同一个 APK 在两家平台上分别跑一遍看差异出在哪。还有一个容易被忽略的点是数据的可追溯性。本地真机跑出来的结果截图、日志、性能数据往往散落在不同人的电脑里出了问题回头翻证据很痛苦。云测试平台把每次执行的视频、截图、logcat、性能曲线都归档在一个 URL 上跟 CI 流水号绑定后面查回归特别好使。这一点在团队规模变大之后价值会急剧放大因为它把测试证据从个人资产变成了团队资产。1.2 三类平台的能力边界兼容性、自动化、性能现在市面上叫得出名字的云测试平台粗分下来大概三类能力边界差得很远混着用会很难受。第一类是真机租用型核心卖点是你能远程操作一台真机。这种平台设备型号往往很全覆盖到最新发布的旗舰机和老旧低端机适合做手工验证、UI 走查、偶现问题复现。它的自动化能力通常是附属的支持投屏和控制但要做大规模批量用例编排就比较吃力。第二类是自动化托管型围绕脚本跑批做优化。你上传 APK 和测试包选设备组合它负责分发执行、汇总报告核心指标是并发设备数、单轮执行的稳定性和报告的可读性。这类平台对 Appium、Airtest、Espresso 这些框架的支持深度是选型关键有的平台只支持自己那套 DSL迁移成本就很高。第三类是一站式质量平台把兼容性测试、性能测试、安全扫描、甚至包的静态检测都揉在一起。像 aits 这类质量测试平台走的就是这个路子一个入口下去能拿到多维度的质量报告。好处是省事坏处是每一块都不会做得特别深遇到特别细的场景还是得自己补工具链。我的建议是别指望一个平台通吃。兼容性用真机租用型 自动化托管型组合安全那块单独接工具性能测试如果涉及后端容量验证那更是要自己搭压测环境比如用 JMeter 打服务端移动端的云测平台更多负责验证客户端在这种压力下的表现。2. 横向对比挑平台时我只看这五个硬指标2.1 设备池的覆盖面与调度机制设备覆盖面不是单纯看机型数量厂商列个1000 机型意义不大关键看三点你目标用户集中的机型有没有、系统版本跨度够不够、有没有低端机兜底。我一般会从线上埋点里拉一份机型 TOP 50再对照平台的设备清单看命中率。如果命中率低于 80%那这个平台对你的项目就属于锦上添花而不是主力。调度机制更值得关注。有些平台是真独占你抢到一台机器就是你的跑多久都行但队列长有些是分时复用一台机器上多个任务排队跑成本低但高峰时段会等很久。我实测过一个平台在晚八点这种高峰期排队时间能到二三十分钟CI 里挂着就非常难受。所以选型的时候一定要在你实际的执行时段去测调度延迟别在工作日上午十点测那个时候大家都不忙。设备健康度也是个坑。云真机被反复使用容易出现电量低自动关机、开发者选项被改、系统时间被改乱这些问题。我在两家平台上都遇到过系统时间没同步导致 App 里的时间戳校验失败的情况排查了半天才反应过来是设备的问题。靠谱的平台会有定时重置策略每次任务开始前把设备恢复到一个干净的快照状态。2.2 脚本兼容性Appium、Airtest 与自研引擎脚本这块是我踩坑最多的地方。本地跑得好好的 Appium 脚本搬到云上大概率要改原因通常有几个一是平台的设备连接方式不是标准 adb而是通过它自己的 agent 代理所以一些依赖 adb 直接调用的操作会失效二是截图和录屏机制不一样某些基于图像识别的用例Airtest 的图片匹配在不同分辨率下匹配率会掉三是权限弹窗的处理策略不同平台可能默认帮你点掉也可能完全不处理。判断兼容性好坏有个很偷懒但有效的办法拿一个包含 WebView、原生控件、多语言切换、系统弹窗的探针用例集大概二十条直接丢到平台上跑。跑完看通过率低于 90% 就说明你后面要花大量时间做适配。我自己做这套探针的时候其中一条专门用了混合开发的 H5 页面结果有个平台的 WebView 调试通道没开元素完全抓不到直接暴露出问题。实操心得把脚本里所有硬编码的等待时间sleep全部换成显式等待搬到云端之后稳定性会明显提升。云端设备负载比你本地机器高同样的操作耗时可能是本地的 1.5 到 2 倍固定 sleep 5 秒在本地够用在云上就是随机失败。另外要留意平台是否支持自定义测试框架版本。有的平台把 Appium 版本写死在镜像里你想升级到新版本都做不到而新版本恰好修了你依赖的那个 bug那就很尴尬。2.3 弱网、多网络环境与代理抓包能力弱网模拟这一项评价一个云测试平台是否专业的权重很高。真正好用的平台不只是能给你几个预设档位2G、3G、4G、丢包 10%而是能让你自定义上行下行带宽、延迟、抖动、丢包率甚至支持按时间段动态变化——因为真实的弱网不是恒定的是忽好忽坏的。我做过一个长连接重连的验证需要模拟网络反复抖动这时候预设档位就不够用必须能按脚本控制网络状态。能不能做到这件事直接决定你能验证到什么深度。抓包能力也一样平台如果不提供 HTTP(S) 代理配置入口你没法挂抓包工具那接口层面的问题就只能靠猜。2.4 报告颗粒度与失败归因能力报告这块我的判断标准很粗暴一个用例失败了我能不能在不下载任何东西的前提下光看网页就知道为什么失败。如果报告只告诉你FAILED然后给一段 logcat那等于什么都没给。理想的报告应该包含失败步骤的截图、失败时刻的视频片段、完整的 logcat 和系统日志、性能曲线CPU、内存、流量、帧率最好还能自动定位到是哪个元素没找到。再进阶一点的是报告能不能做失败聚类。同一批用例里 30 条失败如果都是因为同一个原因比如某个权限弹窗没处理平台能自动归到一起我的排查时间就从两小时变成十分钟。这个能力目前只有少数平台做得比较好。2.5 计费模型与并发调度的成本账成本这块必须算清楚不然很容易出现跑一轮花掉半个月预算的情况。常见的计费方式有三种按设备分钟、按任务次数、按包月套餐。按分钟计费看起来最灵活但你要考虑排队时间算不算——有的平台排队也计费那你高峰时段跑一轮的成本可能是平峰的两三倍。我一般会先估算每轮全量回归需要的设备分钟数。假设我有 800 条用例平均每条执行 2.5 分钟共需 2000 设备分钟。如果希望 4 小时跑完需要的并发设备数是 2000 / (4 × 60) ≈ 8.3取整 9 台。按每设备分钟 0.15 元算一轮成本大概 300 元一个月跑 10 轮就是 3000 元。这个数字拿去跟自建真机墙的折旧成本对比才有说服力。对比维度真机租用型自动化托管型一站式质量平台机型覆盖最全新机跟进快中等偏主流机型中等偏主流机型脚本兼容一般偏手工最强主流框架支持好较强但绑定自家流程弱网能力弱多数只有预设档位中到强部分支持脚本控制中等报告能力弱以录屏为主强失败归因清晰强多维度汇总计费方式按分钟/按次按设备分钟套餐制居多适合场景手工验证、问题复现批量回归、CI 集成质量看板、多维度体检3. 实操把本地脚本搬到云端跑通的全流程3.1 环境准备与设备选型策略真正开始接入之前先把三样东西准备好一份稳定的 APK最好是 release 包debug 包的调试端口和证书校验会带来额外变量、一份已经能在本地跑通的脚本集、以及一份明确的机型清单。机型清单别凭感觉写从线上数据里拉按活跃用户数排序取前 30 到 50再补上 2 到 3 台低端机作为性能底线验证比如内存 3GB 以下、CPU 核心数少的老机器。设备选型还要考虑系统版本分布。我一般会保证最低支持版本、中间版本、最新版本各有覆盖因为很多兼容性问题只出现在特定版本区间比如某个 Android 大版本改了后台服务限制导致你的推送保活策略失效。接入顺序上我建议先用一台设备跑通全流程确认上传、执行、报告下载这条链路没问题再把并发开到全量。一上来就开 20 台并发出了问题根本不知道该从哪查。3.2 脚本改造本地能跑不代表云上能跑脚本改造有几处是必改的。第一是 capabilities 里的设备标识本地你写的是具体设备名云端必须留空或者用平台提供的占位符让平台自己注入。第二是截图和文件路径云端的工作目录跟你本地完全不一样所有相对路径都要改成平台规定的目录或者用绝对路径参数化。第三是超时设置前面提过全部要放大。下面是我常用的一个 Appium capabilities 模板改造成平台无关的写法把设备相关的部分抽出来由外部注入from appium import webdriver def build_driver(platform_url, apk_path, device_nameNone): caps { platformName: Android, appium:automationName: UiAutomator2, appium:app: apk_path, appium:noReset: False, appium:fullReset: True, appium:newCommandTimeout: 300, appium:autoGrantPermissions: True, # 设备名留空由云测平台注入具体设备 appium:udid: device_name, # 云端执行时把隐式等待放大 appium:implicitTimeout: 30, } return webdriver.Remote(command_executorplatform_url, desired_capabilitiescaps)这段里newCommandTimeout调到 300 秒是有原因的。云端网络往返比你本地 USB 连接慢某些重操作比如大文件上传如果超时设置太短会莫名其妙断开会话报出来的错误还特别含糊只说什么 session 不存在很容易误判成脚本 bug。3.3 与后端联调k8s 上若依微服务迁移到阿里云 ECS 后的联测移动端云测不可能只看客户端。这次我顺带把一套跑在单节点 k8s 上的若依微服务整套环境迁到了阿里云 ECS 上迁移目标是准不停服、不丢数据迁完之后再由压测人员用配套的 JMeter 脚本验证云上环境的承载能力。这个环节和移动端云测是有交集的因为客户端的所有接口请求最终都打到这套服务上服务端要是扛不住客户端表现出来的就是各种超时、白屏、请求失败很容易被误判成客户端 bug。迁移的时候有几个点直接影响后面的联测。第一是数据一致性数据库迁移阶段如果只是简单 dump 再导入迁移窗口内的增量写入会丢所以必须是全量加增量的方式先做一次全量快照再用 binlog 追增量最后切换的那一刻只停写几秒钟。第二是服务发现的配置k8s 里的 Service 名字在 ECS 上不存在了微服务之间的调用地址全要改这块如果漏改一个联测的时候就会看到一个看似无关的接口报 500。注意迁移完成后别急着压测先做一轮功能冒烟。我在迁移后第一次联测时就遇到过注册中心的健康检查超时导致部分实例没注册进集群结果流量全打到一台机器上客户端表现是随机一部分请求特别慢。这种问题如果不先冒烟排除压测出来的数据完全没有参考价值。迁移完的第一次移动端联测我建议用云测平台跑一遍全量回归重点看两类用例一是涉及登录态、会话保持的这类对服务端的存储和网络最敏感二是涉及文件上传下载的这类能直接暴露出对象存储和带宽配置的问题。跑完把失败用例和客户端日志、服务端日志对着看很快就能定位是客户端适配问题还是服务端配置问题。3.4 JMeter 高并发压测怎么和移动端云测配合服务端压测和移动端云测是两条线但必须协同。压测人员用的 JMeter 脚本接口参数一般是从抓包里扒出来的和客户端实际发的请求会有差异比如某些请求头、签名字段、设备信息字段。如果压测脚本里这些字段是硬编码的压测通过不代表真实客户端能通过。所以我一般会要求压测脚本的关键接口参数从客户端抓包反推并且在压测进行的同时用云测平台跑一组核心用例观察客户端在服务端高负载下的表现。先算并发数。假设业务目标峰值是 2000 QPS接口平均响应时间是 200 毫秒按利特尔法则需要的并发线程数大约是 2000 × 0.2 400。考虑到实际响应时间会随负载上升而变长再留 30% 余量起手设 520 个线程比较稳妥。jmeter -n -t order_flow.jmx \ -Jthreads520 -Jrampup120 -Jduration900 \ -l result.jtl -e -o report/这里有几个参数的经验值rampup是爬坡时间别设太短120 秒把 520 个线程铺开比较接近真实流量上涨的过程设成 10 秒的话瞬间冲击很容易触发限流保护压出来的数据反而失真。duration至少 15 分钟因为很多问题连接池耗尽、内存泄漏、GC 频繁需要时间累积才会暴露。用非 GUI 模式跑GUI 模式会吃掉大量资源压出来的数据不可信。还要注意 JMeter 本身会成为瓶颈。单台压测机的线程数上限一般在 1000 到 2000 之间取决于脚本复杂度和 JVM 堆大小。超过这个量级就要上分布式压测用多台机器分担。JVM 参数建议显式设置比如-Xms4g -Xmx4g避免运行中不断扩堆造成波动。压测期间同步跑移动端云测重点观察指标是客户端侧的首屏加载时间和接口失败率。服务端 QPS 打上去了但客户端首屏从 1 秒变成 6 秒那这个容量就是虚的。这个交叉验证的过程是我认为云测平台和压测工具最有价值的配合方式。4. 安全测试与质量平台怎么串起来4.1 从 pikachu 漏洞测试平台迁移过来的测试思路安全这块很多人第一反应是这是安全团队的事但移动端的安全问题有很大一部分是客户端能直接暴露出来的。我自己练习常用的是 pikachu 漏洞测试平台它把常见的 Web 漏洞类型都做成了可操作的靶场从 SQL 注入、XSS 到文件包含、越权访问navigate 一遍之后你会对什么样的输入会引发什么样的后果形成直觉。这种直觉迁移到移动端测试上非常有用因为移动端的接口本质上也是 Web 接口只是调用方从浏览器换成了 App。具体怎么迁移我一般会把 pikachu 里练过的那几类漏洞对应到移动端 App 的接口上做验证。比如越权访问靶场里是改 URL 里的用户 ID移动端就是抓包改请求体里的 userId看能不能拿到别人的订单数据。再比如敏感信息泄露靶场里是看接口返回移动端就多了一层——看本地存储SharedPreferences、数据库、日志文件里有没有明文 token 或者用户隐私数据。注意所有安全验证必须在自己有授权的测试环境里做绝对不要拿线上环境或者别人的系统练手。靶场存在的意义就是给你一个合法、可控的练习场。移动端还有几个 Web 端不太会遇到的点值得单独验证一是本地存储加密很多 App 把 token 明文放在 SharedPreferences 里root 之后一行命令就能读出来二是组件暴露Android 的 Activity、Service、BroadcastReceiver 如果没有正确设置 exported 属性第三方应用可以直接调用三是 WebView 的 JS 桥接如果addJavascriptInterface用得不当配合 XSS 可以做到任意代码执行。这几类的验证都可以在云测平台的设备上完成因为大部分平台提供的真机是可 root 的或者至少提供了文件系统访问能力。4.2 质量测试平台与云测平台的分工aits 这类质量测试平台和移动云测试平台我觉得它们不是替代关系而是分工关系。质量测试平台的价值在于广度和看板它把包体分析、静态扫描、基础兼容性、性能基线这些东西汇总成一个分数和一堆趋势图适合给项目组和管理层看健康度。移动云测试平台的价值在于深度和可复现它能让你真正在一台具体的机器上把问题复现出来、把日志抓下来、把修复验证回去。我自己的做法是每次发版前先过一遍质量测试平台拿到一个概览看有没有明显异常的指标比如包体突然大了 5MB、崩溃率比上版高。然后针对它指出的可疑点再去云测平台上做定向验证。这样比一上来就盲目跑全量回归要省时间。另外要提醒的是质量测试平台的自动化扫描结果一定会有误报尤其是静态扫描那部分。我见过把一个正常的反射调用报成高危漏洞的也见过把一个真正的问题因为规则没覆盖而漏掉的。所以它的定位应该是提示器而不是判决书最终的判定还是要靠人在真机上验证。5. 常见问题与排查技巧实录5.1 设备连接与调度类问题速查表云测平台上跑脚本出问题的地方和本地完全不同本地一般是脚本逻辑问题云上更多是环境问题。我把这两周遇到的典型问题整理成一张表遇到的时候可以直接对。现象大概率原因处理方式会话建立超时平台侧设备被占用或 agent 异常换设备重试同时提工单查设备池状态脚本卡在启动页应用首次启动有引导页或权限弹窗在 capabilities 里开启权限自动授予脚本里加引导页跳过逻辑截图全是黑屏设备用了硬件加速渲染截图接口拿不到内容切换截图方式或改用平台提供的录屏回放元素定位全部失败WebView 调试通道未开启让开发在 debug 包里打开 WebView 调试或改用图像识别兜底随机失败且无规律设备性能波动固定等待时间不够全部改成显式等待并对关键操作加重试报告里日志缺失日志缓冲区太小被冲掉了平台侧调大 logcat 缓冲或脚本里主动抓取关键日志这张表里最后一条特别值得说。Android 的 logcat 是环形缓冲区默认大小有限如果应用日志量很大前面的日志会被冲掉。云测平台上你拿到的是任务结束之后的日志如果缓冲区小往往只能看到最后几秒的内容崩溃发生在中间就完全查不到。解决办法是让平台把缓冲区调大或者在脚本里针对性地把关键信息单独打到一个文件里。5.2 脚本不稳定flaky 用例的定位方法flaky 用例是自动化测试的公敌而在云环境里 flaky 的概率会比本地高不少。我的定位方法分三步。第一步是重复执行把可疑用例单独挑出来连跑 10 次统计失败率失败率在 10% 到 30% 之间的基本都是 flaky不是真 bug。第二步是看失败时刻的录屏这一步很关键很多 flaky 一看录屏就明白了比如某个弹窗偶尔延迟出现、某个列表加载慢了一拍。第三步是做二分定位把用例的步骤一段一段注释掉看失败率有没有变化。这个过程比较笨但很有效。我遇到过一条用例失败率大概 20%最后定位到是某次点击之后等待 2 秒再输入文本而设备在负载高的时候渲染会慢导致输入焦点还没拿到就发了键盘事件。改成等待输入框可交互之后再输入失败率直接降到 0。实操心得把重试机制加在步骤级别而不是用例级别。用例级重试会把已经通过的前半段再跑一遍浪费时间步骤级重试只重试失败的那个操作效率高很多而且不会掩盖真正的问题。5.3 成本与并发调度经验最后聊聊成本。云测平台按分钟计费跑起来是真的会心疼我总结了几个实打实能省钱的做法。第一个是分层跑冒烟用例集大概 50 条5 分钟能跑完每次提交都跑全量回归只在提测和发版前跑这样设备分钟数能降一大截。第二个是选对时段很多平台平峰期有折扣把耗时的全量回归挂到凌晨跑成本能省 20% 到 30%。第三个是减少无效执行脚本开始之前先做前置检查比如确认应用能正常启动、登录接口能通检查不过直接退出别傻跑 200 条用例全部失败。我见过一次因为测试环境的服务挂了整个回归跑了 40 分钟800 条用例全部失败白烧了两百多块钱的设备分钟。并发调度上有个反直觉的结论并发不是越高越好。我曾经把并发开到 30 台结果发现整体完成时间并没有比 15 台快多少因为平台上可供调度的设备是有限的超出的部分全在排队而且高并发下平台的报告生成也会变慢。后来我把并发稳定在 12 到 15 之间完成时间反而更稳定。所以并发数要根据平台的实际设备池规模来定别看着数字大就以为快。另外建议把云测的任务和 CI 流水线绑起来但别设置成阻塞式。也就是说代码提交之后自动触发冒烟测试结果通过邮件或者群消息通知而不是卡在那里等结果。阻塞式的话一旦平台排队严重整个流水线都会被拖住开发体验会很差。这套流程跑顺之后我个人的感受是移动云测试真正的价值不是省了买设备的钱而是把验证这件事从一个人肉密集、时间不可控的环节变成了一个可以编排、可以度量、可以持续优化的工程环节。设备省下来的钱是次要的能在一轮回归里稳定拿到 800 条用例的执行结果和完整证据链这个能力对发版节奏的影响是量级上的变化。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Django+Python电商用户行为分析系统实战:从数据建模到部署上线 2026/10/1 20:16:58

Django+Python电商用户行为分析系统实战:从数据建模到部署上线

用这套系统做完一个完整的电商用户行为分析项目,前后大概花了两个月。技术栈很直接:Django做后端,Python做数据处理,前端用ECharts出大屏。今天把这套系统从数据建模到部署上线的完整思路整理出来,尤其是那些不亲自动手…

阅读更多 →
电磁仿真算法选择指南:FEM、MoM、FDTD物理适配性决策法 2026/10/1 20:16:58

电磁仿真算法选择指南:FEM、MoM、FDTD物理适配性决策法

1. 为什么“选算法”比“跑仿真”更决定项目成败干电磁场仿真这行十年,我带过三十多个项目,从微波天线小型化到高压开关柜电磁兼容整改,从射频前端滤波器设计到电机绕组涡流损耗评估——所有踩过的坑、返工的版本、被客户退回的报告&#xff…

阅读更多 →
运动控制与机器人系统的核心差异:实时性、坐标系、动力学与交互范式 2026/10/1 20:16:57

运动控制与机器人系统的核心差异:实时性、坐标系、动力学与交互范式

1. 这不是概念辨析,而是两条技术路径的实操分水岭“运动控制和机器人系统有什么区别?”——这个问题在自动化工程师的日常交流中出现频率极高,但多数人得到的回答要么是教科书式的定义堆砌:“运动控制关注轨迹精度,机器…

阅读更多 →
Traefik v2到v3迁移实战:TaoToken网关场景下的配置变更与验证清单 2026/10/1 20:16:57

Traefik v2到v3迁移实战:TaoToken网关场景下的配置变更与验证清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
从FC到MCP:Node+TS开发多工具调用Agent实战,TaoToken统一Key接入 2026/10/1 20:16:56

从FC到MCP:Node+TS开发多工具调用Agent实战,TaoToken统一Key接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Codex Micro 嵌入式智能开发实战指南:TaoToken 统一 Key 接入与 config.toml 配置骨架 2026/10/1 20:16:42

Codex Micro 嵌入式智能开发实战指南:TaoToken 统一 Key 接入与 config.toml 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉