Ana içeriğe geç

Feeder ve Parametrizasyon

Senaryoya bir feeder bağlanır. ${name} değişkenleri path, header ve body içinde çözülür. URL parametrelerinde queryParam kullanın.

FactoryDeğerler
csv("testdata/search.csv")CSV sütunları değişken olur; satırlar dosya sırasıyla döngüye girer.
json("testdata/products.json")JSON nesne dizisi; satırlar dosya sırasıyla döngüye girer.
random("userId", 1, 10000)Her iki sınır dahil rastgele tamsayı.
uuid("requestId")Yeni UUID değeri.
sequence("orderId", 1000, 1)1000’den başlayan, 1 artan sıra.
constant("tenant", "demo")Sabit string değeri.

fromCsv, fromList, fromSupplier, circular() veya parametresiz random() factory/strateji metotları yoktur. CSV ve JSON otomatik döngü yapar. Yerleşik CSV ayrıştırıcısı basit virgülle ayırma kullanır; tam quoted-field CSV parser değildir. İçinde virgül bulunmayan basit veri kullanın ve dosyanın varlığını çalıştırmadan önce doğrulayın.

Örnek​

testdata/search.csv
query,clientId
laptop,client-1
keyboard,client-2
import io.testfly.loadtest.BaseLoadTest;
import io.testfly.loadtest.LoadTestFeeder;
import org.testng.annotations.Test;

public class SearchLoadTest extends BaseLoadTest {
@Test
public void searchWithData() {
loadScenario("Search").users(10)
.feed(LoadTestFeeder.csv("testdata/search.csv"))
.step("Search").get("/search")
.queryParam("q", "${query}")
.header("X-Client-ID", "${clientId}").and()
.run().assertP95Below(300);
}
}

CSV/JSON dosyaları filesystem veya classpath üzerinde bulunabilir. Sentetik kimlik bilgileri kullanın; gerçek parolaları commit etmeyin. JSON login body’sinde feeder kullanımı için çok adımlı örneğe bakın.