我目前正在使用 Gattle 和 DataFaker 进行负载测试。但是,我遇到了一个问题,测试代码似乎重复生成相同的对象。此观察基于在测试执行期间监控 API 生成的日志。
我的目的是进行质量负载测试,但重复的对象生成阻碍了测试结果的准确性。我想知道是否有人遇到过类似的问题,或者可以提供有关可能导致此行为的原因的见解。
我将不胜感激任何建议或解决方案,以确保加特林负载测试中的对象生成按预期随机化。预先感谢您的协助!
public class ApiSimulation extends Simulation {
private final Faker faker = new Faker(Locale.forLanguageTag("pt_BR"));
/**
* Criação do protocolo HTTP
*/
private final HttpProtocolBuilder httpProtocolBuilder = http
.baseUrl("http://localhost:8081")
.userAgentHeader("Mozilla/5.0");
/**
* Criação do cenário de inserção de dados
*/
private final ScenarioBuilder insertAlunosScenario = scenario("Inserção em massa de dados")
.feed(listFeeder(List.of(
Map.of("id", UUID.randomUUID(),
"nome", faker.name().fullName(),
"idade", faker.number().numberBetween(3, 17),
"email", faker.internet().emailAddress(),
"sexo", faker.gender().shortBinaryTypes().toUpperCase(),
"dataInsercao", LocalDateTime.now(),
"dataAlteracao", LocalDateTime.now())))
.random())
.exec(http("Criando o aluno")
.post("/alunos")
.header("Content-Type", "application/json")
.body(ElFileBody("alunoTemplate.json"))
.asJson()
.check(status().in(201, 400, 422, 500)));
{
setUp(insertAlunosScenario.injectOpen(
constantUsersPerSec(10_000).during(of(10, SECONDS))))
.protocols(httpProtocolBuilder);
}
}
这是预期的,因为您传递的是单例列表。官方文档中的第一个示例正是您所要求的。