2014-09-22 50 views
2

改变页面之间的cookie值我知道如何使用BeanShell的预处理器从修改的cookie: How to modify/add to Cookie in JMeter?如何在JMeter的

由于PMD UBIK-INGENIERIE的答案!

现在,我的问题是:如何修改页面之间的cookie值?让我解释一下,我有一个名为'Answers'的cookie,第一页是空的,即Answers =“”(空),然后在第二页中获取值Answers =“ - , - , - , - - “;最后在第三页它需要更长的价值答案=“ - ,A,B, - ,C, - ...”

如何修改同一个cookie在不同的页面?我看到了CookieManager API:http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/control/CookieManager.html

但是任何人都可以请一个例子来解释吗?谢谢!

回答

2

由于不可能有具有相同名称的2种饼干的CookieManager是足够聪明,以取代现有的Cookie有一个新的值(见removeMatchingCookies(c); // Can't have two matching cookies线)

所以

  1. 请求1:需要毫无作为你不能发送具有空值
  2. 要求2和3饼干:添加Beanshell PreProcessor与喜欢相同的代码:

    import org.apache.jmeter.protocol.http.control.Cookie; 
    import org.apache.jmeter.protocol.http.control.CookieManager; 
    
    CookieManager manager = ctx.getCurrentSampler().getProperty("HTTPSampler.cookie_manager").getObjectValue(); 
    Cookie cookie = new Cookie("Answers", "**VALUE**", sampler.getDomain(), sampler.getPath(), false, System.currentTimeMillis()); 
    manager.add(cookie); 
    sampler.setCookieManager(manager); 
    

    **Value**的请求2将-,-,-,-,-,-并请求3将-,A,B,-,C,- ...

有关BeanShell的脚本和种类的BeanShell食谱的参考How to use BeanShell: JMeter's favorite built-in component指南的详细信息。

+0

嗨德米特里,谢谢你的链接。有什么方法可以评论你的文章吗?为了让它适合我,我必须做出一些小的改变,我想与其他人分享这些改变,以免它们碰到相同的障碍。另外,你有没有关于如何使用csv数据读取器跨线程组工作的建议? – user420667 2017-05-31 15:38:01