2012-07-26 24 views
8

Tôi là một tân binh tuyệt đối ở đây (JAVA i mean), dành hàng giờ tìm kiếm giải pháp, bây giờ tôi chỉ muốn tự bắn mình.
Tôi muốn tạo một chuỗi trong xác nhận beanshell được đặt ngay phía trên Yêu cầu HTTP.JMeter sử dụng biến beanshell trong HTTP Request

  • Trong beanshell i đã viết:

    String docid="abcd"; 
    

    (trong thực tế tôi muốn nối một chuỗi với một số biến)

  • Trong HTTP Request, gửi các thông số i thêm ${docid}.

Trả lời

14

Trong BeanShell Assertion description section bạn có thể tìm thấy những điều sau đây:

vars - JMeterVariables - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.putObject("OBJ1",new Object()); 
props - JMeterProperties (class java.util.Properties) - e.g. props.get("START.HMS"); props.put("PROP1","1234"); 

Vì vậy, để thiết lập biến jmeter trong beanshell mã (BeanShell Assertion sampler trong trường hợp của bạn) sử dụng như sau:

String docid = "abcd"; 
vars.put("docid",docid); 

hoặc chỉ cần

vars.put("docid","abcd"); 

và sau đó bạn có thể tham khảo nó là $ {docid}, như bạn đã thực hiện trong Yêu cầu HTTP của mình.

+0

Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn !! Nếu tôi không hỏi quá nhiều làm thế nào tôi sẽ có thể nối một biến trong xác nhận beanshell chỉ. mục tiêu của tôi thực sự là chạy một vòng lặp và tiếp tục nối chuỗi. Tôi đã lập kế hoạch để chạy mẫu này trong một bộ điều khiển vòng lặp và nối biến với chính nó với ít thay đổi với mỗi vòng lặp chạy – Suyash

+0

Bỏ qua các bình luận ở trên, tôi quản lý để làm nối và cũng looping, nhưng bằng cách nào đó tôi không thể vượt qua giá trị từ một trình lấy mẫu beanshell cho mẫu khác. tôi đã thử vars.get ("varname") nhưng nó không hoạt động. nó chỉ hoạt động cho các biến kiểu yêu cầu http. – Suyash

+0

Hm. Hãy thử sử dụng [Debug Sampler] (http://jmeter.apache.org/usermanual/component_reference.html#Debug_Sampler) ít nhất là để theo dõi biến vấn đề giữa các trình lấy mẫu beanshell. Bạn cũng có thể sử dụng props.get/.put theo cách tương tự - có thể điều này sẽ hoạt động tốt hơn. –

0

Nếu bạn cần phải vượt qua giá trị từ một vỏ đậu lấy mẫu khác, bạn nên sử dụng các biến.

vars.put("a", "something") 

Trong sampler khác, bạn nên có một cái gì đó như:

String otherSampler = vars.get("a") 

Về gỡ lỗi Shell mẫu thêu - Nó không phải là dễ dàng như vậy. Tôi đề nghị sử dụng đối tượng SampleResult. Làm thế nào để sử dụng nó, bạn có thể thấy ở đây Debugging Bean Shell Sampler

Các vấn đề liên quan