2012-09-24 38 views
7

Tôi không hiểu rõ ý nghĩa của "Nhóm chủ đề" trong JMeter. Điều đó có nghĩa là tất cả các bài kiểm tra (yêu cầu Java, v.v.) thuộc về một nhóm luồng nhất định chạy trong một luồng hoặc mỗi bài kiểm tra trong nhóm luồng đó chạy trong một luồng riêng biệt? Tôi không thể hiểu rõ về điều này từ tài liệu của JMeter hay googling.Ý nghĩa của "Nhóm chủ đề" trong JMeter là gì?

+0

http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadGroup.html – SLaks

Trả lời

6

Đối với lời giải thích see:

Một thread group là một tập hợp các đề thi kịch bản tương tự. Đặt số lần lặp trong cấu hình. Hành vi chủ đề được xác định theo đoạn đường nối lên và bị phá hủy khi số lần lặp trên mỗi luồng đã trôi qua. Lưu ý rằng từ phiên bản 2.8, bạn sẽ có thể trì hoãn quá trình tạo luồng cho đến khi luồng bắt đầu hoạt động, điều này sẽ được điều chỉnh cho phù hợp với các thử nghiệm sử dụng các chuỗi đã tồn tại rất ngắn và nhiều luồng.

Các nhóm chủ đề có thể được xem như một tập hợp người dùng ảo nhưng không nhất thiết. Nó có thể là một cái gì đó khác tùy thuộc vào cách bạn phát triển thử nghiệm của bạn.

+0

Liên kết tốt. Điều đó đã giải quyết nó cho tôi và nó không chính xác như tôi nghĩ. – wmorrison365

1

Chủ đề = người dùng được mô phỏng.
Vì vậy, nhóm chuỗi = người dùng.
Khám phá jMeter Plugins thread group controllers với nhiều quyền kiểm soát hơn nhóm chủ đề mặc định.

4

Như tôi đã hiểu (Điều tôi muốn biết), Tất cả các thao tác trong một nhóm chuỗi JMeter chạy tuần tự một lần cho mỗi luồng và lặp lại. Vì vậy, nó có nghĩa là mỗi hoạt động trong một nhóm thread không chạy trong bộ riêng biệt của các chủ đề của nó, nhưng nó chia sẻ mỗi thread với các hoạt động khác trong nhóm chủ đề của nó.

Ví dụ,

  • Thread Group 1
    • Operation 1
    • Operation 2
    • Operation 3

Nếu chúng tôi đã lên kế hoạch này nhóm thread Thread Group 1 để chạy trong 3 chủ đề, wha t xảy ra là,

  • Operation 1, hoạt động 2, và hoạt động 3 sẽ thực hiện trong chủ đề 1.
  • Operation 1, hoạt động 2, và hoạt động 3 sẽ thực hiện trong chủ đề 2.
  • Operation 1, hoạt động 2, và Thao tác 3 sẽ thực hiện trong luồng 3. etc

Trước đây tôi không chắc liệu mỗi thao tác này có chạy trên một chuỗi riêng biệt.

+0

Bạn hiểu rõ. YOu nên đặt câu hỏi này vào câu hỏi của bạn và chấp nhận câu trả lời tốt nhất cho bạn. –

0

Chỉ cần để tiếp tục đóng góp sau cuộc điều tra của riêng tôi (cho rõ ràng và đầy đủ Tôi hy vọng):

  1. Một ThreadGroup có yêu cầu/"hoạt động" như mô tả ở trên (trong tóm tắt Manjula Weerasinge của) nhưng cũng có người sử dụng và các vòng lặp config.
  2. Một ThreadGroup tạo chuỗi cho mỗi người dùng. Chủ đề này (đại diện cho một người dùng) chạy tất cả các hoạt động trong ThreadGroup đó, theo thứ tự trong vòng lặp đó.
  3. Những chủ đề được tái sử dụng trên tất cả các vòng - đó là: vòng 2 cũng sẽ thực hiện cùng một bộ hoạt động như người dùng n khác nhau nhưng điều này sẽ tái sử dụng các chủ đề tương tự như vòng 1.

Nói tóm lại, một ThreadGroup có một luồng cho mỗi người dùng và nó được sử dụng để chạy tất cả các thử nghiệm trong nhóm đó, cho tất cả các vòng lặp.

này là sự thật qua hai vòng với 10 người nơi thử nghiệm của tôi chứa đựng những điều sau đây:

System.out.println("MyTest#testSearchNodeByNodeNameExactMatch: MyTest=" 
     +this + "(" +System.identityHashCode(this) +")" 
     +", thread=" +System.identityHashCode(Thread.currentThread())); 

Và các bản ghi có thể được tóm tắt sử dụng (giả định sản lượng println ghi vào thread-output.2.txt):

grep MyTest#test thread-output.2.txt | awk -F ', ' '{print $2}' | sort | uniq