Issues
Selenium Hub에 Node 등록 시 설정한 설정 값이 덮어 씌워지는 문제
현상
Node 등록할 때 명시한 maxSession의 수와 실제 테스트가 수행되는 세션의 수가 다른문제. 생성되는 세션의 수는 maven-surefire-plugin의 forkCount의 수를 따라감.
노드 등록
Selenium Hub에 Node를 등록하기 위해 java 프로세스를 생성하고 옵션 값으로 maxInstances
와 -maxSession
을 주어 최대 생성할 인스턴스와 세션의 수를 지정.
1 |
|
노드 등록 확인
Hub에 등록한 Node의 정보 확인
pom.xml
등록한 Node를 대상으로 병렬 테스트를 수행할 경우, pom.xml에 명시한 maven-surefire-plugin의 forkCount의 수 만큼 세션이 생성되고 테스트가 수행 됨.
1 |
|
테스트 수행 시
forkCount에 명시한 10개의 세션 생성 후, 테스트 수행
해결
RemoteWebDriver
를 이용해 노드를 등록하는 경우, 대상 URL을 허브의 URL을 대상으로 드라이버를 생성해야 함.
1 |
|
원인
Selenium Grid는 하나의 허브에 하나 이상의 노드를 연결해 사용하는 구조. 그렇지만 지금까지는 노드를 생성해 허브와 연결해놓고 요청을 노드에 직접 주는 방식으로 테스트했기 때문에 허브의 Console에서는 몇 개의 인스턴스가 사용 중인지를 알 수가 없었음. 따라서, 요청을 허브로 보내지도록 변경.
아래는 9개의 테스트를 실행하였을 경우, 2개의 인스턴스가 사용 중이고, 7개의 인스턴스를 필요로하는 작업이 대기중임을 Console에서 확인할 수 있음.
tomcat starting is slow
현상
위와 같이 톰캣 재시작을 하는데 엄청나게 오래걸림.
원인
톰캣7이상은 JRE의 SecureRandom 이라는 클래스로 랜덤값을 사용하는데, 이 SecureRandom을 초기화 하는데 사용되는 entropy source가 모자란 경우 지연될 수 있다 이런 내용.
아래는 tomcat wiki이고, 링크를 통해 가면 위의 문제에 관한 JRE, JDK의 이슈도 있음.
http://wiki.apache.org/tomcat/HowTo/FasterStartUp#Entropy_Source
과정
수정 대상 파일
/home1/irteam/apps/jdk/jre/lib/security/java.security
line number 70 securerandom.source=file:/dev/urandom 에서 securerandom.source=file:/dev/./urandom 으로 수정
결과
tomcat start시 약 8~12분(평균 600000ms) 걸리던 시간이 통상적인 수치(약 5~6초)로 돌아옴