最近要添加友盟測(cè)試自定義事件, 發(fā)現(xiàn)之前是用兩個(gè)版本來(lái)測(cè)試的,一個(gè)版本專(zhuān)門(mén)測(cè)試自定義事件,測(cè)完沒(méi)問(wèn)題再移植到線上版本, 這樣效率太低, 很多無(wú)用功, 查了下友盟官方文檔, 完全可以用集成測(cè)試來(lái)搞定.
首先, 代碼中埋好點(diǎn), 友盟里添加了APP,這是必須的.如果有多個(gè)版本,根據(jù)每個(gè)版本的AppKey來(lái)確定集成的是哪個(gè)版本, 這個(gè)是在代碼中操作的,如下
/** 初始化友盟統(tǒng)計(jì)模塊
@param appKey 友盟appKey.
@param reportPolicy 發(fā)送策略, 默認(rèn)值為:BATCH,即“啟動(dòng)發(fā)送”模式
@param channelId 渠道名稱(chēng),為nil或@""時(shí), 默認(rèn)為@"App Store"渠道
@return void
*/
+ (void)startWithAppkey:(NSString *)appKey reportPolicy:(ReportPolicy)rp channelId:(NSString *)cid;
其次,添加集成設(shè)備,如下圖
成功之后可以看到對(duì)應(yīng)列表,點(diǎn)擊"查看",可以瀏覽對(duì)應(yīng)設(shè)備的歷史日志;
還可以查看實(shí)時(shí)日志,實(shí)時(shí)日志和歷史日志都記錄了,頁(yè)面路徑和自定義事件的用戶(hù)行為
到這里我的集成測(cè)試之路算是成功了, 但是可別著急, 你以為這就完了嗎? NONONO~重點(diǎn)來(lái)了:
- 在經(jīng)過(guò)我反復(fù)測(cè)試之后我發(fā)現(xiàn)了一個(gè)問(wèn)題:
- 雖然我可以看到實(shí)時(shí)日志,也能看到歷史日志, 并且基本上和我測(cè)試時(shí)的操作相符
但是,但是,但是---- - 后臺(tái)統(tǒng)計(jì)數(shù)據(jù)竟然也有變化, 后臺(tái)統(tǒng)計(jì)數(shù)據(jù)竟然也有變化, 后臺(tái)統(tǒng)計(jì)數(shù)據(jù)竟然也有變化 !
重要的事說(shuō)三遍! - 因?yàn)檫@次我加的自定義事件都是新添加的, 并且項(xiàng)目還在開(kāi)發(fā)階段未發(fā)版, 按理說(shuō)友盟集成測(cè)試之后后臺(tái)的數(shù)據(jù)不會(huì)變應(yīng)該都是0才對(duì).
- 我發(fā)現(xiàn)有一個(gè)自定義事件的統(tǒng)計(jì)結(jié)果從0變成了1, 這是多么質(zhì)的一個(gè)飛躍! 這意味著這個(gè)不合理的地方非常醒目, 在一堆0里聳立著一個(gè)1, 直就是你最大的錯(cuò)誤...
這里有一個(gè)大前提,集成測(cè)試的數(shù)據(jù)是不應(yīng)該出現(xiàn)在后臺(tái)統(tǒng)計(jì)里的,以免污染后臺(tái)數(shù)據(jù)
什么是集成測(cè)試? 集成測(cè)試是通過(guò)收集和展示已注冊(cè)測(cè)試設(shè)備發(fā)送的日志,來(lái)檢驗(yàn)SDK集成有效性和完整性的一個(gè)服務(wù)。 所有由注冊(cè)設(shè)備發(fā)送的應(yīng)用日志將實(shí)時(shí)地進(jìn)行展示,您可以方便地查看包括應(yīng)用版本、渠道名稱(chēng)、自定義事件、頁(yè)面訪問(wèn)情況等數(shù)據(jù),提升集成與調(diào)試的工作效率。
注意: 使用集成測(cè)試之后,所有測(cè)試數(shù)據(jù)不會(huì)進(jìn)入應(yīng)用正式的統(tǒng)計(jì)后臺(tái),只能在“管理--集成測(cè)試--實(shí)時(shí)日志”里查看,您不必再擔(dān)心因?yàn)闇y(cè)試而導(dǎo)致的數(shù)據(jù)污染問(wèn)題,讓數(shù)據(jù)更加真實(shí)有效的反應(yīng)用戶(hù)使用情況。
我開(kāi)始反復(fù)檢查以上步驟, 反復(fù)查看友盟官方文檔, 我發(fā)現(xiàn)只有一個(gè)地方是我沒(méi)有按照友盟文檔來(lái)做的. 文檔里說(shuō):
使用集成測(cè)試模式請(qǐng)先在程序入口處調(diào)用如下代碼,打開(kāi)調(diào)試模式:
[MobClick setLogEnabled:YES];
我點(diǎn)進(jìn)頭文件里看到這段描述:
/** 設(shè)置是否打印sdk的log信息, 默認(rèn)NO(不打印log).
@param value 設(shè)置為YES,umeng SDK 會(huì)輸出log信息可供調(diào)試參考. 除非特殊需要,否則發(fā)布產(chǎn)品時(shí)需改回NO.
@return void.
*/
+ (void)setLogEnabled:(BOOL)value;
我覺(jué)得這個(gè)就只是控制友盟的log信息是否在Xcode控制臺(tái)輸出, 我并不想要它在控制臺(tái)輸出, 因?yàn)閷?shí)時(shí)日志和歷史日志里有我想要的全部信息, Xcode控制臺(tái)輸出一堆亂起八糟的東西很不優(yōu)雅, 所以沒(méi)加這句. 但是又找不到其他不合理的地方, 我就去找友盟的技術(shù)支持尋求幫助.
有趣的來(lái)了, 第一個(gè)客服在我說(shuō)沒(méi)加這句之后,就說(shuō)問(wèn)題就在這,然后不管我怎么問(wèn),都不理我了,然后我就毫無(wú)疑問(wèn)投訴了他;-)
不懂技術(shù)的技術(shù)支持客服并沒(méi)有阻止我解決bug的決心,雖然只有一個(gè)bug,但,bug就是bug,不管多少;-)
-
同樣的,第二個(gè)客服也在聽(tīng)我說(shuō)我沒(méi)加這句代碼之后表明,問(wèn)題就在這兒了,案子破了. 不同的是, 我接下來(lái)的問(wèn)題, 這個(gè)客服聽(tīng)進(jìn)去了, 并且通過(guò)問(wèn)別人幫助我找到了答案, 點(diǎn)名表?yè)P(yáng)~
敬業(yè)的客服
知道自己所有步驟沒(méi)啥問(wèn)題之后, 我就安心了, 可能是我沒(méi)集成測(cè)試之前點(diǎn)過(guò)導(dǎo)致的, anyway , 重置數(shù)據(jù)之后, 萬(wàn)物歸零, 萬(wàn)事大吉, 嘿嘿嘿