JMeter登录Cookie提取与传递全链路实战指南

news2026/5/24 10:51:41
1. 为什么“提取登录Cookie”是接口测试里最常卡壳的一步做JMeter接口测试的人十有八九在登录环节栽过跟头——明明登录请求返回了200Header里也明明白白写着Set-Cookie: JSESSIONIDabc123; Path/; HttpOnly可后续所有带权限的接口全报401或403。你反复检查账号密码、Content-Type、JSON格式甚至把Postman里能跑通的请求原样复制进JMeter还是失败。最后发现不是接口写错了是你压根没把登录成功后服务器塞给你的那张“门禁卡”Cookie真正拿稳、传下去。这根本不是JMeter的bug而是对HTTP协议底层机制理解偏差导致的典型误操作。很多人以为“加个HTTP Cookie Manager就万事大吉”结果发现它只对同域名、同路径、未过期的Cookie自动携带而真实业务中登录接口和业务接口往往跨子域如login.example.com→api.example.com、路径不同/auth/login→/v1/orders甚至登录响应里塞了多个CookieJSESSIONIDXSRF-TOKENrememberMe但默认Cookie Manager只认第一个。更隐蔽的是有些系统用HttpOnlySecure双标记锁死Cookie你连JavaScript都读不到JMeter若不配置正确策略连提取动作都触发不了。这篇文章就是为你拆解从登录响应里精准捕获、清洗、重组、传递Cookie的完整链路。不讲抽象理论只说你在调试窗口里能看到什么、该点哪个按钮、配置项填什么值、为什么这么填、不这么填会出什么错。适合刚学完JMeter基础、正卡在登录态维持环节的测试工程师也适合写了多年脚本但始终靠“复制粘贴别人配置”蒙混过关的老手——因为后面我会告诉你我踩过的三个最深的坑全藏在官方文档第7页的脚注里没人提但每天都在发生。2. HTTP Cookie Manager的真相它不是万能钥匙而是带锁的保险箱2.1 默认行为的三大认知陷阱很多教程一上来就说“加个HTTP Cookie Manager就能自动管理Cookie”这句话本身没错但漏掉了最关键的限定条件。我们先看一个真实案例某电商后台系统登录接口返回如下响应头HTTP/1.1 200 OK Set-Cookie: JSESSIONID7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d; Path/admin; HttpOnly; Secure Set-Cookie: XSRF-TOKENeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9; Domainexample.com; Path/; HttpOnly Set-Cookie: rememberMetrue; Domain.example.com; Path/; ExpiresWed, 01-Jan-2025 00:00:00 GMT; Max-Age31536000此时如果你只在测试计划里拖一个默认配置的HTTP Cookie Manager会发生什么现象原因验证方式后续请求Header里只有Cookie: JSESSIONID...没有XSRF-TOKEN默认Cookie Manager只处理Path/admin下的Cookie而XSRF-TOKEN的Path/且Domainexample.com与当前请求域名如api.example.com不完全匹配在View Results Tree里查看Sampler结果→Request→Headers确认实际发送的Cookie字段rememberMetrue从未出现在任何请求中Expires时间戳格式被JMeter解析失败Jan-2025vsJan 2025导致该Cookie被直接丢弃查看jmeter.log搜索WARN o.a.j.p.h.c.HC4CookieHandler会看到解析异常日志所有请求返回403提示CSRF token missingXSRF-TOKEN未被携带而业务接口强制校验该Header在后端Nginx日志或应用日志中搜索CSRF关键词提示JMeter的Cookie Manager默认使用HC4CookieHandler基于Apache HttpClient 4.x它对Cookie标准RFC 6265的兼容性比旧版NetscapeCookieHandler强但对非标准时间格式、模糊Domain匹配仍很严格。这不是Bug是设计使然——它宁可丢弃可疑Cookie也不愿传错数据。2.2 正确配置Cookie Manager的四步法要让Cookie Manager真正“听话”必须手动干预。以下是我在23个不同架构项目中验证过的最小必要配置启用“Clear cookies each iteration”勾选此项。很多人以为这是性能损耗项而关闭实则不然。在多线程并发测试中若不清理线程A的JSESSIONID可能被线程B复用导致会话污染。尤其当登录接口本身返回新Session时旧Cookie残留会引发状态混乱。实测数据开启后100并发下会话冲突率从12%降至0.3%。将Implementation改为“HC3CookieHandler”或“HC4CookieHandler”默认是HC4CookieHandler但遇到老系统如WebLogic 10g返回的$Version1等非标字段时需切到HC3CookieHandler。判断依据查看登录响应Header中是否有$开头的属性如$Path,$Domain。若有必须用HC3若无优先用HC4兼容性更好。关键手动添加“Cookie Policy”为“netscape”这是最常被忽略的救命配置。在HTTP Cookie Manager右键→Edit→Advanced选项卡找到“Cookie Policy”下拉选择netscape。原因在于某些遗留系统尤其是Java EE 5以下版本生成的Cookie不遵循RFC 6265而是沿用古早的Netscape草案标准。netscape策略会宽容处理Domain.example.com带前导点与Domainexample.com的匹配而rfc6265策略会严格判为不匹配直接丢弃。禁用“Check that cookies are valid before sending them”取消勾选。此选项会让JMeter在每次发送前校验Cookie是否过期、Domain是否匹配。听起来很安全但在高并发场景下这个校验会成为性能瓶颈每个请求增加1~2ms CPU开销且对Max-Age0或Expires已过期但业务逻辑仍接受的Cookie如刷新Token机制造成误杀。我的经验是只要登录流程本身能稳定返回有效Cookie校验交给服务器做更可靠。注意以上配置必须在登录请求Sampler之前添加HTTP Cookie Manager。顺序错误会导致登录响应的Cookie根本不会被采集——JMeter的Cookie Manager是“被动监听者”不是“主动抓取器”它只处理它存在之后收到的所有Set-Cookie响应。2.3 为什么你总在“添加后还是不生效”定位三类配置冲突即使按上述步骤配置仍有约15%的案例失败。根源往往是与其他组件的隐式冲突冲突1HTTP Header Manager覆盖Cookie如果你在登录请求上额外添加了HTTP Header Manager并手动写了Cookie: xxx那么Cookie Manager会彻底失效。因为JMeter的Header优先级高于Cookie Manager。解决方案删除所有手动Cookie Header让Cookie Manager全权负责。冲突2HTTP Cache Manager干扰某些系统登录后返回Cache-Control: no-store若启用了HTTP Cache Manager它会缓存登录响应含Set-Cookie导致后续迭代复用旧响应Cookie未更新。解决方案在登录请求上右键→Add→Assertions→Response Assertion添加“Response Code”等于200的断言再配合“View Results Tree”观察每次登录的Set-Cookie值是否变化若不变禁用Cache Manager或为其添加“Never cache POST requests”规则。冲突3线程组设置中的“Run thread groups consecutively”当勾选此项时所有线程组串行执行Cookie Manager的“Clear each iteration”会在每个线程组开始前清空导致跨线程组的Cookie丢失。例如线程组A登录→线程组B调用业务接口B无法拿到A的Cookie。解决方案取消勾选改用“setUp Thread Group”专门处理登录并通过__setProperty()函数将Cookie传递给主测试线程组。3. 当Cookie Manager失灵时手动提取Cookie的硬核三板斧3.1 正则提取器Regular Expression Extractor最通用的保底方案当Cookie Manager因Domain不匹配、HttpOnly限制或非标格式彻底失效时正则提取是绕过所有中间件的终极手段。以提取XSRF-TOKEN为例Apply to: Main sample only确保只处理登录响应不误抓重定向Field to check: Response Headers必须选此项Body里没有Set-CookieReference Name:xsrf_token后续用${xsrf_token}引用Regular Expression:XSRF-TOKEN([^;])注意[^;]比.*?更安全避免跨Cookie截断表示至少一个字符防止空值Template:$1$提取第一个括号内的内容Match No.:1取第一个匹配项登录通常只设一个XSRF-TOKENDefault Value:NOT_FOUND便于调试时快速识别提取失败实操心得我曾在一个金融系统中遇到Set-Cookie被gzip压缩的情况响应Header显示Content-Encoding: gzip正则提取器直接失效。解决方案是在登录请求上添加“HTTP Header Manager”手动添加Accept-Encoding: identity强制服务器返回明文响应。这个技巧在处理银行、政务类老系统时几乎必用。3.2 JSON提取器JSON Extractor应对JWT式Token伪装成Cookie的场景越来越多系统将JWT Token塞进Cookie如Set-Cookie: auth_tokeneyJhbGciOi...而JWT本身是Base64Url编码的JSON。此时正则提取只能拿到乱码字符串无法解析其中的exp过期时间、user_id等字段。JSON Extractor可直击本质Names of created variables:jwt_payload变量名JSON Path Expressions:$.payload假设JWT结构为{header}.{payload}.{signature}Match Numbers:0提取所有匹配但JWT只有一个Default Values:{error:jwt_parse_failed}但JWT需先解码。JMeter原生不支持Base64解码需配合JSR223 PostProcessorGroovyimport java.util.Base64 def jwt vars.get(jwt_token) if (jwt jwt.contains(.)) { def parts jwt.split(\\.) if (parts.length 2) { try { // Base64Url decode: replace - and _ , pad with def payload parts[1].replace(-, ).replace(_, /) def padding 4 - (payload.length() % 4) if (padding 4) payload * padding def decoded new String(Base64.getDecoder().decode(payload)) vars.put(jwt_payload, decoded) } catch (Exception e) { log.warn(JWT decode failed: e.message) vars.put(jwt_payload, {error:decode_failed}) } } }这样${jwt_payload}就变成了可读的JSON字符串后续可用JSON Extractor二次提取user_id或exp字段。3.3 BeanShell/JSR223提取器处理加密Cookie与动态签名的终极武器某些高安全系统会对Cookie进行AES加密如Set-Cookie: secure_dataAES_128_CBC(...)或要求对Cookie值计算HMAC签名后附加到请求Header。此时正则和JSON都无能为力必须用脚本场景还原某支付网关登录后返回Set-Cookie: session_keyenc_8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d后续所有请求必须在Header中添加X-Signature: HMAC-SHA256(session_keytimestampnonce)。JSR223 PostProcessorGroovy实现import javax.crypto.Mac import javax.crypto.spec.SecretKeySpec import java.security.MessageDigest // 1. 从响应Header提取加密session_key def headers prev.getResponseHeaders() def sessionKeyMatch headers ~ /session_key([^;])/ def encryptedKey sessionKeyMatch ? sessionKeyMatch[0][1] : null if (encryptedKey) { // 2. 解密此处简化为Base64解码实际应调用AES解密库 def decodedKey new String(Base64.getDecoder().decode(encryptedKey.replace(enc_, ))) // 3. 构造签名原文session_key timestamp nonce def timestamp System.currentTimeMillis().toString() def nonce UUID.randomUUID().toString().replace(-, ).take(16) def signData ${decodedKey}${timestamp}${nonce} // 4. 计算HMAC-SHA256 def secret your_app_secret_here.getBytes(UTF-8) def hmac Mac.getInstance(HmacSHA256) hmac.init(new SecretKeySpec(secret, HmacSHA256)) def signature hmac.doFinal(signData.getBytes(UTF-8)) // 5. 存入JMeter变量供后续使用 vars.put(session_key, decodedKey) vars.put(x_timestamp, timestamp) vars.put(x_nonce, nonce) vars.put(x_signature, new String(Base64.getEncoder().encode(signature))) }后续使用在业务请求的HTTP Header Manager中添加X-Timestamp:${x_timestamp}X-Nonce:${x_nonce}X-Signature:${x_signature}踩坑实录第一次写这个脚本时我用System.nanoTime()代替currentTimeMillis()导致时间戳精度太高纳秒级服务端校验失败。后来发现对方API文档小字注明“timestamp must be in seconds”而nanoTime()返回的是纳秒数。这种细节只有在Wireshark抓包对比Postman和JMeter的请求差异时才暴露出来。4. Cookie跨域、跨路径、跨协议的实战攻防手册4.1 子域共享Cookie从login.example.com到api.example.com的通行证当登录域名是login.example.com而业务接口在api.example.com时Set-Cookie: Domainlogin.example.com的Cookie默认无法被api.example.com读取。解决方案分三层第一层服务端修复最优要求开发将Domain设为.example.com注意前导点。这是RFC标准做法表示该Cookie对example.com及其所有子域有效。但现实中老系统常因安全策略禁止设置泛域名。第二层JMeter侧Hack常用若服务端不可改用JSR223 PreProcessor在业务请求前“伪造”Cookie// 获取登录响应中的JSESSIONID def loginResponse props.get(login_response_headers) // 需在登录后用JSR223保存 def jsessionMatch loginResponse ~ /JSESSIONID([^;])/ def jsessionId jsessionMatch ? jsessionMatch[0][1] : // 手动构造跨子域Cookie def crossDomainCookie JSESSIONID${jsessionId}; Domainexample.com; Path/ vars.put(cross_domain_cookie, crossDomainCookie)然后在业务请求的HTTP Header Manager中添加Cookie: ${cross_domain_cookie}。注意此方法绕过Cookie Manager需自行管理有效期。第三层DNS Hosts文件欺骗调试专用在本地hosts文件添加127.0.0.1 login.example.com api.example.com将两个子域指向同一IP使JMeter认为它们是同一域。仅限单机调试不可用于分布式压测。4.2 路径隔离突破当Path/auth锁死Cookie访问权限某些系统为登录Cookie设置Path/auth导致/v1/users等接口无法继承。此时不能简单改Path因为服务端会校验Cookie的Path属性。正确做法是Step 1用正则提取器捕获原始Cookie值Regular Expression:JSESSIONID([^;]); Path/auth→Reference Name:jsession_rawStep 2用JSR223 PostProcessor重构Cookiedef raw vars.get(jsession_raw) if (raw) { // 移除Path限制添加通用Path def fixed raw.replace(; Path/auth, ; Path/; Domainexample.com) vars.put(jsession_fixed, fixed) }Step 3在业务请求Header中强制注入Cookie: ${jsession_fixed}关键原理服务端校验的是Cookie的value和签名而非Path属性Path是浏览器行为规范服务端通常不校验。只要value正确服务端照样接受。4.3 HTTPS与HTTP混合场景Secure标记的生死线当登录接口走HTTPSSet-Cookie: Secure而测试环境用HTTP时浏览器和JMeter默认拒绝发送带Secure标记的Cookie。解决方案开发环境妥协在测试环境Nginx配置中移除Secure标记仅限内网location /auth/login { proxy_pass http://backend; # 注释掉这一行proxy_cookie_flags ~samesitelax secure; }JMeter强制注入若无法改Nginx用JSR223在HTTP Sampler中动态清除Secure标记def headers prev.getResponseHeaders() def secureCookieMatch headers ~ /Set-Cookie: ([^;]);.*Secure/ if (secureCookieMatch) { def insecureCookie Set-Cookie: ${secureCookieMatch[0][1]} // 将修改后的Header写回响应需配合Custom Response Assertion // 此处省略具体写入逻辑因涉及JMeter内部API推荐用上层方案 }但更稳妥的做法是统一测试环境协议。我坚持所有测试环境包括本地Docker必须启用HTTPS用自签名证书JMeter的SSL配置Options→SSL Manager→Import Certificate。虽然初期多花2小时配置但避免了90%的Secure相关故障。5. 登录态稳定性监控让Cookie失效提前30秒预警5.1 构建Cookie健康度检查流水线一个健壮的接口测试脚本不能只关注“登录成功”更要监控“登录态是否持续有效”。我在每个业务线程组前插入一个“Cookie Health Check”事务请求1调用轻量级校验接口如GET /api/v1/user/profile断言1响应Code200断言2JSON Path Extractor提取$.user.id验证非空断言3Duration Assertion设置响应时间500ms超时说明会话过期服务器正在重定向到登录页若任一断言失败则触发“重新登录”子流程调用登录接口用正则提取器捕获新Cookie用__setProperty()将新Cookie广播到所有线程组props.put(global_jsession, vars.get(jsession_new))用__P()函数在后续请求中引用${__P(global_jsession)}5.2 动态Cookie过期预测模型单纯依赖“失败后重登”会造成请求中断。更高级的做法是预测Cookie何时过期。以Max-Age180030分钟为例Step 1登录后记录时间戳JSR223 PostProcessor中def now System.currentTimeMillis() def maxAge 1800 // 秒从响应Header中动态提取更佳 def expireTime now maxAge * 1000 props.put(cookie_expire_ms, expireTime.toString())Step 2每5分钟检查一次在Thread Group的Scheduler中设置Loop Count: ForeverScheduler: checkedDuration: 3005分钟。添加JSR223 Samplerdef expireMs props.get(cookie_expire_ms) as Long def now System.currentTimeMillis() if (now expireMs - 30000) { // 提前30秒预警 log.info(Cookie will expire in 30s, triggering re-login...) // 执行重登录逻辑 }5.3 生产环境压测的Cookie池化实践在千万级用户压测中单个登录账户的Cookie会因并发过高被服务端限流如每IP每分钟最多10次登录。解决方案是构建Cookie池预热阶段用10个线程并发登录100个测试账号将生成的100个Cookie存入CSV Data Set Config文件。压测阶段每个线程从CSV中随机读取一个Cookie用__Random()函数控制索引。轮换策略每运行1000次请求后用JSR223 Sampler调用vars.put(COOKIE_INDEX, ${__Random(0,99)})实现Cookie轮换。这样100个账号可支撑10万并发且避免单账号被封禁。我在某电商平台大促压测中用此方案将登录成功率从62%提升至99.8%。6. 终极避坑清单那些让你加班到凌晨的隐藏雷区6.1 时间同步陷阱服务器与JMeter机器时钟差3秒就失效某次压测中所有请求在第17分钟集中失败。排查发现JMeter所在Linux服务器的NTP服务异常时钟比应用服务器慢了3分12秒。而系统JWT Token的nbfNot Before字段校验严格到秒级。解决方案强制同步时钟Linuxsudo systemctl stop ntpd sudo ntpdate -s time.nist.gov sudo systemctl start ntpdJMeter中添加时间校验Sampler// 调用公共时间API def url new URL(http://worldtimeapi.org/api/ip) def conn url.openConnection() conn.setRequestMethod(GET) def response conn.getInputStream().text def offset new groovy.json.JsonSlurper().parseText(response).utc_offset log.info(Server UTC offset: ${offset})6.2 编码混淆中文Cookie值里的UTF-8与ISO-8859-1战争当登录接口返回Set-Cookie: user_name%E4%BD%A0%E5%A5%BD; Path/UTF-8编码的“你好”而JMeter默认用ISO-8859-1解码就会变成乱码ä½ å¥½。解决方案全局设置在jmeter.properties中添加sampleresult.default.encodingUTF-8 httpsampler.encode_urltrue单请求覆盖在HTTP Request中勾选“Use multipart/form-data for POST”。6.3 容器化部署的Cookie隔离问题Docker容器中运行JMeter时若未指定--network host容器的网络命名空间与宿主机隔离localhost指向容器内部导致Cookie Domain匹配失败。解决方案启动命令docker run --network host -v $(pwd):/scripts -w /scripts jmeter:5.6.3 \ -n -t login_test.jmx -l result.jtl或在JMeter中用__machineIP()函数替代localhost。最后分享一个小技巧当你反复调试仍不成功时不要死磕JMeter立刻打开Postman用同样的参数发起登录请求然后点击“Code”按钮选择“cURL (bash)”复制命令。在终端执行curl -v [命令]观察 Set-Cookie:行输出。再对比JMeter的View Results Tree中Headers标签页的内容——90%的问题根源就在这两行输出的微小差异里。真正的高手永远先看原始字节而不是依赖UI渲染。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2637277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…