php代码覆盖率统计实践

简介: 一、需求描述由于我司的业务大部分都是php项目,在实际的测试任务中,有测试工程师反馈存在测试结束后无法对测试覆盖率保有自信,担心存在漏测行为;本项目将作为漏测的辅助判断存在,帮助测试工程师进行是否存在漏测的辅助判断。

一、需求描述

由于我司的业务大部分都是php项目,在实际的测试任务中,有测试工程师反馈存在测试结束后无法对测试覆盖率保有自信,担心存在漏测行为;本项目将作为漏测的辅助判断存在,帮助测试工程师进行是否存在漏测的辅助判断。
本项目需要在测试手工任务完成后,提供本次测试任务对应的代码的覆盖率,具体包括本次的测试任务对应了哪些php文件,以及这些php文件里,有哪些代码是尚未被覆盖的,以此来辅助判断本次测试任务是否存在漏测。
本项目由本人发起,与本组前端,php后端共同完成。

二、任务拆解

项目将被拆解为以下部分:

1.覆盖率统计系统

本系统主要借由xdebug的统计功能实现统计目的,但直接用xdebug的话会有一些问题,诸如:

  1. 测试结果不直观,xdebug的结果是代码文件、行数和对应覆盖与否,无法直观的看到测试结果;
  2. 不能做到统计权限隔离,导致当统计环境为公共环境时,其他人的行为会影响覆盖率的判断;
  3. 不能将项目和用户建立映射关系,导致用户的测试行为很可能会涉及到非本项目的覆盖率统计。

针对以上痛点,我们对xdebug加以封装改造,加入用户系统,图表系统,丰富了统计功能,从而使得覆盖率统计可以为测试人员提供参考价值。
本部分主要改造自开源项目:(https://github.com/cj58/PHPCodeCoverage

2.项目仓库系统

仓库系统主要对项目和实现项目的php文件建立映射关系,统计覆盖率只会在项目内对应的php文件里进行,从而实现了项目的覆盖率隔离,避免非本项目的文件对本项目的覆盖率产生污染。

3.报表系统

报表系统主要对覆盖率结果进行分析,生成覆盖率图表加以展示,统计分为总项目统计和项目下分文件统计。

三、成果展示

demo部分截图如下

项目列表:
img_7fe979b0d5c315e8dcfa9f2240bb98d6.jpe
项目列表.jpg
迭代查看界面:
img_ef652bcc420197ea279e5fc888be08bc.png
迭代查看界面.png
查看文件代码覆盖率:
img_58bfefd16fa4b1efbb9bed763cc3c56c.png
代码查看界面.png
总览界面:
img_9338e7f435a87090d55a4d7f961d2b6f.png
总览界面.png

4.效果验证

尚在验证
目录
相关文章
|
6月前
|
消息中间件 缓存 弹性计算
纯PHP+MySQL手搓高性能论坛系统!代码精简,拒绝臃肿
本内容分享了一套经实战验证的社交系统架构设计,支撑从1到100万用户的发展,并历经6次流量洪峰考验。架构涵盖客户端层(App、小程序、公众号)、接入层(API网关、负载均衡、CDN)、业务服务层(用户、内容、关系、消息等服务)、数据层(MySQL、Redis、MongoDB等)及运维监控层(日志、监控、告警)。核心设计包括数据库分库分表、多级缓存体系、消息队列削峰填谷、CQRS模式与热点数据动态缓存。同时提供应对流量洪峰的弹性伸缩方案及降级熔断机制,并通过Prometheus实现全链路监控。开源建议结构清晰,适合大型社交平台构建与优化。
233 11
|
3月前
|
存储 缓存 安全
php项目源码加密之Zend Guard Loader加密的代码解密可能性很小-优雅草卓伊凡
php项目源码加密之Zend Guard Loader加密的代码解密可能性很小-优雅草卓伊凡
117 2
|
5月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
295 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
4月前
|
安全 API PHP
Composer在现代PHP项目中的进阶实践
简介:本文深入探讨PHP依赖管理工具Composer的核心功能与企业实践。首先介绍其如何通过`composer.json`实现声明式依赖管理,变革PHP生态;接着解析自动加载优化、版本策略(如`~`和`^`)及私有仓库集成等关键特性;然后分享CI/CD集成、多环境配置与性能优化技巧(如阿里云镜像加速)的企业级方案;最后提供常见问题排查方法,如内存不足和依赖冲突解决,助力开发者高效管理项目依赖。
86 3
|
6月前
|
前端开发 API PHP
PHP网编程:guzzle的鉴权和异步操作实践。
Guzzle是一个强大且灵活的HTTP客户端库,它可以方便地发送HTTP请求,并且其对异步请求和各类鉴权方式的支持使其成为处理HTTP请求的理想工具。你需要了解和掌握Guzzle的异步操作并发请求和鉴权方式,以便在实际的开发中得心应手地处理HTTP请求。
161 13
|
7月前
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
151 3
|
11月前
|
PHP
PHP中的面向对象编程:基础与实践
【10月更文挑战第42天】在PHP的世界里,面向对象编程(OOP)是构建可维护、可扩展应用程序的关键。本文将深入探讨如何在PHP中运用OOP原则来设计软件,从类和对象的创建到继承、多态性以及封装的应用,我们将一一解析。通过实际代码示例,你将学会如何将理论转化为高效的代码实践。
|
10月前
|
PHP 开发者 UED
PHP中的异常处理:理解与实践
在编程世界中,错误和意外是不可避免的。PHP提供了一套异常处理机制,帮助开发者优雅地管理这些问题。本文将引导你理解PHP中异常处理的基本概念,并通过实际代码示例展示如何捕获和处理异常。我们将从基础开始,逐步深入,确保你能掌握这一技能。
128 21
|
10月前
|
PHP 开发者 容器
PHP命名空间深度解析:避免命名冲突与提升代码组织####
本文深入探讨了PHP中命名空间的概念、用途及最佳实践,揭示其在解决全局命名冲突、提高代码可维护性方面的重要性。通过生动实例和详尽分析,本文将帮助开发者有效利用命名空间来优化大型项目结构,确保代码的清晰与高效。 ####
147 20
|
10月前
|
SQL 安全 PHP
PHP安全性实践:防范常见漏洞与攻击####
本文深入探讨了PHP编程中常见的安全漏洞及其防范措施,包括SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造等。通过实际案例分析,揭示了这些漏洞的危害性,并提供了具体的代码示例和最佳实践建议,帮助开发者提升PHP应用的安全性。 ####
319 6