2012-10-03 25 views
6

Tôi muốn xóa biến Jmeter JsessionID bất kỳ lúc nào (theo yêu cầu của tôi).cách xóa JSESSIONID của mỗi Chủ đề (người dùng) trong Jmeter theo yêu cầu

Tôi biết có tùy chọn hộp kiểm trong Jmeter CookieManager có tên "Xóa cookie trên mỗi lần lặp lại".
Nhưng nó xóa phiên trên mỗi lần lặp trong khi tôi muốn xóa nó bất kỳ lúc nào trong lần lặp lại.

Tôi có thể làm điều đó như thế nào trong Jmeter?

Trả lời

2

Hiện tại bạn không thể đơn giản, đặc biệt nếu bạn muốn xóa một cookie cụ thể.

Bạn nên tăng yêu cầu nâng cao tại JMeter Bugzilla về độ chính xác cho những gì bạn muốn làm.

Tôi nghĩ rằng một chức năng tùy chỉnh sẽ là một tính năng thú vị, xem:

7

Bạn có thể, chỉ cần thêm bài/quá trình trước BeanShell và với mã này

import org.apache.jmeter.protocol.http.control.CookieManager; 
import org.apache.jmeter.protocol.http.control.Cookie; 
CookieManager manager = sampler.getCookieManager(); 
for (int i=0;i<manager.getCookieCount();i++){ 
    Cookie cookie = manager.get(i); 
    //remove a cookie 
    if (cookie.getName().equals("BAD_COOKIE")){ 
     sampler.getCookieManager().remove(i); 
    } 
} 
1

Cách của tôi không xa từ trên (điều này không có tác dụng đối với tôi, xin lỗi), nhưng nó ngắn hơn, chứa cập nhật quan trọng về chỉ mục bên trong loo p, và một số bản demo bổ sung cho thanh toán bù trừ việc sử dụng kịch bản (Tôi hy vọng;))

JSESSIONID là một trong những thẻ (lần đầu tiên hoặc một số tiếp theo), do đó để xóa tất cả các thẻ bao gồm JSESSIONID tôi sẽ đề xuất sử dụng kịch bản Java sau trong JSR223 trước và/hoặc PostProcessor nơi bạn cần:

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

CookieManager cManager = sampler.getCookieManager(); 
    int count = cManager.getCookieCount(); 
    for (int index = 0; index < count; index++) { 
     cManager.remove(0); 
     } 

Example of adding the script to PostProcessor in jMeter

Chú ý: bên cho vòng lặp ở đây là (0), không (index), giúp cho tránh ngoại lệ OutOfBoundary, becau kích thước se của cá thể CookieManager nhỏ hơn sau mỗi lần lặp.