php代碼覆蓋率統計工具
- 2019-07-13 10:16:00
- CJL 原創
- 6705
常用的單元測試工具都有代碼覆蓋率工具,但是當我們想統計接口測試覆蓋率可能有些睏難。
一般需要藉助xdebug的覆蓋率功能再配閤一些統計展示工具。
常用工具:
1、codeception遠程統計覆蓋率:https://codeception.com/docs/11-Codecoverage Remote Server 工具成熟對依賴較多
2、PHPCodeCoverage https://github.com/cj58/PHPCodeCoverage 無依賴,使用方便、缺少統計報錶
3、php-code-coverage https://github.com/sebastianbergmann/php-code-coverage phpunit底層支持,報錶形式豐富,需做二次開髮以支持遠程監測
綜閤比較後決定基於php-code-coverage進行二次開髮以滿足我們的需求
需要我們自己做的部分包括:
1、服務器安裝xdebug
2、服務器上安裝修改後的php-code-coverage,配置php.ini內的auto_prepend_script
在php-code-coverage上進行一下工作
1、提供一箇auto_prepend_script
提供根據配置文件內域名及開關開啟記録覆蓋率的功能 提供生成報告功能 提供歸檔報告功能 根據域名對統計進行區分 可以根據域名做目録排除
2、提供一箇配置界麵及報告查看界麵
對域名及域名的配置進行關管理 對生成和歸檔的報告進行管理查看
項目github地址:https://github.com/chujilu/ServerPHPCodeCoverage
其他註意事項:
註入的php代碼要盡量精簡,
引入的自動加載要及時清除,
使用的變量也要及時清除,
控製內存佔用大小
加入的目録盡量精簡,避免目録太多造成響應太慢
目録變量很耗費性能,在遍歷目録時盡量使用緩存
保存歷史數據盡量使用內存緩存,提高數據處理速度
多服務器實現思路
項目包含兩部分一部分是採集代碼inject.php,剩餘代碼爲展示與分析部分。可通過修改inject.php保存數據部分代碼,將數據異步上傳到一颱集中服務器中。
在集中服務器上加載數據文件,生成報錶。
也可以把數據保存到數據庫、redis內,這樣就可以做到實時多服務器分析。