한 건의 데이터를 입력하는 테스트는 개발자가 손으로 디바이스에 직접 틱틱 입력하면서 금방 테스트할 수 있습니다. 그러나 1000 건의 데이터를 입력하는 행위를 재현해야 한다면 이건 도저히 사람이 수동으로 할 일이 아니게 됩니다. 얼마전 저한테 그런 일이 닥쳤습니다. -.-;
시나리오는 이렇습니다.
대기 화면 -> 목록 화면 -> 입력 화면 -> 여러가지 값 입력 -> 저장 버튼 -> 목록 화면 -> back 버튼 -> 대기 화면
이 시나리오를 1000 번, 2000 번 반복해야 합니다.
처음엔 JUnitPerf를 참조해서 테스트케이스 안에서 코딩을 통해 반복을 구현하려고 했지만, 답이 안나오더군요. 제가 안드로이드 테스트 프레임워크를 아직 잘 이해를 못한 탓인거 같습니다. 그래서 결국은 그냥 1 건 입력하는 테스트케이스를 만들고 am instrument를 1000번 반복해서 실행하는 것으로 구현했습니다. ^^;
아래처럼 배치파일을 만듭니다.
@rem 반복횟수. 첫번째 파라미터로 받음.
set REPEAT=%1
@rem 실행할 명령(my.app.test는 테스트케이스가 포함된 패키지명, my.app.test.InsertTest는 테스트케이스 클래스)
set TEST=adb shell am instrument -w -e class my.app.test.InsertTest my.app.test/android.test.InstrumentationTestRunner
@rem FOR /L %variable IN (start,step,end) DO command [command-parameters]
FOR /L %%A IN (1,1,%REPEAT%) DO %TEST%
배치파일이 TestInsert.bat라면 반복횟수를 파라미터로 주어 실행합니다.
C:\TestInsert.bat 1000
와우! 성공했습니다. 밥먹으러 가기 전에 돌려놓고 나는 맛있게 밥만 먹으면 됩니다. ^^
'Android' 카테고리의 다른 글
[안드로이드] 힙덤프 생성 방법 3가지 (0) | 2010.05.04 |
---|---|
[안드로이드] 문제해결 방법론 메모 (0) | 2010.05.03 |
[안드로이드] 안드로이드 테스트 관련 자료 (0) | 2010.05.03 |
[안드로이드] SQLite 테이블 조회시 한글 > 영어 > 기타 순으로 정렬하기 (1) | 2010.04.30 |
[안드로이드] 애플리케이션 프로세스에 직접 debugger 붙이기 (2) | 2010.04.13 |