先知-Baidu的系统测试

简介:

What We Do:
 利用成熟的基础架构动态获取产品代码,一键搭建整个系统的被测模块
 依照优先级同时在千台测试机二维互斥、加锁、周 期、定时并发搭建环境和调度测试
 一句命令自动同步线上数据,高效完成任务
BackGround:
目前自动化测试多指采用一定的自动化框架和自动化测试脚本来单机运行自动化Case完成测试。自动化测试用例(Case)隶属于按照模块、功能划分的Suite,运行时可以执行单个Case或是执行整个Suite,这些Case没有直接的逻辑关系,即使是执行整个Suite时,其中每个用例也仅反映出该用例的执行结果。这种方式的自动化难以解决模块复杂交互时的自动化化问题,往往会将自动化测试中断在接口数据获取阶段,需要人工check数据在继续。
系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。系统测试中由于整个软件系统通常有多个模块组成,分布式的部署在多个服务器或是服务器集群上,在验证基本功能点的同时需要完成大量的数据和接口交互的确认测试,并发测试等。
Solutions:
百度结合内部基础架构模型,结合服务和机器监控,完成一套系统测试自动化方案-Prophet。系统测试自动化方案由一套包含有机器、模块运行数据获取,通过获取到的数据派生新的测试分支并完成测试,系统结构如下图:


 

用户通过系统提供的数据API(由百度底层监控服务提供)获取到模块\机器的运行数据后,在测试脚本中嵌入执行逻辑,自动根据当前数据情况分布式的在不同服务器上派生出新的测试分支完成系统测试。
该测试系统分布式部署在百度的QA集群中,全面支持由千台以上服务器支撑的软件系统的系统自动化测试工作,帮助用户节省超过80%的时间。
原来:易实现的多次回归case自动化->让qa能够投入精力到更深层次的逻辑测试中并提高测试效率。
现在:易实现+深层次回归的case自动化->让qa可以投入到复杂的系统交互、代码优化等领域的工作中、更加保证质量和效率
Implementation:
图中的方块代表机器,同一行的Suite部署在同一台机器上,Suite4,7用于测试模块A部署在机器AM上,Suite29,48用于测试模块B部署在机器BM上,Suite109,58用于测试模块C部署在机器CM上。依赖和数据获取关系由图表中的箭头表示。
步骤一:Suite4于指定时间开始执行,执行成功转步骤二,执行失败转步骤五
步骤二:Suite7接到上游Suite4的成功结束通知和执行数据后开始执行, Suite7成功执行后会为机器BM上测试模块B的Suite48提供数据,执行成功转步骤三,执行失败转步骤五
步骤三:Suite29接到机器AM上Suite7成功完成的通知和执行数据后开始执行,Suite29执行成功转步骤四,执行失败转步骤五;同时Suite48接到Suite7成功完成的通知后从A机器上获取Suite7的数据并执行,执行成功转步骤四,执行失败转步骤五
步骤四:Suite109接到BM机器上Suite29成功完成通知开始执行,Suite109执行完成转步骤五;同时Suite58判断如果同时收到了BM机器上测试B模块的Suite29和Suite48的成功通知和数据则开始执行,执行完成转步骤五
步骤五:结束,通知用户结果。
每个Suite都可以包含有时间属性,即使得到了上游机器的Suite的运行结果和数据也会等待到达指定时间才运行。系统会汇报Suite执行的结果,数据,通过率,覆盖率等同时还包括各项软件件资源的趋势图。

 

Earnings:
 20+ Modules Monitored By Prophet
 20+ SystemTest Logical Suites DailyRun On Prophet
 150+ ModuleTest Suites DailyRun On Prophet

 

(作者:laoyong)

 














本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/743450,如需转载请自行联系原作者

相关文章
|
5月前
|
存储 关系型数据库 MySQL
Baidu Comate Web在线出题能力测试——MySQL出题能力
Baidu Comate Web在线出题能力测试——MySQL出题能力
44 0
|
5月前
|
SQL 存储 关系型数据库
MySQL存储过程——Baidu Comate智能代码助手添加20条DML语句——测试索引效果
MySQL存储过程——Baidu Comate智能代码助手添加20条DML语句——测试索引效果
42 0
|
5月前
|
SQL 存储 关系型数据库
MySQL的触发器创建与使用——使用Baidu Comate生成与触发测试完整过程
MySQL的触发器创建与使用——使用Baidu Comate生成与触发测试完整过程
36 0
|
14天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
49 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
67 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
248 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
257 3
快速上手|HTTP 接口功能自动化测试
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
49 5
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
41 0
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
下一篇
无影云桌面