Tôi có một thử nghiệm duy nhất nhận dữ liệu từ nhà cung cấp dữ liệu. Tôi muốn thử nghiệm này chạy song song với các giá trị khác nhau từ nhà cung cấp dữ liệu.Thực hiện song song TestNG với DataProvider
tôi đã cố gắng một cách tiếp cận như:
public class IndependentTest
{
@Test(dataProvider = "dp1" ,threadPoolSize=3,invocationCount=1)
public void testMethod(int number)
{
Long id = Thread.currentThread().getId();
System.out.println("HELLO : " + id);
}
@DataProvider(name = "dp1",parallel=true)
public Object[][] dp1() {
return new Object[][] {
new Object[] { 1 },
new Object[] { 2 },
new Object[] { 3 },
new Object[] { 4 },
new Object[] { 5 },
new Object[] { 6 },
new Object[] { 7 },
new Object[] { 8 }
};
}
}
Kết quả tôi nhận được là:
Xin chào: 10
Xin chào: 12
Xin chào: 17
Xin chào: 11
Xin chào: 16
Xin chào: 14
Xin chào: 13
Xin chào: 15
Sinh ra 10 chủ đề trong khi tôi định 5 trong kích thước hồ bơi thread. Bạn có thể vui lòng cho biết những gì phải được thêm vào đoạn mã trên để kiểm soát kích thước nhóm của nhà cung cấp dữ liệu hay không.
Bạn sẽ muốn chạy thử nghiệm song song, không phải là nhà cung cấp. Trong xây dựng của bạn cấu hình các chế độ song song cho 'methods' và 'threadCount' đến 5. –
hi Ben, Tôi có một bài kiểm tra duy nhất mà là nghĩa vụ phải chạy hơn 10k lần dựa trên số lượng các giá trị được cung cấp bởi các nhà cung cấp dữ liệu. Tôi muốn kiểm soát số lượng các chủ đề sinh ra khi song song = true được đặt trong dataprovider. Tôi đã tìm thấy đối số dòng lệnh -dataproviderthreadcount này để kiểm soát số đếm luồng dataprovider. Tuy nhiên tôi muốn biết làm thế nào điều này có thể được thực hiện bằng chú thích – sujith
Trong dự án của tôi [xây dựng] (https://github.com/ben-manes/caffeine/blob/master/caffeine/testing.gradle) Tôi cấu hình các xét nghiệm để chạy song song và tổng cộng, thực thi 1.8M do các nhà cung cấp dữ liệu trên 827 phương pháp thử nghiệm. Tôi không nghĩ rằng bạn có thể cấu hình điều này bằng các chú thích và thay vào đó một cấu hình của nó được chuyển vào nhân vật. –