测试理论学习——系统异常测试

前言

 

异常测试通常指的是检测系统对异常情况的处理,常规来说,异常测试包括硬件或软件异常时的处理,本文主要介绍系统资源方面的异常测试。系统资源主要包括CPU、内存、磁盘和网络,因此,系统异常测试也主要从这4个方面来进行。

 

CPU异常

 

CPU高负载

 

通过模拟CPU高负载,观察在CPU资源被抢占的情况,系统的运行情况。

 

实现方式:编译运行以下源码,即可简单实现单核跑满:

 

#include <stdlib.h>
int main()
{
    while(1);
    return 0;
}

每次运行会占满一个核心,如果需要模拟多核跑满,多次运行即可。通过kill命令杀死进程结束模拟。

 

模拟CPU高负载的方式实际上还有很多,很多工具也都实现类似的功能,这里推荐一个PassMark提供的专业拷机软件:BurnInTest,有兴趣的可以尝试:(https://www.passmark.com/products/bitlinux.htm

 

内存异常

 

内存繁忙

 

针对内存的异常测试,主要方式是通过模拟内存频繁申请/释放,观察内存高负载情况下系统的运行情况。内存异常测试推荐使用memtester(http://pyropus.ca/software/memtester

 

使用方式:

 

$ memtester [测试内存量] [测试次数]

例如

 

$ memtester 4G 20

模拟20次的内存申请/释放,每次测试内存使用量为4G。

 

磁盘异常

 

磁盘空间不足

 

Linux系统提供了一个块拷贝命令——dd,可以非常方便的满足我们的测试需求,使用方式:

 

$ dd if=/dev/zero of=[目标路径] bs=[文件块大小] count=[文件块数目]

更多具体命令细节可以参见:https://en.wikipedia.org/wiki/Dd_(Unix))

 

磁盘I/O繁忙

 

结合shell脚本和上述dd命令,反复生成/删除文件,即可简单的模拟磁盘I/O繁忙的情况。

 

此外,也可以通过磁盘类的性能测试工具实现I/O负载的生成。FIO是一个测试系统IOPS的工具,根据指定的参数模拟IO负载,在磁盘类的性能测试中有广泛的运用。在这里,我们可以用FIO来模拟I/O繁忙,ks中已经有同学对FIO做了详细的介绍(http://ks.netease.com/blog?id=281),这里就不再赘述。

 

网络异常

 

在网络方面,主要有带宽跑满、网络延迟、网络丢包等异常情况。Linux系统提供了很多工具,可以方便我们实现模拟网络异常,这里选择netperf和tc来实现异常生成。

 

带宽跑满

 

netperf是网络带宽测试的工具,可以测量两个机器之间的网络带宽,我们可以使用netperf来模拟跑满节点网络带宽的情况。由于netperf为C/S运行模式,需要分别部署服务端和客户端,所以理论上至少需要2台机器,且受限于各自的上下行带宽限制。

 

实现方式:

 

服务端:

 

$ netserver

客户端:

 

$ netperf -H [服务端IP] -l [测试时长(秒)]

网络延迟和网络丢包

 

tc全称traffic control,是linux中的流量控制模块,通过设置tc,可以很方便的模拟网络延迟和网络丢包:
网络延迟:

 

$ tc qdisc add dev [网络设备名] root netem delay [延迟时间]

网络丢包:

 

$ tc qdisc add dev [网络设备名] root netem loss [丢包率]

将上述命令中的add改为del即可清除异常。

 

由于tc命令相对复杂,在此安利一下性能组同学开发的一款脚本:easy_traffic,将tc中用以模拟网络异常的功能简化了很多,只需要提供几个简单的参数即可实现网络延迟、网络丢包、网络带宽限制。

 

系统异常测试:https://sq.163yun.com/blog/article/170588356443312128

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值