无法将从firebug生成的Cookie文件加载到Apache jMeter Cookie管理中?

时间:2015-08-31 03:42:36

标签: jmeter

我正在测试我的网站,该网站需要正确设置Cookie数据,并且有很多Cookie数据使得手动添加它很烦人。我稍微谷歌,知道我可能会从Firefox firebug导出cookie并将其加载到jMeter HTTP COOKIES MANAGER中。但是我尝试了很多次并且没有看到导入的任何cookie数据,没有任何改变,我不知道发生了什么。

我正在使用最新的jMeter。有什么建议吗?

这些是我的一些cookie数据,从firebug中导出

.qq.com TRUE    /   FALSE   1755394742  RK  xGvq1yp4Tf
.tenpay.com TRUE    /   FALSE   certallnum  1
.tenpay.com TRUE    /   FALSE   certinfo    1|150537011-
.tenpay.com TRUE    /   FALSE   certlist    150537011-
.tenpay.com TRUE    /   FALSE   certuserflag    1
.tenpay.com TRUE    /   FALSE   1441074265  ctrlServErr undefined
.qq.com TRUE    /   FALSE   1443526587  lskey   0001000064e173918a7f1bfc52dc25d64a62e88892dfc1128b742e69cdf304aecaf2136b14628f2188588a3a
.qq.com TRUE    /   FALSE   1443526587  luin    o0414077270
.qq.com TRUE    /   FALSE   2147385600  o_cookie    414077270

这就是我尝试加载这些cookie数据的方法: enter image description here

1 个答案:

答案 0 :(得分:0)

JMeter的HTTP Cookie管理器非常智能,可以自行处理cookie。

查看tenpay.com网站的回复,我可以看到以下内容:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="GB2312">
    <meta http-equiv="refresh" content="0;url=https://www.tenpay.com/v2/">
    <title>²Æ¸¶Í¨ - »áÖ§¸¶ »áÉú»î</title>
</head>
<body>
</body>
</html>

注意这一行:

<meta http-equiv="refresh" content="0;url=https://www.tenpay.com/v2/">

根据User Manual

  

JMeter不是浏览器。就Web服务和远程服务而言,JMeter看起来像浏览器(或者更确切地说,是多个浏览器);但是JMeter不会执行浏览器支持的所有操作。特别是,JMeter不执行HTML页面中的Javascript。它也不像浏览器那样呈现HTML页面(可以将响应视为HTML等,但是时间不包含在任何样本中,并且一次只查看一个线程中的一个样本)。

这意味着JMeter不会自动打开https://www.tenpay.com/v2/ URL,您需要明确“告诉”JMeter对该URL执行GET请求。

  1. 使用Regular Expression Extractor<meta http-equiv="refresh"...位提取网址,如:

    • 将正则表达式提取器添加为第一个请求的子级
    • 按如下方式配置:

      • 参考名称:任何有意义的内容,即URL
      • 正则表达式:<meta http-equiv="refresh" content="0;url=(.+?)">
      • 模板:$1$
  2. 在第一个采样器之后添加一个新的HTTP请求采样器,保留所有内容并将${URL}放入“路径”输入中,这样您的测试计划就像:

    Test Plan Example