2011-04-13 1 views
1

JMeter를 사용하여 GWT로 작성된 webapp 테스트를로드하고 있습니다.JMeter에서 사용자 세션 분리 GWT 앱에서 Java 요청 샘플러 (SyncProxy 포함)

SyncProxy 나는 클라이언트 (브라우저) 인 것처럼 응용 프로그램 서버에서 원격 메소드를 실행하기 위해 Java 코드를 작성할 수 있습니다.

Java 코드를 JMeter의 JavaSamplerClient를 구현하는 클래스로 래핑했습니다. 이것이 의미하는 바는 JMeter 객체 내에서 자체 Java 코드를 실행할 수 있으며 테스트 로직에 따라 실행되도록하는 것입니다.

이제 문제가 발생했습니다. JMeter의 HTTPSampler를 사용하지 않기 때문에 사용자는 내가 원하는 방식대로, 즉 서로 독립적으로 행동하지 않습니다. HTTPSampler + HTTP 인증 관리자 + HTTP 쿠키 관리자를 사용할 때 나는 그 문제를 결코 가지지 못했습니다.

각 요청마다 인증 데이터를 추가 HTTP 헤더로 보내도록 SyncProxy를 수정하여 기본 인증 부분을 해결했습니다.

질문 : 사용자가 독립적이어서 수시로 서로의 세션을 도용하지 못하도록 내가 처분 할 수있는 도구를 가장 잘 구현하는 방법은 무엇입니까?

답변

0

약간의 구조 조정을 고려해보십시오.

JMETER 샘플러를 사용하여 세션을 로그인하고 유지 관리하고 userID 및 세션 정보 (쿠키 또는 세션 ID)를 Java 클래스로 전달하십시오. 으로 Beanshell 샘플러를 사용

, 당신은 자바 코드를 실행하고 나는 매우 비슷한 일을하는 과정에서 나는 (이 경우 사용자 ID 및 세션 정보) JMeter를 변수에 액세스 할 수

1

을 가질 수 있습니다.

제 접근 방식은 세션 작성 및 로그인 메커니즘으로 작동하는 별도의 Java 샘플러를 갖는 것입니다.

syncproxy에는 멀티 세션 옵션이 있습니다. 세션 인스턴스는 토큰에 의해 선택 가능한 세션 정보가있는 정적 목록 클래스에 저장됩니다. 토큰 참조는 jmeter 스레드 변수로 구성됩니다.

그런 다음 주 syncproxy java sampler를 사용하면 매개 변수 목록에서 thread 변수를 사용하고 목록에서 올바른 jmeter 스레드에 대한 올바른 세션을 선택하십시오.

NB 여러 세션을 사용 중이고 AutoSyncProxy 패치를 사용한 경우 세션 정의를 허용하도록 AutoSyncProxy.newProxyInstance 메서드를 수정해야합니다.

관련 문제