grinder.processNumber 관련하여 문의 드립니다.

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

grinder.processNumber 관련하여 문의 드립니다.

노상기
안녕하세요(__)
윤준호님 블로그를 통해서 많은 정보를 얻어가고 있는 nGrinder 사용자 입니다.
다름이 아니라 각각의 쓰레드마다 다른 number를 가지고 와서 ID로 활용하기 위해 아래 내용을 참고하여 grinder.processNumber를 사용하려고 하는데요.
http://junoyoon.tistory.com/entry/Thread-%EB%A7%88%EB%8B%A4-%EB%8B%A4%EB%A5%B8-%EC%9D%BC-%EC%8B%9C%ED%82%A4%EA%B8%B0 < 이곳을 참고 하였습니다.

log로 해당 내용을 찍어보니, processNumber가 현재 쓰레드가 돌고있는 processNumber가 아닌 고정으로 0이 나옵니다..제가 잘못 구현한 부분이 있는거 같아 문의 드립니다.

- Test Configuration -
Agent : 1, Processes : 3, Threads : 4 로 Vuser 는 total 12입니다.

- 결과 -
processNumber가 0~2로 증가하지 않고, 0으로 고정되어 threadNumber가 0~3까지 총 4번 반복되어, userid가 testId0,testId1,testId2,testId3 이 4개가 3번 반복되어 로그가 찍힙니다.

- 원하는 결과 -
testId0~testId11까지 총 12개의 아이디가 생성되었으면 합니다.

- 구현부 -
def __call__(self):
#thread count calculate
                totalProcessCount = grinder.getProperties().getInt("grinder.processes", 1)
                log("######totalProcessCount is : %s"%totalProcessCount)  -> 3으로 나옵니다
                totalThreadCount = grinder.getProperties().getInt("grinder.threads", 1)
                log("######totalThreadCount is : %s"%totalThreadCount)  -> 4로 나옵니다.
                agentNumber = grinder.agentNumber
                log("--agentNumber is : %s--" %agentNumber)
                processNumber = grinder.processNumber
                log("--processNumber is : %s--" %processNumber)
                threadNumber = grinder.threadNumber
                log("--threadNumber is : %s--" %threadNumber)
                #self.curNumber = ((agentNumber+1)*processNumber*totalThreadCount)+threadNumber -> 이부분은 카운트를 구하기위해 제가 구현해본 부분입니다. 주석처리하여 동작하지 않습니다.
                self.curNumber = (agentNumber * totalProcessCount * totalThreadCount) + (processNumber * totalThreadCount) + threadNumber;
                log("############curNumber is : %s####################" %self.curNumber)
               
                #id setting
                self.userid = "testId%s"%self.curNumber;
                self.usernickname = "tL%s"%self.curNumber;
                log("user id is : %s"%self.userid)
Reply | Threaded
Open this post in threaded view
|

Re: grinder.processNumber 관련하여 문의 드립니다.

Gisoo.Gwon
log는 프로세스 별로 생성됩니다.
즉, Process : 3, Threads : 4로 설정하시면 3개의 로그파일이 생성됩니다.
xxxxx-0.log, xxxxx-1.log, xxxxxx-2.log

하지만 ngrinder에서는 모든 로그파일을 보관하지 않고 0번 log파일만 보관합니다.
그렇기 때문에 testId0~3까지만 로그(xxxx-0.log)에 보이는 것이구요.
실제로는 testId4~11까지 모두 정상동작했을 거에요.

만약 testId4~11의 로그도 확인하고 싶다면 테스트가 동작하는 시점에
에이전트가 설치된 장비의 ~/.ngrinder-agent/log/test-TESTNUMBER/xxxx-1.log 파일을 확인해보시면 됩니다.
Reply | Threaded
Open this post in threaded view
|

Re: grinder.processNumber 관련하여 문의 드립니다.

노상기
확인 해주신 사항
~/.ngrinder-agent/log/test-TESTNUMBER/xxxx-1,2.log 파일에서 확인하였습니다.
testId4~11 정상적으로 찍히는 부분 확인되었습니다. 동작 잘되는것으로 보입니다.
제가 그 부분을 모르고 0번만 보고 있었네요^^;

상세한 답변 감사드립니다!