可靠性测试用例设计
1、数据仓库服务架构
数据仓库服务(Data Warehouse Service),下面简称DWS 。主要为客户提供数据存储,数据挖掘,数据分析等功能。其内核采用开源的关系数据库管理系统Postgres SQL加以定制开发。服务部署在集群上,集群有3~32个虚拟主机组成。用户使用DWS集群的请求处理流程如下:
1.1、用户通过客户端,例如chrome,IE,FireFox等浏览器登录DWS界面,对应于下图中的1。
1.2、用户对DWS集群做了一个操作,比如重启,对应于下图中的2。
1.3、Nginx根据调度策略将重启请求下发到某一个console节点上,对应于下图中的3.
1.4、Console节点将请求通过HAproxy根据某种调度策略,将请求下发到service节点上,对应于图中的4。
1.5、service节点处理重启任务,并更新数据库中相关表的记录,对应于图中的5,并返回处理结果。
其它节点功能说明:
1.6、monitor节点:监控集群的状态。
1.7、billing节点:计费。
1.8、OM Sevice节点(insight):运维节点,一些运维操作会通过该节点下发到service节点上。
1.9、DB节点:数据库节点,一主一备。
2、可靠性测试的含义与测试过程
可靠性测试是指:系统在常规与意外环境执行和保持其功能的能力,系统必须能以一致性和可重复性的方式执行并保持其功能。(概念出自《敏捷软件测试:测试人员与敏捷团队的实践指南》)
测试过程:
2.1、明确可靠性测试的目标,同一个系统,不同的测试目标设计出来的用例也不一样。
2.2、了解软件的架构。
2.3、设计可靠性测试用例。
2.4、执行可靠性测试用例。
2.5、分析可靠性测试结果并输出测试报告返回给测试经理。
3、用例设计
主要从以下几个方面来考虑,可靠性测试的原则之一:故障恢复后业务能够自修复。
3.1、从架构设计图来看一共涉及的的节点有:console,service,billing,db,insight,monitor。其中只有insight部署在一台主机上,其余节点均部署在2台或2台以上的服务器上,以service为例,一台服务器宕机了是否会影响业务,两台呢,或者全部宕机后开机能否自行恢复业务呢?
3.2、内存占用率:单个节点的内存占用率达到90%和100%;多个节点 内存占用率达到90%或100%。
3.3、CPU占用率::单个节点的CPU占用率达到90%和100%;多个节点 CPU占用率达到90%或100%。
3.4、磁盘使用率::单个节点的磁盘使用率达到90%和100%;多个节点 磁盘使用率达到90%或100%。
3.5、网路故障:单个节点网络故障,多个节点网络故障。单个节点和多个节点某个网卡down掉。
3.6、单个节点重启,或多个节点重启。
3.7、功能首次失败时间,比如:创建DWS集群首次失败时间,即初始操作和首次失败之间的平均时间。
3.8、DWS集群长时间运行业务,是否出问题。
3.9、并发操作:比如同时创建50个集群,观察成功率,可以使用BrupSuite工具。
3.10、业务能否从节点A迁移到节点B,比如创建集群的任务正在节点service1上运行,此时,service1宕机,任务能否成迁移到service2或service3上。
4、可靠性测试过程中用到的工具
写满磁盘
参考命令:dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
占满内存
待补充
占满CPU
参考:https://blog.csdn.net/robertsong2004/article/details/36879233