日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Android cts all pass 全攻略

系統(tǒng) 2164 0

android CTS ! Goodbye fails ! Goodbye timeout !

?為什么要進(jìn)行cts測(cè)試

Android兼容性測(cè)試(CTS)和連帶的兼容性定義文檔(CDD),是一個(gè)確保終端設(shè)備與特定版本Android兼容的自管理程序。CTS測(cè)試集包含大約24,000個(gè)在Android設(shè)備上運(yùn)行的測(cè)試用例,這些用例分別針對(duì)電話、圖形、相機(jī)、GPS、觸摸屏、無(wú)線網(wǎng)等功能。Google針對(duì)每個(gè)主要Android版本公布了CDD文檔,其中指出了對(duì)CTS中每類測(cè)試的具體要求。通過(guò)CTS測(cè)試是訪問(wèn)Android軟件市場(chǎng)的 必要條件 之一。通過(guò)CTS測(cè)試之后便允許在設(shè)備上使用Android商標(biāo),它標(biāo)志著該設(shè)備能夠良好 兼容 軟件市場(chǎng)中的數(shù)十萬(wàn)應(yīng)用程序。

?常見(jiàn)問(wèn)題和解決方案

我在這里不寫(xiě)怎么執(zhí)行CTS,-p 是什么意思 -t是什么意思,我總結(jié)的是在執(zhí)行 cts_host > start --plan CTS 之后,想all pass 的那些有營(yíng)養(yǎng)的東西。

? testcase timeout

測(cè)試某個(gè)testcase的時(shí)候一直出現(xiàn) “........”,遲遲沒(méi)有pass或者fail,等良久出現(xiàn)一個(gè)血淋淋的timeout,很讓人傷心。有不少人笑嘻嘻的以為timeout 挺好,至少它不是fail。在我看來(lái)timeout 比 fail 還恐怖,因?yàn)樗B進(jìn)行測(cè)試到底是pass還是fail的權(quán)利都沒(méi)有。想不被硬件設(shè)備廠商笑話,必須0 timeout ,然后再爭(zhēng)取0 fail 。

timeout多數(shù)都是由于這個(gè)錯(cuò)誤造成的:

Exception in thread "Thread-XX" com.android.ddmlib.ShellCommandUnresponsiveException

at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408)

at com.android.ddmlib.Device.executeShellCommand(Device.java:276)

at com.android.cts.TestDevice$1.run(TestDevice.java:1718)

解決方案:

這個(gè)錯(cuò)誤是由于CTS和SDK版本不匹配造成的。倘若用android2.2 SDK 和 android2.2 cts -r6 還是出現(xiàn)了這個(gè)問(wèn)題,那么編譯自己工程的sdk (在整體m后,再make sdk),配套官方的cts一起,就可以百分百解決這個(gè)問(wèn)題了。

必須要注意的是,不要用自己的工程代碼編譯出來(lái)的cts(make cts),因?yàn)榭赡芫幾g出來(lái)的不是最新的(通常是r1版本)。而google提供的才是最新的,而硬件設(shè)備廠商都會(huì)信賴最新版本的cts的測(cè)試結(jié)果。

?Restarting device ...Restarting ADB...

板子執(zhí)行幾個(gè)測(cè)試項(xiàng)就停下,讓人很郁悶

CTS_INFO >>> Max ADB operations reached. Restarting ADB...

CTS_INFO >>> Restarting device ...
Device(xxxxxxxxxxxxxxxxxxxxxx) disconnected
Test stopped.
Device(xxxxxxxxxxxxxxxxxxxxxx) connected

解決方案:

其實(shí)重啟adb和板子是正常現(xiàn)象,如果不重啟會(huì)影響他們的正常工作。但是這樣頻繁的重啟,很影響工作效率。

我們可以控制測(cè)試中重啟的頻率:

修改android-cts/repository/host_config.xml中的 reboots value:

<!-- Number of tests executed between reboots. A value <= 0 disables reboots. -->
<IntValue name="maxTestCount" value="200" />

5000是我測(cè)試比較合理的數(shù)字,如果不跑全部的cts項(xiàng)23700個(gè)test的話,數(shù)量不多可以修改為-1,禁止重啟。

如果數(shù)量過(guò)多,則還是重啟的好,否則中途adb會(huì)卡死停止test。自動(dòng)化測(cè)試,你不會(huì)一直盯著它的對(duì)吧?

?java.io.IOException: sad result from adb: closed

倘若中途出現(xiàn):

java.io.IOException: sad result from adb: closed
00:47 E/ddms: ADB rejected shell command (am instrument -w -e bundle true android.tests.devicesetup/android.tests.getinfo.DeviceInfoInstrument): closed

CTS_ERROR >>> Failed to execute shell command am instrument -w -e bundle true android.tests.devicesetup/android.tests.getinfo.DeviceInfoInstrument on device 0xxxxxxxxxxxx

java.io.IOException: sad result from adb: closed

解決方案:

別擔(dān)心,重啟一下板子就好了。

?其他fail

因?yàn)楦鱾€(gè)項(xiàng)目差異,所以fail項(xiàng)不同,拋開(kāi)硬件差異所決定的fail,還有系統(tǒng)工程師為了掩飾別的bug而新增的cts fail bug,我們還需要注意的是:

1.Net相關(guān)的testcase ,記得開(kāi)wifi \ 3G,保持網(wǎng)絡(luò)聯(lián)通

2.SMS相關(guān)的testcase,記得插SIM卡

3.當(dāng)I2C上某個(gè)設(shè)備的testcase沒(méi)有過(guò),試試禁掉I2C上其他的sensor服務(wù),單一測(cè)試,也許會(huì)有意外收獲

如果你還深陷cts fails 困擾 ,歡迎交流。

Android cts all pass 全攻略


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 兴山县| 马尔康县| 天台县| 溆浦县| 安溪县| 中山市| 永济市| 淮安市| 宁都县| 上饶市| 云和县| 循化| 汉沽区| 宁海县| 黑龙江省| 镇江市| 汾阳市| 金昌市| 香格里拉县| 黄陵县| 常熟市| 莎车县| 通山县| 于田县| 松溪县| 同德县| 怀远县| 安庆市| 政和县| 明水县| 威信县| 汉川市| 个旧市| 鄢陵县| 华坪县| 南昌县| 菏泽市| 连州市| 海南省| 宁化县| 桐庐县|