使用 Python 在 Linux 上实现一键回归测试(2)

<sprint-schedule> <min-sprint>10</min-sprint> <max-sprint>20</max-sprint> <sprint10>20130814</sprint10> <sprint11>20130828</sprint11> … … <sprint19>20131218</sprint19> <sprint20>20140101</sprint20> </sprint-schedule>

关于 xml 解析 Python 提供了多种方法。本文采用 minidom 对 xml 文件进行解析,清单 7 是相关处理代码。

清单 7. xml 解析代码

cur_date = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())) # 首先获取当前系统日期 xmldoc = minidom.parse(xml_file) min_num_node = xmldoc.getElementsByTagName('min-sprint')[0] min_num = int(min_num_node.firstChild.data) #解析出迭代开发周期的起始周期 max_num_node = xmldoc.getElementsByTagName('max-sprint')[0] max_num = int(max_num_node.firstChild.data) #解析出迭代开发周期的终止周期 cur_num = min_num #遍历所有迭代周期,取出当前迭代周期的开始时间和当前的系统时间对比,从而确定当前位于哪一个迭代周期。 while cur_num <= max_num : node_name = 'sprint' + str(cur_num) cur_node = xmldoc.getElementsByTagName(node_name)[0] sprint_date = cur_node.firstChild.data if sprint_date < cur_date[0:7]: cur_num = cur_num + 1 else: break

这样 cur_num 就指向了当前的迭代开发周期。然后,我们就可以根据当前日期和开发阶段创建对应的日志目录名了,最后把运行结果存储到该目录下,参见清单 8 实现。

清单 8. 日志存储代码

log_dir = self.share_dir + '/Sprint' + str(cur_num) + '-' + cur_date #share_dir 为共享目录,定义在初始化函数中 os.mkdir(log_dir) os.system('mv %s %s' %(self.debug_fullname, log_dir)) #debug_fullname,详细日志文件名(含目录),定义在初始化函数中 os.system('mv %s %s' %(self.sum_fullname, log_dir)) #sum_fullname,汇总日志的全路径文件名,定义在初始化函数中

关于测试结果的发布,本文并没有把测试结果以自动化的形式发送邮件,而是手动在每个开发周期结束时,群发邮件给相关人员。或者在验证失败后,通知相关的开发人员,这是由于作者所在团队项目代码提交频率不是很高。在更大型的项目中,往往需要增加自动发送邮件的功能,相关实现本文不再赘述。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/232289fd65d0f6906075dbde90bbe098.html