1. 用php的CI框架怎麼寫登錄和注冊
在view里寫login.php,在controller里寫插入資料庫的代碼,同時調用。
2. 如何一步步實現AndroidCI
一步步實現Android CI
Android上的CI構建鏈與其它平台一致,依然包含Compilation, Testing, Inspection,
Deploying階段,每一個階段的Feedback的都保持對整個團隊透明。
2、添加Function Test
Android為大家提供了一套集成測試框架Android integration testing
framework。但此框架未集成Cucumber,這導致每增加一個Function Test都需要較大的開發和維護工作。這樣高成本的實現Function
Test將大大延緩開發進度,最終因為項目進度的原因導致Function Test被丟棄。產生這樣的後果那必然是不願意看到的。
目前Android平台下已經出現多種Functiong Testing測試工具,如Native Driver, Robotium,
Calabash等。在嘗試對比後,最終選擇了Calabash Android作為解決方案。Calabash
Android是Cucumber在Android平台的實現,使用Ruby書寫Function Test,並提供了一組操作Anadroid App元素的API。
3、添加UI Test
Android在新近退出了UI測試工具UIAutomator。此工具僅支持Android4.1及以上平台,鑒於目前市場上2.3和4.0版本仍佔主導的情況來看,目前還無法滿足大家的需要。另外應用該工具實現UI測試的開發成本還較高,筆者暫不推薦使用此工具,但應該關注其發展。
另外基於錄制回放機制的測試方法同樣可以進行UI測試。但錄制回放的方法在面對功能快速迭代時,維護工作會急劇增加,而這個維護成本可以說是很難承受的,所以在此也不會將這種測試方法集成至CI中。
目前來看Android中UI測試還無令人滿意的方法。若對UI成功比較看重,可以投入精力應用UIAutomator進行UI測試。
Best Practice:
*
將測試按照單元測試,組件測試,功能測試和系統測試進行劃分。單元測試應該在每次提交時觸發執行,其它的測試根據運行時間長短和重要程度可以每次提交觸發執行或者定時周期執行。
* 將運行較快的測試優先執行。
* 讓功能測試能夠重復執行。否則維護成本太高,會被舍棄。若是後台數據導致不可重復,可以將數據抽象成為數據集,在每次運行前進行重置。
* 書寫測試時每一個assert只做一種判斷,這樣可以明確每次測試的目的,並且可以快速定位測試失敗願意。
步驟 3:持續檢查持續檢查是對於代碼本身檢測和反饋。檢測主要通過對代碼靜態分析驗證代碼風格,編程規范,代碼復用,代碼語言中的Best Practice等多個維度的代碼質量。
Sonar作為一個開源的代碼質量檢測工具,涵蓋了7項代碼質量檢測方式。這充分滿足Android平台下對於代碼質量的檢測分析。Sonar分為兩部分一部分是代碼分析工具,另一部分是數據分析展示的Server。
Best Practice:
* 將測試覆蓋率,代碼分析結果透明化
* 持續降低代碼復雜度
* 持續的促進設計的演進
* 持續的維護代碼結構
* 持續減少代碼重復
步驟 4:持續部署
由於Android App採用用戶手動從Appstore自行下載安裝的方式發布,使得Android
App無法直接部署至用戶手機中。另外Appstore需要對於上線的App進行審核,不能持續進行Release。因而Android中持續部署將以持續發布可安裝包為目標。
在以上目的下,只需根據自身項目資源找到合適的安裝包管理工具即可。如本文採用Dropbox來管理所有安裝包。
Dropbox作為一個雲存儲平台,在Android終端設備上可以輕松下載存放在其中的文件,同時上傳安裝包也可以交由Dropbox自己完成。
步驟 5:持續反饋
反饋是所有改進的開始,必須要讓所有人獲取到他們所關心的反饋信息,才能實施改進。持續反饋的目的就是讓所有人都掌握項目健康狀況。項目所有人事實都是有意願知道項目當前的健康狀況的,那CI就應該將項目的情況做到透明,並將不同的反饋通知到各相關的成員。
CI不同階段產生了不同維度的反饋,如單元測試報告,測試覆蓋率等。本實踐中將這些反饋都透明的展示在項目首頁中。之所以沒有將這些反饋再以郵件的方式通知所有人,是因為團隊成員已經養成了查看CI的習慣。
如果說只給所有人發一封郵件說明項目狀況,那必然是告訴所有人「CI所有步驟是否都返回正確?」。這樣一個反饋,包含了編譯正確,所有測試通過,安裝包已經准備完畢等重要信息。有必要讓所有人都知道這個信息,特別是在CI執行失敗的時候。Jenkins自身已經提供一個簡單有效的透明化方法,以項目為藍色表示通過,紅色表示有步驟失敗。
反饋的通知方式有很多種,不一定要採用郵件通知的方式。可以尋找更加有趣的方式,如果播放音樂和設置警報燈。在每一次Build成功或失敗後都播放一段有趣的音樂,打開不同顏色的警報燈,這兩種方法都是是一種簡單有效的方式,可以讓項目所有人都獲取到最為關鍵的信息。
3. 求一份php的CI框架寫的日誌記錄demo,最好是寫進日誌文件,不是插入資料庫的,非常感謝
functionlog($filename,$loginfo){
//打開文件
$fd=fopen($filename,"a");
//增加文件
$str="[".date("Y/m/dh:i:s",time())."]".$loginfo;
//寫入字元串
fwrite($fd,$str." ");
//關閉文件
fclose($fd);
}
在你要寫日誌的地方 調用以上函數就可以
4. php ci框架怎麼對接簡訊介面
相當簡單 這個介面調用就是封裝一個curl請求的function (sendSMS),代碼示例網站上已經有了,使用時:載入這個function, 然後 調用方法sendSMS;
我把源碼給你貼一遍,這個裡面的賬號密碼是需要你們自己去申請的;
<?
$username='test';//用戶賬號
$password='123456';//密碼
$mobile='13811299934,18610310066,15210954922';//號手機碼
$content='您的簡訊驗證碼是:ABCD';//內容
//即時發送
$result=sendSMS($username,$password,$mobile,$content);
echo$result;
functionsendSMS($username,$password,$mobile,$content)
{
$url='http://域名/api/sms.php';
$data=array
(
'username'=>$username,//用戶賬號
'password'=>$password,//密碼
'mobile'=>$mobile,//號碼
'content'=>$content,//內容
);
$result=curlSMS($url,$data);//POST方式提交
return$result;
}
functioncurlSMS($url,$post_fields=array()){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_TIMEOUT,3600);//60秒
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_REFERER,'http://www.yourdomain.com');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fields);
$data=curl_exec($ch);
curl_close($ch);
$res=explode(" ",$data);
return$res[2];
}
?>