编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

新浪自动化测试平台STP(自动化测试和性能测试的区别)

wxchong 2024-07-05 01:55:32 开源技术 11 ℃ 0 评论

新浪测试研发团队

一、新浪测试平台介绍

新浪测试平台,简称STP(Sina Test Platform),是一站式的测试服务平台。主

要包括以下特性:

  • 良好的用户界面,简单易用

  • 支持主流移动操作系统:如Android、IOS、YunOS

  • 支持多种测试框架,如Appium、Robotium、TestNG、MSTest、JMeter

  • 支持多种编程语言, 如Java、C#、Python

  • 提供丰富功能,如功能测试,接口测试,稳定性测试,源码扫描

  • 支持单次和周期性测试计划,自动执行,自动生成发送Report

  • 与Jenkins和Gitlab集成

二、系统设计

2.1 系统结构

由五个模块组成:

  • Dashboard:用户交互入口,创建单次和周期性测试计划、管理测试计划、查看测试报告及其它一些管理功能

  • TestScheduler:轮询测试计划根据触发时间创建Run、为执行完成的Run发送测试报告邮件 、修复状态异常的测试计划

  • TestProxy:部署在服务器上,负责与Jenkins交互定时打包、与Gitlab交互定时更新测试用例、为Run准备产品包测试包

  • TestAgent:控制测试设备执行Run的模块,部署在不同用户的电脑上面,且Test Agent可自定义化(比如只能执行AndroidRobotium的Run),Test Agent所在电脑连接一台或者多台手机,Test Agent负责监控上报这些手机的状态、控制手机准备测试环境和执行Run、收集Log并生成测试报告

  • DataCenter:存放平台数据,保证数据一致性,供其它组件间接交互

【图:系统架构图】

2.2平台流程

【图:系统整体流程图】

整个系统中,为降低系统耦合,各个模块只能从数据中心来获取其任务,避免某个模块出现问题,就影响整个平台的使用。

主体流程:

  1. 用户在Dashboard上创建单次和周期性测试计划,自动保存至Data Center

2. TestScheduler定期检测测试计划,如果接近触发时间,则创建Run和Task,如果用户指定了N台测试手机,那么测试计划就生成N个Run,保证手机和Run一一对应,如下图数据库中生成的Run

3.Test Proxy轮询Run,一旦检测到Test Scheduler新生成的Run,则为其准备产品包和测试包,并更新Run状态

4. 每个Test Agent也都不停的轮询其所连接的手机和数据库,查看是否有机器可以执行待执行的Run,具体过程如下:

a)获取当前Test Agent所连接的手机,然后对所有手机进行遍历,看手机是否空闲

b)若手机处于空闲状态,则查询数据库,检查是否有待执行的Run分配到该手机

c)若有Run分配到此手机,则新启一个线程负责在当前手机上准备测试环境并执行Run ,然后继续遍历其它手机,执行同样的逻辑

d)新启线程会先锁住测试手机,然后准备测试环境、执行Run、生成报告,最终释放该手机

e)所有手机都遍历结束,此次轮询结束,Test Agent等待触发下次轮询

5. Run在Test Agent执行完成后,用户会收到执行完成的Mail,且可在Dashboard上查看具体测试报告,如下面几图所示:

三、如何支持多种项目

实际测试过程中,由于历史原因或是项目特殊需求,不同的项目往往采用不同测试框架,所以如何完美兼容不同项目也是平台的重点。

Test Proxy和Test Agent在运行过程中都遇到这个问题,采用了执行过程中动态绑定技术来解决这个问题:

两个模块在获取Run之前所有项目步骤一致,待到准备或者执行时候,会根据不同类型的项目,动态生成不同的适配器,下图以Test Agent的执行过程来详细说明:

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表