背景需求
新版本上線視頻錄製與照片合成功能
基於阿里雲視頻SDK(趣拍)實現,針對安卓海量機型尤爲是視頻類功能必然存在各類各樣的兼容性問題
那麼問題來了,如何找出這些問題機型?html
技術選型
自建雲真機平臺
目前主流的方式兩種
一、STF
二、ATX
咱們選擇的是ATX
由於公司機型比較少,因此可以發現的問題不夠全面
問題彙總
https://www.meipian.cn/1j3xplf3java
雲測解決方案
一、Testin
一次八千,相似蘋果的模式封閉系統,只要把相應的app與指定的流程提交便可開始,適合測試團隊技術實力不是很強的初創公司
效果沒有想象中好,一些自建平臺發現的問題亦未能覆蓋,且一些截圖與用例描述沒法對應,使用完充值額度後棄用python
二、Wetest
使用的應該是還未公開的功能,上傳腳本驅動wetest的雲真機實現兼容測試效果git
- 接入的時候遇到了一些坑
- 引導文檔中提供的是java版本,但java版的腳本完成後上傳發現不可用,諮詢客服發現目前僅支持python版,emm··· 重擼
- 腳本運行中若是初始化使用了重啓app的方式,wetest會斷定爲進程異常退出並收集到報告中出現測試結果大面積不經過的狀況,此時的解決方案有兩種一種是不用重啓app做爲初始化的方式,第二種方式爲上傳指定字段讓wetest忽略這種異常
- 一些報告中的bug···
但整體效果還不錯,利用全平臺三百餘臺機型能夠覆蓋到絕大多數主流機型以及不一樣的安卓版本
https://www.meipian.cn/1juqs991github
運行截圖
http://v.youku.com/v_show/id_XMzk2NDY1ODQ5Ng==.html?spm=a2h3j.8428770.3416059.1web
附
替換後的初始化case方式
每次case操做完成後,經過系統back上一頁直至返回到應用主頁shell
def fanhui(self):
while self.wetestdriver.wait_for_activity(".ui.main.MainTabActivity") is False:
logger.info("不是首頁,返回")
os.popen('adb shell input keyevent 4')
time.sleep(3)
或者提示wetest平臺忽略app
platform=platform_helper.get_platform_client()
platform.procdiedreport(False)
一些會莫名其妙彈出來的框
回到主頁時,由於業務邏輯的緣由,可能會彈出讓你去領紅包,可能彈出讓你去同步通信錄好友,可能讓你去參加一個簽約做者計劃··· 防不勝防
解決方案:感受方法還不夠智能但還算實用,即在回到主頁初始化後監控全部可能會出現彈框而且給點掉測試
from selenium.webdriver.support import expected_conditions as EC
def passpop(self,content,ci):
for i in range(ci):
loc = ("xpath", "//*[@text='%s']" % content)
try:
e = WebDriverWait(self.driver, 1, 0.5).until(EC.presence_of_element_located(loc))
e.click()
print "Get alert: %s" % content
except:
pass