2013-05-22 37 views
6

Tôi có một nhóm chuỗi Jmeter sử dụng biến uuid nhiều lần trong suốt.Biến ngẫu nhiên Jmeter trong một số chủ đề

uuid được định nghĩa với 12345678-1234-4444-a123-${__Random(111111111111,999999999999)}

Nói cách khác, nó bắt đầu với một loạt cố định 12345678-1234-4444-a123- và sau đó randomizes mười hai ký tự cuối cùng.

Tôi muốn chạy nhiều luồng cùng một lúc, điều này cho biết vấn đề sau: Khi tôi xác định uuid là biến do người dùng xác định bên trong nhóm chuỗi, nó sẽ ngẫu nhiên một lần và sau đó sử dụng giá trị đó cho tất cả chuỗi của tôi. Nếu tôi thiết lập nó toàn cầu, điều tương tự cũng xảy ra.

Tôi sẽ chạy hàng nghìn chủ đề cùng lúc khi tôi hoàn thành, vì vậy tôi không thể thực hiện các giải pháp thủ công hoặc đọc/ghi vào đĩa.

Có ai ngoài kia có kinh nghiệm với điều này không? Tôi đã được thông qua tài liệu và Google trong một thời gian, nhưng dường như không thể tìm thấy một giải pháp.

Tóm lại: Tôi cần phải ngẫu nhiên một biến, sử dụng biến đó trong toàn bộ nhóm luồng và chạy nhóm luồng này trong một số chuỗi đồng thời. Biến phải có các giá trị ngẫu nhiên khác nhau trong mỗi chuỗi khác nhau.

Trả lời

18

Giả sử bạn chỉ có thể sử dụng Random Variable yếu tố cấu hình thay vì:

Variable Name:  uuid 
Output Format:  12345678-1234-4444-a123-000000000000 
Minimum Value:  111111111111 
Maximum Value:  999999999999 
Per Thread (User): True 

tạo giá trị

  • thể được truy cập như ${uuid};
  • duy nhất cho mỗi chuỗi;
  • được bảo quản giữa các mẫu khác nhau gọi lưu lượng của mỗi luồng (không được tái tạo trong mỗi lần tham chiếu);
  • được tạo trong mỗi lần lặp của Nhóm chủ đề.
Test Plan 
    Thread Group 
     Random Variable 
     ... 
     Sampler 1 
     Sampler 2 
     ... 

ví dụ:


iteration: 1 
    thread: 1 
     sampler 1: VALUE_1-1 
     sampler 2: VALUE_1-1 
     ... 
    thread: 2 
     sampler 1: VALUE_2-1 
     sampler 2: VALUE_2-1 
     ... 
    ... 
iteration: 2 
    thread: 1 
     sampler 1: VALUE_1-2 
     sampler 2: VALUE_1-2 
     ... 
    thread: 2 
     sampler 1: VALUE_2-2 
     sampler 2: VALUE_2-2 
     ... 
    ... 

Mẫu kịch bản triển khai cho schema đưa ra ở trên: rnd-var.jmx


Theo Random Seed mô tả lĩnh vực Random Variable:

Mặc định là thời gian hiện tại trong mili giây. Nếu bạn sử dụng cùng một giá trị giống như với mỗi chuỗi được đặt thành true, bạn sẽ nhận được cùng một giá trị cho Tìm kiếm chủ đề theo lớp ngẫu nhiên.

Nếu hai trường hợp ngẫu nhiên được tạo với cùng một hạt giống và cùng một chuỗi các cuộc gọi phương thức được thực hiện cho mỗi, chúng sẽ tạo và trả về các chuỗi số giống hệt nhau.

Hãy ghi nhớ về việc triển khai các trường hợp có đồng thời cao (như được đề cập bên dưới trong nhận xét). Để khắc phục vấn đề này, bạn có thể sử dụng hạt giống ngẫu nhiên với ví dụ: ${__Random(MIN,MAX)} là giá trị của trường Seed for Random function.

+1

Brilliant @Alies Belik ... nhưng tôi đang sử dụng Bộ điều khiển vòng lặp chứ không phải các mẫu lấy mẫu khác nhau. Lưu lượng là: 1. Nhóm chủ đề 1.1 Bộ đếm vòng 1.1.1 Yêu cầu SOAP Tôi đặt biến ngẫu nhiên ở đâu? –

+1

Bạn cũng có thể sử dụng Biến ngẫu nhiên để chọn chuỗi từ danh sách được xác định trước cho mỗi chuỗi (người dùng). Tôi đã sử dụng nó để chọn ngẫu nhiên một từ khóa tìm kiếm cho mỗi người dùng ảo. Tôi đã tạo một biến với danh sách từ khóa được phân cách bằng dấu phẩy, sau đó tạo một biến ngẫu nhiên bên trong một nhóm chuỗi có giá trị nhỏ nhất là 0 và giá trị lớn nhất '$ {__ javaScript ('$ {search.keywords}'. Split ('\,'). -1;)} 'và lưu nó vào biến keyword.index. Sau đó, nơi tôi muốn sử dụng từ khóa được chọn ngẫu nhiên, tôi sử dụng '$ {__ javaScript ('$ {search.keywords}'. Split ('\,') [$ {keyword.index}];)}' – Cvuorinen

+1

Tôi đã được sử dụng, nhưng chỉ thông báo rằng một số chủ đề vẫn nhận được cùng một giá trị. Tôi cho rằng đó là bởi vì các chủ đề được bắt đầu cùng một lúc, do đó giá trị ngẫu nhiên được tạo ra ở cùng một mili giây, khiến cho các chuỗi có cùng giá trị như các cơ sở ngẫu nhiên trên mili giây. Bất kỳ lời khuyên xung quanh đó? –

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