導航:首頁 > 編程語言 > php系統測試

php系統測試

發布時間:2023-11-14 11:06:04

1. 整套php源代碼在本地怎麼測試運行

那得看你這個項目是用php的框架寫的還是原生php寫的,如果是用框架寫的,可以寫個配置域名或者ip來指定訪問這個項目的入口文件,如果是用原生php寫的,就可以不用這么麻煩,所有php文件都可以通過localhost加文件名來訪問,還有一點就是還要確定你這個項目的資源文件,例如圖片、css文件、js文件,不過這些看你訪問入口文件就知道了,一步一步修改配置即可,希望對你有幫助

2. php單元測試怎麼做

有集成單元測試框架,phpunit。這個框架封裝了常用的測試方法,比如判等,存在等方法,只要繼承這個測試類,就可以調用相應的方法來測試。

單元測試一般就是測試各個介面函數,根據給定的條件,判斷是否是預期的結果。單元測試主要是為了改動函數或者修改了介面的時候,測試是否影響了之前正常的功能。

3. 7款最常用的PHP本地測試環境如何做網站

Wordpress夠流行了吧,它是一個用PHP編寫的強大的博客平台,

7款最常用的PHP本地測試環境。使用它來架設一個博客平台相關容易,是新手建站比較方便的工具。但是要真正體會Wordpress(以下簡稱WP)強大,插件是不可少的東西。一般來說,我們不可能想試一個插件就把文件通過FTP來上傳,然後去自己的網站里試,那樣風險大了點。所以我們需要在本地計算機上搭建一個PHP平台。我就把常用的PHP本地測試平台都收集一下,給需要的人提供方便。

一般來說,本地的PHP平台分為兩種,一種是LAMP,即為linux+Apache+MySql+PHP;另一種是WAMP,它是Windows+Apache+MySql+PHP,而前者一般優秀於後者。如果讓我們自己來安裝Apache+MySql+PHP,難度不少,改一堆代碼不說,還容易出錯。再者考慮到現在大家大多使用的是Windows操作系統,自己又是個Linux盲,所以我提供的這些本地測試平台都是WAMP,都是集成以上功能的,安裝完成即可使用。先大概了解一下吧:

1. XAMPP

XAMPP是一款比較強大的本地測試平台,它集成了必須的三個功能,還帶有FileZilla,軟體帶有一個控制面板,在裡面可以把Apache、MySql和FileZilla三者注冊為系統服務或者卸載服務,有服務啟動的控制按鈕,而且在窗口下部還能看到服務的運行信息。雖說面板是英文的,但清楚易懂。注冊為系統服務有個好處就是開機能夠自動運行,但是會消耗一定的系統資源,怎麼取捨用戶自己來定。安裝成功,服務也啟動成功後,就可以把瀏覽器打開輸入http://localhost/,試試是否成功。在XAMPP的網頁選項里,有中文支持。

2. WampServer

它的官方網站沒有中文,但是程序支持中文。啟動安裝程序後,它會提示你請先卸載舊版,不支持覆蓋式的升級,然後一路NEXT就能安裝成功。它在任務托盤里有個圖標,如果服務啟動異常,它就是紅色的;如果部分異常,它就變成黃色;如果是一切正常,那麼它就變成了白色。這些不同的顏色警示,你很容易判斷當前你的localhost能不能打開。它還能切換在線和離線狀態,選項中的文語言項中也有簡體中文可選,很不錯。

3. Vertrigo Server

這是一個輕量級的WAMP環境,但是你下載它的時候,迅雷自帶的安全組件居然說它帶有病毒,

管理資料《7款最常用的PHP本地測試環境》(http://www.unjs.com)。經過我的掃描(ESS3.0)和使用來看,這完全是個誤報,所以大家可以放心使用。安裝一路NEXT就行,其中PhpMyAdmin中居然還有原始密碼,是vertrigo,感覺在本地測試的話,這種默認沒有必要。它帶有一個簡單的控制面板,運行狀態也一目瞭然。

在它的localhost頁面中帶有常用鏈接,很方便。

4. PHPNow

PHPNow真的很簡單,簡單到安裝程序就是用RAR做的一個自解壓程序。自釋放後快捷方式也沒有,你必須自己找到那個文件存放的文件夾,然後運行Init.cmd這個程序來初始化。初始化過程中提示設置密碼,因為是在CMD命令行中,只設計了一次密碼輸入,沒有密碼確認項,所以請設置的時候千萬小心,不要忘了。它也把式Apache和MySql注冊為服務,開機自啟動。

在程序文件夾中,它也帶有控制面板,只不過是CMD的,但很好用。

卸載就更容易了,在軟體自帶的控制面板中卸載服務,然後關把整個文件夾刪掉就行。這么方便,圖簡便的可以試試。

5. PHPStudy

PHPStudy不一樣,它含有IIS+PHP和Apache+PHP,軟體推薦設置是後者。在任務托盤里也有圖標,可以打開面板來看服務運行狀態,也很簡潔。

打開localhost,出現的是標準的PHP信息界面。

6. AppServ

程序安裝過程中它提示你可以改變默認的80埠為服務埠,這樣可以避免埠共享產生的沖突。可有密碼設置提示,但是做得比PHPNow好多了,軟體還可以設置字元集,默認為UTF-8。雖然軟體沒有控制面板,但一切操作都在開始菜單中加入了快捷方式,使用當然很方便。軟體還帶有MySql命令行終端。

7. EasyPHP

軟體如其名,真的很EASY!安裝一路NEXT,但是不會把Apache和MySql載入為服務,所以每次使用都要手工來啟動。軟體也帶簡單的控制面板,其他的沒什麼要說的了。

說了這么多,我想,這些工具應該夠你使用的了,找一個你最滿意的安裝就行了。

PS:如果某些這樣的PHP相關的服務無法啟動,請注意一下你的機器中的80埠是否被佔用。一般的程序,如迅雷,BT軟體什麼的,即使它們沒有在工作,開著也會佔用80埠。所以把它們關掉後,啟動PHP相關的服務後再把這些下載軟體什麼的打開,就不會有服務啟動不成功這樣的問題的。

4. 哪位高手幫個忙.教我PHP如何安裝並在本機測試

PHP一開始叫Personal Homepage後來改叫Personal Homepage Programme 最後才叫Hypertext Preprocessor。PHP本來就是一種網頁格式,當你寫好後就是一個網頁,但是如果你的機子沒裝PHP和APACHE或IIS伺服器的話是不能以網頁的格式查看裡面的內容的。
你如果要查看PHP文件裡面的內容即源程序那麼你可以用記事本打開,WORD等這些文字處理工具都可以看到PHP的內容,如果你是想以網頁的形式查看PHP那麼你首先得安裝PHP和APACHE伺服器
安裝方法如下:
Apache http://httpd.apache.org/
最流行的HTTP伺服器軟體之一。快速、可靠、可通過簡單的API擴展,Perl/Python解釋器可被編譯到伺服器中,完全免費,完全源代碼開放。
我下載的是for Windows版本,目前最新版本是:2.0.54

PHP http://www.php.net/
PHP 是一種 HTML 內嵌式的語言。而PHP獨特的語法混合了 C、Java、Perl 以及 PHP 式的新語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。
我下載的是for Windows版本,目前最新版本是:5.0.4

MySQL http://www.mysql.com/
是一個多線程的,結構化查詢語言(SQL)資料庫伺服器。SQL 在世界上是最流行的資料庫語言。MySQL 的執行性能非常高,運行速度非常快,並非常容易使用。
我下載的是for Windows版本,目前最新版本是:5.0.4 Beta

phpMyAdmin http://www.phpmyadmin.net/
phpMyAdmin 是一個用PHP編寫的,可以通過互聯網控制和操作MySQL。通過phpMyAdmin可以完全對資料庫進行操作。
我下載的是for Windows版本,目前最新版本是:2.6.2-pl1

安裝apache和PHP
下面是我的安裝記錄:
選擇80埠,將apache安裝在 D:\apache下。
配置apache里的httpd.conf文件(conf目錄下,用記事本打開就行了,使用查找把下面提到的句子輸進去找出來)
找到 DocumentRoot "D:/apache/Apache2/htdocs" 將其改為WEB目錄D:/htdocs (文件夾名稱和路徑隨便你定,以後把你寫的PHP文件放在這個文件夾裡面)
找到 DirectoryIndex index.html index.html.var 在後面加入 index.htm index.php default.php default.html
選擇模塊化模式安裝
找到 #LoadMole ssl_mole moles/mod_ssl.so 這行,在此行後加入一行
LoadMole php5_mole D:/php/php5apache2.dll
找到 AddType application/x-gzip .gz .tgz 這行,在此行後加入一行
AddType application/x-httpd-php .php

將php-5.0.4-Win32.zip里內容解壓到e:\php里,找到php.ini-recommended,重命名為php.ini並拷貝到windows目錄下。
NTFS上記得給伺服器開PHP.ini的讀許可權。
查找extension_dir後面的改為"D:/php/ext"
查找Windows Extensions,把下面有一排的;extension=php_***.dll的分號去掉,就是支持組件了。我把 extension=php_gd2.dll extension=php_mbstring.dll extension=php_mysql.dll 的分號去掉了。
php5默認不支持mysql了,所以要為他添加支持,除了extension=php_mysql.dll去分號之外,在php目錄里有個libmysql.dll文件,把它復制到系統的system32文件夾下,復制php.ini到windows目錄下。

此時PHP環境基本已經配置成功
在WEB根目錄里建一個名為test.php的文件內容如下
<? echo phpinfo(); ?>
重新啟動apache服務,用瀏覽器打開 http://localhost/test.php
如果可以看到php配置輸出信息就成功了

安裝mysql
將mysql安裝到指定目錄,然後安裝程序會引導你一步步配置。不過奇怪的是最後任務欄沒有出現Mysql的圖標。
修改mysql資料庫的root密碼
用cmd進入命今行模式輸入如下命令: ( 注: d:\mysql 為mysql安裝目錄)
cd d:\mysql\bin
mysqladmin -u root -p password 123456
回車出現
Enter password: ( 注:這是叫你輸入原密碼. 剛安裝時密碼為空,所以直接回車即可)
此時mysql 中賬號 root 的密碼 被改為 123456 安裝完畢

配置php.ini並測試mysql

找到extension_dir = "./" 改為 extension_dir = "D:/php/ext"
找到
;extension=php_mysql.dll
將';'去掉改為
extension=php_mysql.dll
找到
;session.save_path = "/tmp"
將';'去掉 設置你保存session的目錄,如
session.save_path = "D:/php/session_temp"

重啟apache服務
在Web根目錄下建立testdb.php文件內容如下:
<?php
$link=mysql_connect('localhost','root','123456');
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>
用瀏覽器打開http://localhost/testdb.php 如果輸出success就OK了

phpmyadmin的安裝配置

將phpMyAdmin-V2.6.2-pl1.zip解壓到WEB根目錄中去,重命名文件夾為phpmyadmin或其它
打開phpmyadmin 目錄中的 config.inc.php
找到
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';
分別填上用戶名和密碼

最後把你寫的PHP文件放在你之前設定的WEB目錄里,比如按上面安裝的話就是D:/htdocs。假設你那個文件名叫123.php。現在打開IE,在地址欄上輸入http://localhost/123.php按回車就行了。如果你那文件是放在D:/htdocs里的另一個文件夾下,假如那個文件夾名是test,那麼你在IE里就要輸入http://localhost/test/123.php。另外,文件跟文件夾名千萬不要用中文。

5. php如何進行單元測試

何為單元測試:
指對軟體中的基本單元進行測試,如函數、方法等,以檢查其返回值或行為是否符合預期;實際中軟體是很復雜的,由許多組件構成,執行流程連貫在一起,要進行單元片段的測試,就需要為其提供執行上下文(或者說參數)和環境(比如打樁模擬一些對象)來運行,並監控其行為和返回值,為此我們就需要寫出做這件事情的程序代碼,這樣的代碼叫做測試用例。
許多測試用例有機結合在一起形成一個整體的測試,又叫做測試套件,被測試的程序代碼叫做生產代碼。phpunit這個軟體就是用來幫助我們寫測試用例並進行測試的。
php的單元測試:phpunit
在其官網有詳細教程,這里介紹一些補充內容。
首先要明白phpunit軟體本身就是由php語言實現,其使用是通過命令行進行的,並不是通過瀏覽器訪問
明白這一點很重要,許多新人被卡在這里,很基礎也很簡單,但似乎沒怎麼被提及。
在官網下載後得到一個phar文件,同時下載phpunit使用文檔,按照裡面的安裝方法進行安裝,之後在命令行輸入以下命令:
phpunit --help

如果顯示出了幫助信息即安裝成功,在命令行當前目錄下建立一個測試用例為yunke.php,內容如下:
<?phpuse PHPUnit\Framework\TestCase;class yunkeTest extends TestCase{public function testPushAndPop(){$stack = [];$this->assertEquals(0, count($stack));array_push($stack, 'foo');$this->assertEquals('foo', $stack[count($stack) - 1]);$this->assertEquals(1, count($stack));$this->assertEquals('foo', array_pop($stack));$this->assertEquals(0, count($stack));}}?>

然後在命令行輸入以下命令:
phpunit yunke

顯示如下內容:
PHPUnit 5.7.12 by Sebastian Bergmann and contributors.. 1 / 1 (100%)Time: 159 ms, Memory: 7.00MBOK (1 test, 5 assertions)

恭喜,你已經成功運行了一個單元測試。

6. PHP的性能探討和測試

緣起

關於PHP 很多人的直觀感覺是PHP是一種靈活的腳本語言 庫類豐富 使用簡單 安全 非常適合WEB開發 但性能低下 PHP的性能是否真 的就如同大家的感覺一樣的差呢?本文就是圍繞這么一個話題來進行探討的 從源碼 應用場景 基準性能 對比分析等幾個方面深入分析PHP之性能問題 並通 過真實的數據來說話

從原理分析PHP性能

從原理分析PHP的性能 主要從以下幾個方面 內存管理 變數 函數 運行機制來進行分析

內存管理

類似Nginx的內存管理方式 PHP在內部也是基於內存池 並且引入內存池的生命周期概念 在內存池方面 PHP對PHP腳本和擴展的所有內 存相關操作都進行了託管 對大內存和小內存的管理採用了不同的實現方式和優化 具體可以參考以下文檔 在內存分配和回收的生命周期內 PHP採用一次初始化申請+動態擴容+內存標識回收機制 並且在每次請求結束後直 接對內存池進行重新mask

變數

總所周知 PHP是一種弱變數類型的語言 所以在PHP內部 所有的PHP變數都對應成一種類型Zval 其中具體定義如下

圖一PHP變數

在變數方面 PHP做了大量的優化工作 比如說Reference counting和 on writer機制 這樣能夠保證內存使用上的優化 並且減少內存拷貝次數(請參考) 在數組方面 PHP內部採用高效的hashtable來實現

函數

在PHP內部 所有的PHP函數都回轉化成內部的一個函數指針 比如說擴展中函數

ZEND_FUNCTION(my_function);//類似functionmy_function(){}

在內部展開後就會是一個函數

voidzif_my_function(INTERNAL_FUNCTION_PARAMETERS);

voidzif_my_function(

intht

zval*return_value

zval*this_ptr

intreturn_value_used

zend_executor_globals*executor_globals

);

從這個角度來看 PHP函數在內部也是對應一個函數指針

運行機制

在話說PHP性能的時候 很多人都會說「C/C++是編譯型 JAVA是半編譯型 PHP是解釋型」 也就是說PHP是先動態解析再代碼運行的 所以從這個角度來看 PHP性能必然很差

的確 從PHP腳本運行來輸出 的確是一個動態解析再代碼運行的過程 具體來說 PHP腳本的運行機制如下圖所示

圖二 PHP運行機制

PHP的運行階段也分成三個階段

所以說 在PHP內部 本身也是存在編譯的過程 並且據此產生了大量的opcode cache工具 比如說apc eacc xcache等等 這些opcode cache在生產環境基本上在標配 基於opcode cache 能到做到「PHP腳本編譯一次 多次運行」的效果 從這點上 PHP就和JAVA的半編譯機制非常類似

所以 從運行機制上來看 PHP的運行模式和JAVA是非常類似的 都是先產生中間碼 然後運行在不同虛擬機上

動態運行

從上面的幾個分析來看 PHP在內存管理 變數 函數 運行機制等幾個方面都做了大量的工作 所以從原理來看 PHP 不應該存在性能問題 性能至少也應該和Java 比較接近

這個時候就不得不談PHP動態語言的特性所帶來的性能問題了 由於PHP是動態運行時 所以所有的變數 函數 對象調用 作用域實現等等都是在 執行階段中才確定的 這個從根本上決定了PHP性能中很難改變的一些東西 在C/C++等能夠在靜態編譯階段確定的變數 函數 在PHP中需要在動態運行 中確定 也就決定了PHP中間碼不能直接運行而需要運行在Zend Engine上

說到PHP變數的具體實現 又不得不說一個東西了 Hashtable Hashtable可以說在PHP靈魂之一 在PHP內部廣泛用到 包含變數符號棧 函數符號棧等等都是基於hashtable的

以PHP變數為例來說明下PHP的動態運行特點 比如說代碼

<?php

$var=「hello blog xiuwz 」;

?>

該代碼的執行結果就是在變數符號棧(是一個hashtable)中新增一個項

當要使用到該變數時候 就去變數符合棧中去查找(也就是變數調用對出了一個hash查找的過程)

同樣對於函數調用也基本上類似有一個函數符號棧(hashtable)

其實關於動態運行的變數查找特點 在PHP的運行機制中也能看出一些 PHP代碼通過解釋 編譯後的流程下圖

圖 PHP運行實例

從上圖可以看出 PHP代碼在pile之後 產出的了類符號表 函數符號表 和OPCODE 在真正執行的時候 zend Engine會根據op code去對應的符號表中進行查找 處理

從某種程度上 在這種問題的上 很難找到解決方案 因為這是由於PHP語言的動態特性所決定的 但是在國內外也有不少的人在尋找解決方案 因為 通過這樣 能夠從根本上完全的優化PHP 典型的列子有facebook的hiphop

結論

從上面分析來看 在基礎的內存管理 變數 函數 運行機制方面 PHP本身並不會存在明顯的性能差異 但由於PHP的動態運行特性 決定了 PHP和其他的編譯型語言相比 所有的變數查找 函數運行等等都會多一些hash查找的CPU開銷和額外的內存開銷 至於這種開銷具體有多大 可以通過後 續的基準性能和對比分析得出

因此 也可以大體看出PHP不太適合的一些場景 大量計算性任務 大數據量的運算 內存要求很嚴格的應用場景 如果要實現這些功能 也建議通過擴展的方式實現 然後再提供鉤子函數給PHP調用 這樣可以減低內部計算的變數 函數等系列開銷

基準性能

對於PHP基準性能 目前缺少標準的數據 大多數同學都存在感性的認識 有人認為 QPS就是PHP的極限了 此外 對於框架的性能和框架對性能的影響很沒有響應的權威數字

本章節的目的是給出一個基準的參考性能指標 通過數據給大家一個直觀的了解

具體的基準性能有以下幾個方面

裸PHP性能 完成基本的功能

裸框架的性能 只做最簡單的路由分發 只走通核心功能

標准模塊的基準性能 所謂標准模塊的基準性能 是指一個具有完整服務模塊功能的基準性能

環境說明

測試環境

Uname aPnux db forum test db _ # SMP Wed Aug : : CST x _ x _ x _ GNU/Pnux

Red Hat Enterprise Pnux AS release (Nahant Update )

Intel(R) Xeon(R) CPU E @ GHz

軟體相關

Nginx nginx version: nginx/ built by gcc (Red Hat )

Php (採用php fpm)

PHP (cP) (built: Mar : : )

Copyright (c) The PHP Group

Zend Engine v Copyright (c) Zend Technologies

with eAccelerator v Copyright (c) eAccelerator by eAccelerator

bingo

PHP框架

其他說明

目標機器的部署方式 nginx >php fpm >php腳本

測試壓力機器和目標機器獨立部署

裸PHP性能

最簡單的PHP腳本

<?php

require_once『 /actions/indexAction php』;

$objAction=newindexAction();

$objAction >init();

$objAction >execute();

?>

Acitons/indexAction php裡面的代碼如下

<?php

classindexAction

{

pubPcfunctionexecute()

{

echo『hello world!』;

}

}

?>

通過壓力工具測試結果如下

裸PHP框架性能

為了和 的對比 基於bingo 框架實現了類似的功能 代碼如下

<?php

require_once『Bingo/Controller/Front php』;

$objFrontController=Bingo_Controller_Front::getInstance(array(

『actionDir』=>『 /actions』

));

$objFrontController >dispatch();

壓力測試結果如下

從該測試結果可以看出 框架雖然有一定的消耗 但對整體的性能來說影響是非常小的

標准PHP模塊的基準性能

所謂標准PHP模塊 是指一個PHP模塊所必須要具體的基本功能

路由分發

自動載入

LOG初始化&Notice日誌列印 所以的UI請求都一條標準的日誌

採用bingo 的代碼自動生成工具產生標準的測試PHP模塊 test

測試結果如下

結論

從測試數據的結論來看 PHP本身的性能還是可以的 基準性能完全能夠達到幾千甚至上W的QPS 至於為什麼在大多數的PHP模塊中表現不佳 其實這個時候更應該去找出系統的瓶頸點 而是簡單的說OK PHP不行 那我們換C來搞吧 (下一個章節 會通過一些例子來對比 採用C來處理不見得有特 別的優勢)

通過基準數據 可以得出以下幾個具體的結論

PHP本身性能也很不錯 簡單功能下能夠達到 QPS 極限也能過W

PHP框架本身對性能影響非常有限 尤其是在有一定業務邏輯和數據交互的情況下 幾乎可以忽略

一個標準的PHP模塊 基準性能能夠達到 QPS( cpu idle)

對比分析

lishixin/Article/program/PHP/201311/21287

7. 下載了PHP源碼後,如何在本地測試一下啊

你要先保證你電腦上已經安裝了php的運行環境你可以用你說的那個wamp
這是一個類似集成的安裝包
安裝以後你就同時安裝了
apache伺服器
mysql資料庫
以及php
wamp就是這幾個軟體的縮寫
w是windows的意思
同理
如果是在linux下的就是lamp
類似的軟體還有其他的
比如phpnow也是很不錯的全中文軟體
他們官網上也有相關的教程
你可以查一下
當你做好了上邊的一切
你可以打開瀏覽器在地址欄中輸入
http://localhost
或者
http://127.0.0.1來訪問根目錄下的網站了
比如你下載的源碼是phpcms的
你就將下載的壓縮包解壓好以後復制到你電腦上apache的根目錄下
phpnow的是htdocs目錄
wamp的我不是很清楚
呵呵
應該也是這個目錄吧
然後你打開那個地址就可以訪問了
你要注意的是很多源碼是需要安裝以後才能使用的
就像phpcms
你必須先打開它的安裝文件
http://localhost/安裝文件的目錄

閱讀全文

與php系統測試相關的資料

熱點內容
做系統選擇哪個文件夾 瀏覽:281
如何登陸mc伺服器 瀏覽:797
華為無法定位伺服器地址 瀏覽:961
編譯原理第三版陳火旺課本圖片 瀏覽:566
cad用什麼解壓縮軟體 瀏覽:715
編譯的函數模版 瀏覽:359
加密貨幣利率改變 瀏覽:226
復雜網路案例python 瀏覽:296
死命令的意思 瀏覽:689
哪個app可以聽日語電台 瀏覽:101
谷輪壓縮機15hp 瀏覽:289
python任意整數冒泡降序 瀏覽:30
醫保卡的錢哪個app能看到 瀏覽:576
主伺服器崩潰如何進行域遷移 瀏覽:317
學安卓用什麼語言好 瀏覽:78
qt命令行 瀏覽:800
慕課app班級在哪裡 瀏覽:140
badusb編譯工具下載 瀏覽:191
pdf角膜 瀏覽:548
雲伺服器ie瀏覽器為什麼不能用 瀏覽:992