如果存在以下的场景:
1. 放置在公司的读报机服务器,每天都是开启的;
2. 读报机每天下载报纸,一旦成功/失败,就会有相应的记录生成在某个xml文件中;
3. 现在有过去一年的读报机下载xml,大约有200多份,每份xml中存储了记录如下:
现在你的经理想从测试人员你那儿获取一些知识:
过去一年,我们的读报机功能,哪些报纸一直能够给客户下载?哪些报纸我们告诉客户是可以下载的,但是实际上是下载失败的?
如果去找开发,也许通过连接数据库,运行一下SQL查询,记录就出来了,但是如果服务器不允许你访问,需要你统计结果,那怎么办?
如果你会Ruby脚本,一切都非常简单:
path = "C:\\Users\\chenpassion\\Desktop\\20130806.xml"def get_downloaded(path)path = path.gsub('\\', '\\\\')#把文件所有的内容都读取出来file = File.read(path)#把每个报纸所在的段扫描出来newspapers = file.gsub("\n", " ").scan(/\<NewspaperReport.*?\/\>/)#定义一个数组,存放所有下载完成的报纸newspaper_names = []#获取所有下载完成的报纸信息 for newspaper in newspapersif newspaper.include?("下载完成")chinese_name = newspaper.scan(/ChineseName=".*"/)[-1].gsub(/[(ChineseName=)\"]/, "")pinyin_name = newspaper.scan(/NewspaperName=\"\w+\"/)[-1].gsub(/(NewspaperName=)?(\")?/, "")newspaper_names << "#{chinese_name}\t#{pinyin_name}"endendputs "总报纸数:#{newspapers.size}"puts "下载完成的报纸数:#{newspaper_names.uniq.size}"puts newspaper_names.uniq endget_downloaded(path)