2013-10-19 31 views
1

我嘗試測試具有請求限制器(100秒內100次,否則ip被阻止)的api的性能。 您可以使用自定義標題來避免這種情況。這個頭的值由java類生成。JMeter:使用java類生成自定義頭的值

隨着jruby我可以使用「需求」和「導入」也使用類。

如何爲JMeter做到這一點?

其他信息: 標題值是動態的 - >對於每個請求都必須生成。 致電HttpPwd.genPwd()需要兩個* .jar文件

回答

0

這是如何進行的:

  • 把2罐中JMeter的/ lib文件夾

  • 把Groovy的all.jar在JMeter的中/ lib目錄

  • 使用JSR223預處理器+ Groovy

  • 在預處理器中放入以下代碼:

import xxxxxx; //其中xxxx是HttpPwd類的全名

vars.put(「header」,HttpPwd.genPwd());

  • 根據您的要求添加HeaderManager作爲一個孩子,並在其內容放:

HeaderName(我不知道它是什麼):$ {}頭

0

在您的JMeter項目中導航到Thread Group>HTTP Request。你可以在那裏設置你的請求參數。

0

這裏是通過執行此操作的方式JMeter __Beanshell function

假設您有fol降脂邏輯生成自定義標題:

package custom.header; 

public class HttpPwd { 

public static String getPwd() { 
    return String.valueOf(System.currentTimeMillis()); 
} 
} 

這是從一些罐子被稱爲「customheader.jar」

訪問,你想一個名爲「MyHeader」頭添加到您的要求

  1. 將customheader.jat放到jmeter安裝的lib/ext文件夾中。 (或根據search_paths或user.classpath的位置,如果你已經在你的user.properties文件重寫這些屬性)
  2. 創建一個線程組
  3. 添加即HTTP請求的線程組
  4. 在HTTP請求把服務器名或知識產權即是「谷歌。COM」,路徑 - /,並添加參數‘’,值爲‘測試’Q其實沒關係
  5. 添加HTTP頭Manager作爲HTTP請求的子
  6. 添加名稱爲MyHeader和。價值 - 「$ {__的BeanShell(進口custom.header *; HttpPwd.getPwd();)}」
  7. 添加查看結果樹監聽HTTP請求後
  8. 保存並運行

你應該看到的東西如:

GET http://www.google.com/?q=test 

[no cookies] 

Request Headers: 
Connection: keep-alive 
MyHeader: 1382360571781 
Host: www.google.com 
User-Agent: Apache-HttpClient/4.2.3 (java 1.5) 

提及MyHeader存在和價值