응용 프로그램 응답 시간을 측정 / Android에서 다음 활동을 기다리고 있습니까?

StackOverflow https://stackoverflow.com//questions/12666925

문제

일부 Android 응용 프로그램 (액세스 할 수없는 소스 코드가 포함되지 않은) 일부 Android 응용 프로그램의 타이밍 정보를 얻기 위해 자동화 된 테스트 제품군을 개발 중입니다.

나는 아직 Monkeyrunner 또는 Robotium을 사용할지 여부를 결정하지 않았습니다. 내 주요 관심사는 UI (URL 입력)에 대한 조치를 취한 후에 (URL을 입력하십시오) Android가 내 요청을 수행했을 때의 모든 다음 활동의 구성 요소가 사용할 준비가되면 결과를 얻고 결과를 얻을 준비가되어 있습니다. 다음 동작 (요청한 페이지가 완전히로드되거나 이메일이 완전히 열리고 이메일이 열려 있음을 알려줍니다).

웹 브라우저의 경우 이것은 간단합니다. onProgresschaged () 또는 onPageFinished ()를 사용할 수 있습니다. 그러나 나는 모든 응용 프로그램에서 작동하는보다 일반적인 방법을 찾고 있습니다. 나는 rastrumentation.waitforidlesync () 또는 Instrumentation.WaitForIDLE ()가 최선의 내기 일 수 있습니다.

그러나 Monkeyrunner와 Robotium에 대해 읽은 문서에 관해서는 WaitForidle과 통합하지 않는 것처럼 보입니다. 로봇에서 나는 입력을 보낼 수 있고 출력을 얻을 수 있지만 출력이 준비되었을 때 알 수있는 간단한 방법이 아니며 해당 지점에서 콜백을 호출 할 수있는 간단한 방법이 아닙니다. Monkeyrunner 도이 측면에서도 유사합니다.

그래서 저의 요청이 내 자신의 것들을 다시 구현하지 않고 내 요청이 충족 된 시간 (사용자가인지 됨)을 알리지 않고 몇시에 알 수있는 간단한 방법이 있습니까?

감사합니다.

도움이 되었습니까?

해결책

이것은 매우 까다 롭고 전적으로 당신이 멍청한 일을 요구하는 것에 대해 정확히 무엇을 요구하는지에 달려 있습니다. 예를 들어 MonkeyRunner 스크립트가 있고 계산기 응용 프로그램을 시작하는 명령을 실행 한 경우 Python 하위 프로세스 모니터링 ADB LogCat -b 이벤트 출력을 수행하여 계산기 앱이 시작되었는지 여부를 결정할 수 있습니다.계산기에서 버튼을 눌러 묻는 경우 1 ~ 2 초 동안 수면을 취할 수 있습니다.

안드로이드가 이벤트를 처리했는지 여부를 결정하는 직접적인 방법은 없습니다.간단히 모든 작업이 다른 모든 작업이 다른 시간이 다릅니다.

다른 팁

로봇에 Asserts를 넣은 다음 System.NanoSeconds ()를 타이머 전후에 사용하십시오.

이것은 타이밍 정보를 얻는 쉬운 방법 일 수 있습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top