如何在JMeter中修改/添加Cookie?

时间:2014-08-08 15:00:00

标签: javascript cookies jmeter

我是JMeter的新手,需要你的帮助才能修改cookie。

以下是该方案: 我正在测试一个评估/测试网站,提供多个问题答案。当用户进行选择并点击提交按钮时,页面中的JavaScript会将他的答案(例如,"答案= BBAACDA ...")附加到cookie并发出下一个GET请求(而不是一个POST请求!)。

由于JMeter不执行JavaScript(如其手册中常见的那样 - 它不是浏览器),因此无法将答案附加到cookie中。因此,我的测试计划无法识别用户交互。

如何添加/添加/修改动态Cookie?提前谢谢!

- Ishti

3 个答案:

答案 0 :(得分:3)

使用Beanshell预处理器或更好的Jsr223预处理器和groovy并使用此处提到的代码:

代码:

import org.apache.jmeter.protocol.http.control.CookieManager;  
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager manager = sampler.getCookieManager();
Cookie cookie = new Cookie("<NAME>","<VALUE>","<HOST>","/",false,0);
manager.add(cookie);

答案 1 :(得分:0)

我必须在对我有用的代码中实现一些更改:

import org.apache.jmeter.protocol.http.control.CookieManager;  
import org.apache.jmeter.protocol.http.control.Cookie;

CookieManager manager = ctx.getCurrentSampler().getCookieManager();
Cookie cookie = new Cookie("<NAME>","<VALUE>","<DOMAIN>","<PATH>",false,0, true, true, 0);
manager.add(cookie);

遵循http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/control/Cookie.html

中的定义

答案 2 :(得分:0)

可以在常规预处理器脚本中手动修改或添加cookie,方法与Syntax section here相同。

以下是如何通过浏览Cookie管理器中的所有Cookie来查找和编辑Cookie:

import org.apache.jmeter.protocol.http.control.CookieManager;  
import org.apache.jmeter.protocol.http.control.Cookie;

log.info("#########################################################################");
// cookie manager
CookieManager manager = ctx.getCurrentSampler().getCookieManager();

def NbOfCookies = manager.getCookieCount();

for (def i = 0; i < NbOfCookies; i++) {
    log.info("Cookie n° " + (i+1) + ": " + manager.get(i).getName() + ": " + manager.get(i).getValue());
    if (manager.get(i).getName() == "Cookie_name_to_find") {
        log.info("MAJ of Cookie_name_to_find");
        manager.get(i).setValue("New_cookie_value");
        log.info("-> " + manager.get(i).getName() + ": " + manager.get(i).getValue());
    }
}

log.info("#########################################################################");

以下是添加或删除的Cookie管理器方法列表......:https://stackoverflow.com/a/38505077/5747304

以下是修改域名及其到期日期等更多属性的Cookie方法列表:http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/control/CookieManager.html .html

应该知道,根据cookie管理器中选择的标准,经理仍然可以在请求之前修改手动修改的值,因此您必须小心。