在GTS測試中,需要您使用翻牆的穩定的網絡來跑media項.
對於GtsMediaTestCases,請首先check網絡問題.
[SOLUTION]
如何判斷是網絡原因導致的fail:
1. Report中判斷:
在測試Media項的時候,GTS Report中出現如下錯誤可初步判定是網絡原因導致的fail:
Failed components: < Wifi Check >
Failed components: < Video Reached Seconds >
2. Device logcat中判斷:
在device_logcat里搜索到如下關鍵字眼,都可初步判斷是網絡原因導致的fail.
wvstatus = 408: 408是widevine request time out的錯誤返回碼~
Preload timeout: 網絡問題或者服務器那邊的問題
WV_GetEsData retry count 27 and waiting for valid data : 無數次嘗試從google server上獲取data都超時失敗了~
Network is unreachable : 網絡問題
Retrying license request: acquire right沒有成功,再去acquire license。也有可能是服務器那邊有什么異常
Unable to connect to https: 無法連接
3.Download Timeout引起的fail.
在GTS4.1 R1上,Google添加了一些需要download video到本地播放的case.在播放前必須完成download.默認的timeout value is 600000ms.
例如 "com.google.android.media.gts.WidevineH264PlaybackTests#testClearWith1080P30",需要download 190MB數據, 它所需的帶寬:
190M/600000ms = 324kB/s = 2592kb/s = 2.53Mb/s
它需要連接到 Google server, 但在國內很難達到這樣的帶寬.所以我們需要修改默認的timeout值來避免網絡帶寬的干擾.
首先確認您是fail在 GtsMediaTestCases模塊,否則,此方法不適用.
將android-gts\testcases\GtsMediaTestCases.config中的test-timeout由600000ms修改為3600000ms
網絡帶寬的issue打出的LOG如下,您可以check下device_logcat中是否有以下類似LOG.若有,可按上述方法修改再來run.
01-16 10:39:28.506 7905 8074 E AndroidRuntime: FATAL EXCEPTION: Terminator
01-16 10:39:28.506 7905 8074 E AndroidRuntime: Process: com.google.android.media.gts, PID: 7905
01-16 10:39:28.506 7905 8074 E AndroidRuntime: java.lang.IllegalStateException: Test timed out after 600000 milliseconds but execution thread failed to terminate
01-16 10:39:28.506 7905 8074 E AndroidRuntime: Dumping instr and main threads:
01-16 10:39:28.506 7905 8074 E AndroidRuntime: Thread[Instr: android.support.test.runner.AndroidJUnitRunner,5,main]
01-16 10:39:28.506 7905 8074 E AndroidRuntime: at dalvik.system.VMStack.getThreadStackTrace(Native Method)
01-16 10:39:28.506 7905 8074 E AndroidRuntime: at java.lang.Thread.getStackTrace(Thread.java:580)
對於GtsMediaTestCases的fail
1. 請單獨測試此case 10來次.
2. 請晚上獨享網絡或更換VPN來測試.
3. 可拿之前pass過的手機在此環境下來測試來排除網絡因素.