敏捷开发和测试中重现缺陷和验证缺陷的解决方案(3)
作者:网络转载 发布时间:[ 2013/4/11 11:53:12 ] 推荐标签:
实现部分 2:缺陷验证环境的部署
由于我们在系列第二篇中曾经提到对 RTC 中存储的缺陷添加"IWD Pattern"字段,用于存储虚拟系统模式的名字,这里可以直接通过 RTC RESTAPI 获得虚拟系统模式名称,然后通过 IWD 的命令行工具 (Command Line Tool) 或者 RESTAPI 在对应的 IWD 服务器上创建缺陷验证环境。
IWD 提供的命令行工具可以直接从 IWD 的登陆界面上下载:
图 5. IWD 登陆界面中命令行工具下载页面
图 6. IWD 命令行工具本地文件结构
IWD 命令行工具是通过 python 脚本调用 IWD RESTAPI 实现具体功能的,工具中的 readme 文件具体描述了如何调用 python 脚本,或者读者也可以从参考资源中提供的链接学习如何调用。以下是两个 python 脚本,在部署缺陷环境前先查找缺陷中记录的虚拟系统模式是否包含在这个 IWD 服务器中,如果在则继续部署这个虚拟系统模式为一个虚拟机环境。
清单 2. 查看 IWD 服务器上所有虚拟系统模式信息
#
# For each pattern returned, the name of the pattern is presented
#
import ConfigParser
import threading, time, csv, random
# get all the vsystems associated with a pattern
# this emulates the user clicking on the "Systems" selection in the tree view
def get_systems(pattern, fname, fhandle):
nsystems = 0
start = time.time()
nSystems = len(pattern.virtualsystems)
for cnt in range (nSystems):
try:
system = pattern.virtualsystems[cnt]
except:
break
finish = time.time()
fname.writerow([time.strftime("%m/%d/%Y"), time.strftime("%H:%M:%S"),'system',
nSystems, (finish-start)])
fhandle.flush()
# get all the patterns
# this emulates the user clicking on the "Patterns" selection in the tree view
def get_patterns(fname, fhandle):
start = time.time()
patterns = deployer.patterns
finish = time.time()
fname.writerow([time.strftime("%m/%d/%Y"), time.strftime("%H:%M:%S"),'pattern',
len(patterns), (finish-start)])
fhandle.flush()
for pattern in patterns:
if (len(pattern.virtualsystems) > 0):
time.sleep(random.randint(1, 10))
get_systems(pattern, fname, fhandle)
######
config = ConfigParser.RawConfigParser()
config.read('listPatterns.cfg')
try:
output = '%s_%s.csv' % (config.get('Main', 'outfile'),time.strftime("%Y%m%d@%H%M%S"))
interval = config.getint('Main', 'interval')
duration = config.getint('Main', 'duration')
except ConfigParser.Error:
print "Error reading config file"
sys.exit
fhandle = open(output, 'w')
fname = csv.writer(fhandle, delimiter=',')
fname.writerow(['date', 'time', 'type', 'number','duration'])
fhandle.flush()
print 'Running ...'
print 'Output File: %s Duration: %d Interval: %d' % (output, duration, interval)
end_time = time.time()+(60*duration)
while (end_time > time.time()):
start = time.time()
time.sleep(random.randint(1, 10))
get_patterns(fname, fhandle)
# only sleep the remainder of the interval
time.sleep((time.time()+interval) - start)
print 'Completed on %s at %s' % (time.strftime("%m/%d/%Y"), time.strftime("%H:%M:%S"))
fhandle.close()
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11