使用JMeter测试Magento 2网站时无法将商品加入购物车
Magento JMeter性能测试:登录后添加购物车失败(form_key=deleted)问题解决
修复form_key提取逻辑
登录成功后Magento会生成新的form_key,你当前的提取规则大概率没抓到这个新值,导致复用了失效的旧值。- 用正则表达式提取器匹配登录响应里的form_key:
name="form_key" value="([^"]+)",确保提取范围是登录请求的响应数据。 - 在JMeter变量查看器里确认
form_key变量值是有效字符串,不是deleted。
- 用正则表达式提取器匹配登录响应里的form_key:
确保Cookie会话正常
必须在测试计划中添加HTTP Cookie管理器,让JMeter自动处理登录后的会话Cookie。如果Cookie丢失,Magento会认为会话失效,返回form_key=deleted。- 不要手动修改Cookie配置,保持默认的自动存储/发送逻辑。
核对添加购物车请求参数
对比浏览器中添加购物车的请求参数,确保JMeter的请求包含:- 正确引用登录后提取的
${form_key}变量 - 商品ID、数量等必填参数完整且正确
- 请求的
Content-Type设置为application/x-www-form-urlencoded(和浏览器一致)
- 正确引用登录后提取的
调试会话状态
在添加购物车请求前加一个访问购物车页面的HTTP请求,查看响应:- 确认页面显示用户已登录
- 检查页面中的form_key是否正常,而非
deleted - 查看添加购物车请求的响应数据,可能存在隐藏的会话失效提示(比如HTML里的错误信息)
内容的提问来源于stack exchange,提问作者Harshil Shukla
相关产品推荐
相关产品推荐

