2016-01-14 47 views
1

編程設置我測試具有以下流的Web應用程序:如何手動設置在JMeter的一個cookie是由JavaScript

  1. 用戶登錄
  2. 成功登錄,訪問令牌發放。
  3. 登錄後的每個請求都有訪問令牌來獲取資源。

在我的JMeter測試計劃中,我添加了一個cookie管理器,並且可以從登錄請求的響應頭中提取此訪問令牌。我想將此訪問令牌設置爲測試計劃的Cookie。

我在BSF PostProcessor中提取訪問令牌後添加了這個:vars.put('COOKIE_access_token',actual_token);,它被視爲調試採樣器中的一個cookie變量。

enter image description here

但登錄後的後續請求沒有在他們的Cookie數據訪問令牌,並因此再次被重定向到登錄頁面。

如何將此令牌設置爲將用於所有其他請求的cookie?

回答

2

定義變量不會添加cookie本身。你需要插入的cookie到Cookie管理,使這項工作,如:

  1. 添加Beanshell PreProcessor作爲失敗
  2. 將下面的代碼放入預處理器的「腳本」區域的請求的小孩:

    import org.apache.jmeter.protocol.http.control.Cookie; 
    
    sampler.getCookieManager().add(new Cookie("access_token", "actual_token", "domain", "path", true, Long.MAX_VALUE)); 
    

更換domainpathtrue(代表 「安全」)和Long.MAX_VALUE(到期)用自己的價值觀。

請參閱How to Use BeanShell: JMeter's Favorite Built-in Component以編程方式操作cookie的示例。

+0

謝謝德米特里T.它的工作。儘管在插入cookie時,我必須給出負值(-1)作爲到期時間。任何非負值都不起作用。 再次感謝! –