發(fā)布時(shí)間:2022-02-21 16:37:46來源:轉(zhuǎn)載
PHP是一種易于學(xué)習(xí)和使用的服務(wù)器端腳本語言。只需要很少的編程知識你就能使用PHP建立一個(gè)真正交互的WEB站點(diǎn)。如何進(jìn)行PHP腳本測試?
一、測試副本
要測試一個(gè)PHP腳本,我們需要模擬一個(gè)HTTP請求,并檢查返回的響應(yīng)(response)是否等于預(yù)期值。這里需要注意的是模擬一個(gè)請求,
要定義response和request,這不僅僅是內(nèi)容(content)的不同,而且他們的頭信息(header)也是不同的。
此外,如果我們想要測試一個(gè)操作數(shù)據(jù)的事務(wù)腳本,我們要確保不讓它去連接真正的數(shù)據(jù)庫或應(yīng)用程序的其余部分。
在現(xiàn)實(shí)中,通常沒有人會直接拿原有的PHP腳本進(jìn)行重寫測試。因?yàn)榕掳汛a弄得不可恢復(fù)。我建議使用PHP腳本的副本,這樣我們就可以將PHP代碼進(jìn)行一些小手術(shù)了。
如何將代碼進(jìn)行較小修改:刪除include和require語句(如果它們沒有被用到),并且修改內(nèi)部函數(shù)的調(diào)用方式,例如:將header()寫成$object->header()。
較后,我們來測試這個(gè)事務(wù)腳本。測試完后,我們可以從副本腳本中提取出它們,并把它們放入新腳本文件中。
二、具體步驟
1、模擬一個(gè)HTTP請求并重新定義變量$_GET和$_POST,還要修改$_SERVER的header。
2、獲取請求響應(yīng),response的body可以通過ob_start()和ob_get_clean()捕獲,它可以收集每一個(gè)用echo()或以
注意:輸出緩沖支持在PHP多個(gè)級別的嵌套,所以在大多數(shù)情況下,都可以捕獲到,即使腳本在使用ob_*調(diào)用本身。
3、測試腳本應(yīng)包含事務(wù)腳本的內(nèi)部方法,因此在這個(gè)腳本范圍內(nèi)的方法都可以被調(diào)用。例如:
(1)腳本所需的變量可以被定義為局部變量封裝起來,如$connection作為一個(gè)數(shù)據(jù)庫連接。
(2)不是原本PHP的內(nèi)置函數(shù),應(yīng)該加上對象來調(diào)用,如:header()寫成$this->header()。
服務(wù)端腳本
服務(wù)器腳本運(yùn)行模式需要具備3個(gè)條件:php解析器(CGI或者服務(wù)器模塊)、Web服務(wù)器、Web瀏覽器。
具體執(zhí)行流程:首先運(yùn)行Web服務(wù)器,然后安裝并配置php,較后可以用Web瀏覽器訪問php程序的輸出,即瀏覽服務(wù)端的php頁面(或數(shù)據(jù)輸出)。
雅思 托福 GRE SSAT SAT GMAT ACT 個(gè)人提升英語 英語四六級 多鄰國英語測試 詞庫 IB 英語口語 商務(wù)英語 公共英語 考研英語 青少兒英語 成人英語 A-Level 學(xué)生英語 初高中英語 OSSD AP課程 AEAS個(gè)性化定制課程 一級建造師 二級建造師 消防工程師 消防設(shè)施操作員 BIM 造價(jià)工程師 環(huán)評師 監(jiān)理工程師 咨詢工程師 安全工程師 建筑八大員 公路水運(yùn)檢測 通信工程 裝配式工程師 注冊電氣工程師 二級注冊建筑師 一級注冊建筑師 智慧消防工程師 智慧建造工程師 全過程工程咨詢師 EPC 碳排放管理師 ACCA CFA 注冊會計(jì)師 會計(jì)證 初中級經(jīng)濟(jì)師 初級會計(jì)師 中級會計(jì)師 基金從業(yè) 證券從業(yè) 稅務(wù)師 薪稅師 企業(yè)合規(guī)師 會計(jì)就業(yè)實(shí)操 期貨從業(yè) FRM CMA CQF 教師資格 人力資源管理 導(dǎo)游考試 心理咨詢師 健康管理師 社會工作師 普通話 育嬰員 物流師 家庭教育指導(dǎo)師 專利代理師 教師招聘 兒童專注力 兒童情緒管理 法律職業(yè)資格 少兒編程 書法培訓(xùn) 國畫 茶藝 樂器音樂 舞蹈 棋類 機(jī)器人編程 戲曲培訓(xùn) 信奧賽C++ 少兒小主播 口才培訓(xùn) 籃球培訓(xùn) 商務(wù)辦公 影視后期 剪輯包裝 游戲設(shè)計(jì) 游戲程序 UI設(shè)計(jì) 室內(nèi)設(shè)計(jì) photoshop CAD制圖 視覺設(shè)計(jì) 商業(yè)空間設(shè)計(jì) 平面設(shè)計(jì)