功能测试:一次网管测试
摘要
现网在出现故障或者出现大量告警时候,网管系统没有及时的向上级网管站发出告警,导致我们不能第一时间发现问题,解决问题。如何在实验室环境中模拟、重现出现网问题,以及解决问题?本文主要对实验室如何模拟现网环境的测试方法和手段进行了描述。
适读人群
测试设计师、测试经理、质量保证主管、项目经理
模型分析
网管站主要处理三种方式的告警:
1. 主机资源类告警(数据库资源类告警)
2. 核心网元实时告警(采用snmp协议trap发送到网管站)
3. 核心网元数据文件告警(网管站采用ftp协议进行告警文件采集)
经过分析系统出现告警遗漏是网元告警文件模式,现网中配置了大量的关于该类告警的规则,每来一条记录都会触发规则校验。因此主机采集和数据库采集不作为本次关注的重点,只要发些背景压力即可。
系统大概有15个网元,有5台虚拟机供测试使用。因此在每台机器上面部署3个目录来模拟3个网元产生告警文件。
使用loadrunner模拟15个网元并发发起trap告警请求。
在5台虚拟机上部署HostAgent来完成主机信息采集,在1台数据库主机上面部署dbagent.23456783.2模拟网元产生告警文件供网管进行采集。
通过获得现网网元产生的告警文件,进行修改,为了增加压力,使里面的数据产生的告警增多,编写Shell动态生成这些文件。如果每次都发送相同的内容,后台网管站会认为是重复告警,因此我们脚本需要完成下面的功能:
1. 根据系统时间修改告警文件后缀
2. 在达到告警清除时间后能够进行判读是否需要生成告警文件。
示例代码:
```
!/bin/bash
olddate"quot"
runi0
while true; do
find "/root/data1/" -name "mpiag*" > result.txt
count$(wc -l result.txt|awk '{print $1}')
if [ $count -gt 1 ]; then
echo "have"
else
runi$runi 1
filename$(find "./tmp/" -name "mpiag*")
arr(${filename// / })
arr1(${arr//// })
for i in ${arr1[@]}; do
filename$id
done
echo "fielname$filename"
arr2(${filename//_/ })
for i in ${arr2[@]}; do
olddate$id
done
newdate$(date %Y%m%d%H%M'00')
rename $olddate $newdate ./tmp/*
cp -r ./tmp/* /root/data1/
echo $runi
fi
sleep 500
done
```
主机和DB信息采集
主机采集和DB信息采集使用真实程序完成,如果需要模拟大批量主机信息采集,需要开发相应的挡板完成。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。