Ruby: Ruby脚本在测试中的使用
如果存在以下的场景:
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 newspapers if 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}" end end puts "总报纸数:#{newspapers.size}" puts "下载完成的报纸数:#{newspaper_names.uniq.size}" puts newspaper_names.uniq end get_downloaded(path)