Concurrency Thread Group

Công cụ kiểm thử hiệu năng miễn phí, chỉ hỗ trợ java.
Forum rules
Công cụ kiểm thử hiệu năng miễn phí, chỉ hỗ trợ java.
Post Reply
lena93
Hoc Tester
Posts: 1
Joined: Wed 07 Nov, 2018 6:15 pm
Contact:

Concurrency Thread Group

Post by lena93 » Thu 08 Nov, 2018 2:40 pm

Em mới tập tành sử dụng Jmeter được gần 1 tháng nay để test performance cho dự án. Bình thường em vẫn hay dùng Thread Group để chạy thì thấy Thread = Sampler. Nhưng khi em chuyển qua dùng Concurrency Thread Group thì lượng sampler không ổn định và vượt quá Concurrency nhiều. Cho em hỏi 1 Concurrency thì có bao nhiêu Sampler ạ ? Có thể setting được lượng sampler trong 1 Concurrency không ạ ?
Em cảm ơn ạ.



harano
Jr. Tester
Posts: 57
Joined: Fri 20 Apr, 2012 10:43 am
Contact:

Re: Concurrency Thread Group

Post by harano » Fri 09 Nov, 2018 11:41 pm

Chào bạn!

Bạn đang hiểu nhầm một cách khá nghiêm trọng về bản chất của JMeter, cũng như bản chất của Threads, Sampler (Requests) với Loop (Iteration)
lena93 wrote:
Thu 08 Nov, 2018 2:40 pm
Bình thường em vẫn hay dùng Thread Group để chạy thì thấy Thread = Sampler.
Đối với một test thông thường (ko có Controller nào đặc biệt), thì số sampler được thực thi sẽ = Threads x Loop Count
Loop Count ở đây là gì, chính là số lần lặp đi lặp lại những action trong Test Plan cho mỗi một USER/THREAD. Và bạn sử dụng Thread Group, bạn sẽ thấy thông số Loop Count này nằm chung với Thread và Ramp-up. Mình tin là bạn đang để Loop count = 1, đồng nghĩa với việc mỗi 1 user chỉ thực hiện test plan một lần duy nhất. Nên khi đó, number of sampler = Threads x loop count = threads x 1 (vì loop count của bạn để 1 mà) = threads => Từ đó làm cho bạn BỊ NGỘ NHẬN là số threads = samplers.

Về bản chất, nếu đang run real test (load test chẳng hạn), thì không ai run với loop = 1 cả, mà bắt buộc phải lặp đi lặp lại trong suốt thời gian test, để những thread đó hoạt động không ngừng nghỉ. Vì thế nên Loop Count thường là để forever (lặp ko giới hạn), và mình sẽ control bằng cách là giới hạn thời gian run test.
lena93 wrote:
Thu 08 Nov, 2018 2:40 pm
Nhưng khi em chuyển qua dùng Concurrency Thread Group thì lượng sampler không ổn định và vượt quá Concurrency nhiều. Cho em hỏi 1 Concurrency thì có bao nhiêu Sampler ạ ? Có thể setting được lượng sampler trong 1 Concurrency không ạ ?
Qua với Concurrency Thread Group, bản chất của nó, nó sẽ config cho bạn số users/threads sẽ run, và BY DEFAULT, thì loop-count của nó là forever rồi, bạn sẽ thấy 1 tham số khác của nó, là "Hold Target..." chính là thời gian để run test sau khi đạt max ramp-up. Mà vì nó control test theo thời gian run, với loop count forever, nên không thể nào biết trước được tổng số sampler được run là bao nhiêu. Nói đơn giản, ví dụ run 10 threads, mỗi threads chỉ run đúng 1 request trong test plan, run tổng trong 60s, mỗi request nó mất 1s response time chẳng hạn, thì làm phép tính 10 * 1 * 60 = 600 sampler được run. Nhưng thực tế, có thể có request run 10s, có request lại run 0.5s, hoặc toàn bộ các request đều có response time là 60s, vậy chẳng phải chỉ run được 10 samplers cho toàn bộ test thôi sao? Việc đó là không control được...

-----------

Bạn nên tham khảo bài này để hiểu rõ hơn các khải niệm trong Thread Group: https://jmetervn.com/2016/10/20/thread-group-in-jmeter/

Add Skype: harano1109 để được add vào JMeter Skype group, sẽ trao đổi thuận tiện hơn... với nhiều chuyên gia trong lĩnh vực test performance và cả JMeter.



Post Reply

Return to “JMeter”