내 웹 응용 프로그램에서 POST 동작 중 하나의 부하 테스트를 실행하고 싶습니다. 문제는 POST 데이터에서 고유 한 전자 메일 주소를받은 경우에만 작업을 완료 할 수 있다는 것입니다. 내가 몇 수천 WCAT 스크립트처럼, 고유의 이메일을 각각 요청 생성 :로드 테스트 임의 화 : 각 가상 클라이언트마다 다른 시나리오를 사용하도록 WCAT을 설정하는 방법은 무엇입니까?
transaction
{
id = "1";
weight = 1;
request
{
verb = POST; postdata = "Email=test546546546546%40loadtest.com&...";
setheader { name="Content-Length"; value="...";
}
// more requests like that
}
내 UBR 설정 파일 같은 것입니다 :
settings
{
counters
{
interval = 10;
counter = "Processor(_Total)\\% Processor Time";
counter = "Processor(_Total)\\% Privileged Time";
counter = "Processor(_Total)\\% User Time";
counter = "Processor(_Total)\\Interrupts/sec";
}
clientfile = "<above-wcat-script>";
server = "<host name>";
clients = 3;
virtualclients = 100;
}
내가 테스트를 3 × 100 = 300 클라이언트를 실행
요청을 전송하기 시작하지만, 그들은 동일한 순서로이를 수행하여 첫 번째 클라이언트의 첫 번째 요청이 처리되고 다른 클라이언트의 다음 299 개의 요청이 더 이상 고유하지 않습니다. 그런 다음 일부 클라이언트의 두 번째 요청이 처리되고 다른 클라이언트의 299 개의 동일한 요청이 고유하지 않습니다. 요청을 무작위로 추출하거나 순서를 달리하거나 각 가상 클라이언트마다 별도의 시나리오 스크립트를 설정하여 각 요청에서 고유 한 전자 메일 주소를 전달할 수있는 방법이 필요합니다. WCAT로 그렇게 할 수 있습니까?그런 테스트를 할 수있는 다른 도구가 있습니까?
내가 찾고있는 것이 맞습니다. – PanJanek
rand()를 사용하여 clientindex()와 vclientindex도 약간의 변화가있었습니다. rand()의 숫자는이 'rand ("100000", "1000000")와 같은 문자열이어야합니다. 웬일인지 그것을 이해하는 데 1 시간이 걸렸다. –
@DJvanWyk, rand() 함수에서 빠진 따옴표를 알아 줘서 고마워. 내 대답에서 실수를 바로 잡았습니다. –