2016-10-17 8 views
0

AndroidViewClient를 사용하여 자동화 된 테스트 스크립트를 실행하고 있습니다. 나는 스크립트에서 몇 개의 덤프를한다. 이 스크립트는 안드로이드 장치의 속도/응답 시간 테스트에 사용되며 n> 300으로 테스트가 실행됩니다. 나는 # 150에서 다음 오류를 얻는다.덤프 (AndroidViewClient/Culebra) 데이터를 메모리에서 지우는 방법은 무엇입니까?

에 ValueError가 ("유효한 XML이 포함되어 있지 않습니다 받았다 :"+ receivedXml)를 인상 에 ValueError : 유효한 XML이 포함되어 있지 않습니다받은 : 사망

뒷조사 후

와 "memory_profiler"를 사용하여 메모리를 모니터링을 덤프 데이터가 메모리에 스태킹되어 테스트가 느려지고 테스트 결과에 영향을 미칩니다.

1- 왜 오류가 발생합니까? 2- 정확히 덤프 데이터가 저장되는 위치는 어디입니까? 2 덤프 할 때마다 메모리를 지우는 방법?

답변

1

당신이 설명하는 것은 AndroidViewClient이 API에 대한 기본 백엔드로 사용하는 것입니다 uiautomator dump에 문제가 (아마 당신의 장치 구현)처럼 보인다> = 19 그러나

, 당신은 AndroidViewClient을 제거해야합니다 절대적으로 확신 할 수 그림에서 동일한 명령을 실행하면 백엔드로 사용됩니다.

AndroidViewClient 12.0.2은 명령 줄에 지정된 일부 디버그 옵션을 지원합니다. 하나는 실행중인 명령을 확인하는 데 매우 유용합니다.

$ dump --debug UI_AUTOMATOR:True > /dev/null 

이 명령은

executing 'uiautomator dump --compressed /dev/tty >/dev/null' 

같은 다음이 당신이 문제가 장치에 있는지 결정하기 위해 반복적으로 실행할 수있는 명령은 인쇄됩니다. 당신이

for n in {0..299}; do echo $n; adb shell uiautomator dump --compressed /dev/tty \>/dev/null >/dev/null; done 

을 실행하는 데 bash를 사용하고 거기에 메모리 누수 나 뭔가 장치에 실패하면 확인할 수 있습니다 전에 명령이 인쇄 복사 예를 들어

.

질문에 대해서는 명령에서 알 수 있듯이 덤프 데이터는 아무 곳에도 저장되지 않고 소켓에만 복사됩니다. 장치에 로컬로 데이터를 저장해야하는 버전이 있지만이 경우 사용 된 파일은 매번 덮어 씁니다.