1
背景
常规稳定性测试常会出现以下问题问题:
框架不统一,自动化程度参差不齐
覆盖点因人而异
门槛较高,新人上手较为困难
因此,提供一个一键式自动化,低门槛和通用的稳定性测试平台是非常有必要的,能大大提供问题性测试效率。
2
稳定性平台介绍
taas(test as a service)测试平台是由网易杭州研究院质量保证部自研的稳定性测试通用平台,实现稳定性测试工作的执行、检查以及结果反馈的一键式自动化实现,提高稳定性测试的测试效率和场景覆盖率。
1.架构
从架构上看,taas测试平台主要业务调度器、负载生成器和报警生成器。
业务调度器:
根据用户设置对业务api进行强制触发。
业务api按照优先级的随机触发机制
api的强制触发机制
多样的并发实现,引入类并发的概念
负载生成器:
根据设置生成不同类型的压力负载。
自动化的压力增加及去除
多种压力负载类型(cpu、内存、网络和磁盘),支持自定义压力
支持不同的负载加压方式(恒压+变压)
报警生成器:
运行过程中进行对系统进行监控报警。
监控信息实时展示
报警自动触发,主送推送(邮件+popo+手机短信)
执行日志可视化,结果实时展示
测试报告的自动生成
2、功能
目前稳定性平台主要实现了策略管理、轮次管理、测试报告和机器管理等功能。
·策略管理
稳定性平台目前可以通过git把用户的测试代码拉取到服务器上,并根据用户指定的xml文件解析出用户需要跑的测试类。平台会不断循环执行用户所指定的测试类,以达到长时间进行稳定性测试的目的。另外,用户可以在平台的web页面上选择每个测试类的并发数以及并发模式,选择每轮测试之间的睡眠时间以及强制触发次数。
·轮次管理
用户可以在web页面上针对某个测试策略创建多个测试轮次,每个轮次可以指定测试的时间。同时,用户可以在页面上通过点击按钮开始测试以及提前停止测试。
· 测试报告
测试结束后,用户可以在web页面上撰写相关轮次的测试报告,包括概述、测试结果、风险点等。
· 机器管理
机器管理是对加压机器进行添加、编辑和删除等基本操作。在添加机器的时候,需要指定加压机器ssh的端口号,所属项目等信息。
· 版本管理
版本管理是对项目的版本进行简单管理,包括忽略版本、编辑版本信息和删除版本等功能。
3
优点
一键式自动化:实现稳定性测试工作的执行、检查以及结果反馈
低起点,易上手:新人无需学习即可快速上手
复用性强:项目间可以方便共享
策略灵活定制:根据需求灵活定制负载类型、强制触发策略、并发模式和并发次数。
结果可视化:直观展示测试结果
4
实践
通常一个项目在高并发情况下容易出现bug情况,而这些bug都可能导致高昂的技术支持/维护代价, 甚至用户退货或者产品召回。通常稳定性测试方案会从以下6个方面考虑时间、大流量、并发量、环境和使用方式以及极端方式。
以一个项目b(demo项目)稳定性为例子:进行稳定性设计分析和在iaas测试平台应用。
测试对象:项目b
测试周期(时间):在轮次中设置测试时间,一般为7*24小时高并发场景
测试规模(并发量):根据现实用户规模
业务场景:业务类型+调用频率+调度策略
根据每天线上用户数据分析得到每天功能被用户执行的平均次数以及每秒最大并发量。根据分析得的操作值设置测试api强制触发次数和每个业务api并发数,同时设置并发规格和每次触发的时间间隔。假设分析得到stabletest接口并发量为520,runningtest接口并发量为100,setuptest接口并发量为86,stoptest接口并发量为30。stabletest和runningtest为重要的接口,设置优先级为1。setuptest和stoptest设置优先级为2。
负载模型:负载类型+负载梯度
目前负载类型为cpu、内存、网络、磁盘和自定义负载5种,每种负载可以分为恒压和变压两种。根据线上服务器监控数据,设置cpu、内存、网络和磁盘大小。分别服务器虚拟机设置变压类型压力和恒压类型压力。
类型压力类型梯度大小
cpu变压1010%~100%
内存恒压—1024m
网络变压100100~100000
磁盘— 随机读写60%,块大小1m,10线程
配置信息:
告警推送:邮件推送+短信提醒
5推广情况
目前已有10个项目组试用,流程达到1000次,节约了80%的人时间。各项目组反馈使用良好。
以上由网易企业信息化服务提供商,湖南领先网络科技整理发布。
网易企业服务(qiye163.co)是网易凭借其20年品牌优势与经验在企业邮箱的基础上,为进一步布局企业市场而打造的企业级产品矩阵,致力于提供一站式企业信息化解决方案。湖南领先网络科技是网易企业产品授权经销商,专业为企业提供网易企业邮箱、网易办公套件等一站式企业信息化专业解决方案。