<ruby id="rxdll"></ruby><strike id="rxdll"></strike>

    <rp id="rxdll"></rp>
      <del id="rxdll"><meter id="rxdll"></meter></del>
      <pre id="rxdll"><font id="rxdll"></font></pre>
        <pre id="rxdll"></pre>
      <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

      <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
      <i id="rxdll"><dfn id="rxdll"></dfn></i>
      <font id="rxdll"><meter id="rxdll"></meter></font>

        <mark id="rxdll"><dfn id="rxdll"></dfn></mark>
        • 軟件測試技術
        • 軟件測試博客
        • 軟件測試視頻
        • 開源軟件測試技術
        • 軟件測試論壇
        • 軟件測試沙龍
        • 軟件測試資料下載
        • 軟件測試雜志
        • 軟件測試人才招聘
          暫時沒有公告

        字號: | 推薦給好友 上一篇 | 下一篇

        淺析 PHP 官方自動化測試方法

        發布: 2009-5-24 22:33 | 作者: 林容容 | 來源: 測試時代采編 | 查看: 35次 | 進入軟件測試論壇討論

        領測軟件測試網 MILY: verdana">
        本文將從一個測試人員的角度對 PHP 官方的自動化測試方法,自動化測試框架結構,以及具體的實現進行分析和研究。通過實際的例子,向讀者展示 PHP 是如何實現有效的自動化測試以保證其代碼高質量的。讀者通過閱讀本文,可以學習 PHP 官方自動化測試方法和實現,并將這種自動化測試方法應用到自己的開發過程中,提高代碼功能質量。

        PHP 官方自動化測試方法簡述

        以下介紹以 PHP 最新官方版本 5.2.8 的源碼在 LINUX 系統平臺上的分析為例展開。首先來看一下 PHP 的自動化測試腳本 PHPT 腳本。

        自動化測試腳本 PHPT 示例

        PHP 的測試腳本是以“ .phpt ”為后綴,包含 TEST,FILE,EXPECT 等多個段落的文件,簡稱 PHPT 。在各個段落中,TEST,FILE,EXPECT 是基本的段落,每個測試腳本都必須至少包括這三個段落。其中,TEST 段可以用來填寫測試用例的名字; FILE 段是一個 PHP 腳本實現的測試用例; EXPECT 段則是測試用例的期待值。測試用例的運行中,PHP 將用被測試的 PHP 可執行對象去運行 FILE 段中的測試用例,用實際的結果去比對測試用例中 EXPECT 段所列的期待值;如果實際結果和期待值一致,則測試通過;如果不一致,則測試失敗。

        表 1 列出的是常用的段落名和其相應的填充內容說明。


        表 1. PHP 測試腳本中的段落說明
        段落名 填充內容 備注
        TEST 測試用例名稱 必填段落
        ARGS FILE 段的輸入參數 選填段落
        SKIPIF 跳過這個測試的條件 選填段落
        POST 傳入測試腳本的 POST 變量 選填段落。如果使用 POST 段,建議配合使用 SKIPIF 段,如:
        --SKIPIF--
        <?php if (php_sapi_name()=='cli') echo 'skip'; ?>
        GET 傳入測試腳本的 GET 變量 選填段落。如果使用 POST 段,建議配合使用 SKIPIF 段,如:
        --SKIPIF--
        <?php if (php_sapi_name()=='cli') echo 'skip'; ?>
        INI 應用于測試腳本的 ini 設置 選填段落。例如 foo=bar 。其值可通過函數 ini_get(string name_entry) 獲得。
        FILE 測試腳本語句 必填段落。應用 PHP 語言書寫的腳本語句。其執行的結果將與 EXPECT* 段的期待值做對比。
        EXPECT 測試腳本的期待值 必填段落
        EXPECTF 測試腳本的期待值,可用函數 sscanf() 中的格式表達期待值 EXPECT 段的變體
        EXPECTREGEX 測試腳本的期待值,可用正則式表達期待值 EXPECT 段的變體

        以官方包里自帶的測試腳本 “ 001.phpt ” 為例(見清單 1),從 TEST 段的內容看來這是一個對 PHP 版本進行驗證的測試用例。 SKIPIF 段的內容寫在了 “ skipip.inc ” 文件里。在 FILE 段里,測試用例將環境變量 TEST_PHP_EXECUTABLE 里設置的那個 PHP 的版本打印出來,這個結果將和 EXPECTF 中的字串進行格式匹對。


        清單 1. PHPT 測試腳本 “ 001.phpt ” 示例
        			--TEST--  version string  --SKIPIF--  <?php include "skipif.inc"; ?>  --FILE--  <?php  $php = getenv('TEST_PHP_EXECUTABLE');  var_dump(`$php -n -v`);  echo "Done\n";  ?>  --EXPECTF-- 	 string(%d) "PHP %s (cli) (built: %s)%s  Copyright (c) 1997-20%d The PHP Group  Zend Engine v%s, Copyright (c) 1998-20%d Zend Technologies  "  Done

        如何運行 PHP 自動化測試腳本

        在運行測試腳步前,首先要將被測試的 PHP 源碼編譯為可執行對象。

        然后要導入若干環境變量。表 2 中介紹了主要的幾個環境變量如何設置。


        表 2. PHP 自動化測試中的環境變量設置
        環境變量名 環境變量值 例子
        TEST_PHP_EXECUTABLE 設定被測試對象 PHP,或者 “ auto ” 。當設置 “ auto ” 時,如果是 CGI 模式,即為 “ ./sapi/cgi/php-cgi ” ;如果是 CLI 模式,即為 “ ./sapi/cli/php ” 。 TEST_PHP_EXECUTABLE=
        $HOME/php-5.2.8/sapi/cli/php
        TEST_PHP_DETAILED 設定是否需要詳細的日志輸出。設置值為 1 或者 0 。 TEST_PHP_DETAILED=1
        TEST_PHP_USER 設定是否需要特制的用戶目錄。 TEST_PHP_DETAILED= “ /usr/test1 ”
        TEST_PHP_LOG_FORMAT
        設定日志的格式。設置值為 “ LEOD ” 子串的子集。其中 L 代表測試后需要生成 “ .log ” 文件,E 代表 “ .exp ” ,O 代表 “ .out ” ,D 代表 “ .diff ” 。 TEST_PHP_LOG_FORMAT="LD"

        在本例中,在 Bash 環境中設置環境變量如下:


        清單 2. 設置環境變量示例
        export HOME=/home/user_dir/  export TEST_PHP_EXECUTABLE=$HOME/php-5.2.8/sapi/cli/php  export TEST_PHP_DETAILED=1  export TEST_PHP_LOG_FORMAT="LEOD"

        經過這樣設置后,被測試的 PHP 可執行對象就是放在目錄 “ $HOME/php-5.2.8/sapi/cli/ ” 下編譯好的那個 “ php ” 可執行文件。

        執行測試前,還需將測試腳本 PHPT 編輯好,存為 “ .phpt ” 文件。這里以官方包里自帶的測試腳本 “ 001.phpt ” 為例,運行如下:


        清單 3. PHPT 測試總結報告實例
        bash-2.03$ cd $HOME/php-5.2.8/  bash-2.03$ $HOME/php-5.2.8/sapi/cli/php run-tests.php  \  $HOME/php-5.2.8/sapi/cli/tests/001.phpt


        延伸閱讀

        文章來源于領測軟件測試網 http://www.k11sc111.com/

        TAG: php PHP 淺析 自動化 官方

        31/3123>

        關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
        版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
        北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
        技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

        軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

        国产女主播精品_国产片婬乱18一级毛片视频_国产午夜激无码av毛片不卡_国产精品欧美久久久天天影院
          <ruby id="rxdll"></ruby><strike id="rxdll"></strike>

          <rp id="rxdll"></rp>
            <del id="rxdll"><meter id="rxdll"></meter></del>
            <pre id="rxdll"><font id="rxdll"></font></pre>
              <pre id="rxdll"></pre>
            <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

            <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
            <i id="rxdll"><dfn id="rxdll"></dfn></i>
            <font id="rxdll"><meter id="rxdll"></meter></font>

              <mark id="rxdll"><dfn id="rxdll"></dfn></mark>