最近用 Perl 写了不少自动化测试工具,用到了一些模块,有几个觉得挺好的,记录下来,以后说不定还有需要用到呢。
Smart comments 提供了一个调试与追踪代码的简单方法,可以打印一个变量值,也可以追踪、显示一个循环的进度等。
最巧妙的是,当你完成了程序的编写,不需要这些调试代码的时候,只需要注释掉
use Smart::Comments;
这行就可以了。下次还需要再次调试代码的时候,不需要再添加一遍追踪代码,只要把上面那行代码重新激活就可以了。
如果你不在程序里用上面的语句显式的激活 smart comments,我们也可以在运行脚本的时候,显示地激活 smart comments 模块:
$ perl -MSmart::Comments $application.pl
如果有一段代码,需要在多个地方重复用到,但是写成函数却并不是很合适,这个时候,最好的办法,是用类似于 C++ 的宏定义,在需要的地方插入这个宏即可。可以用 Filter::cpp 这个模块来实现,安装这个模块后,用起来和 C++ 的宏就没有什么区别了。
现在很多测试用的测试用例 (test case) 以及测试报告都是用 Excel 来写的,要完成自动化测试,Perl 脚本最好能够自动从 Excel 读入数据、并在相应位置上记录测试结果。与这相关的工作,可以用下面的模块来完成:
如果我们需要读入 (parse) 一个已有的 Excel 文件,可以使用 Spreadsheet::ParseExcel,适用于 Excel 95-2003 版本。如果你用的是 Excel 2007 版本,则你需要用 Spreadsheet::XLSX 这个模块。
如果我们需要创建一个全新的 Excel 文件并写入数据,我们可以用 Spreadsheet::WriteExcel 模块。
如果我们需要打开一个 Excel 文件读入测试数据、再输出测试数据到这个 Excel 文件,我们需要使用 Spreadsheet::ParseExcel::SaveParser 这个模块,它综合了 Spreadsheet::ParseExcel 和 Spreadsheet::WriteExcel 的功能。这里特别强调一下,不管是修改 (overwrite) 已有的 Excel 数据,还是创建 (add) 新的 Excel 数据,均可以使用 AddCell 这个方法,如下所示:
# Overwrite the string in cell A1
$worksheet->AddCell( $row, $col, 'New string' );
# Add a new string in cell B1
$worksheet->AddCell( $row, $col + 1, 'Newer' );
最重要的是,在用 AddCell 修改或是添加了新数据后,一定要记得保存 Excel 文件,否则修改不会被保存下来!保存文件用下面的语句:
# Write over the existing file or write a new file.
$template->SaveAs('newfile.xls');
如果是同一个文件名,则把数据保存到原来的文件;如果是新文件名,则把数据保存到新的文件里。
用 Badger::Timestamp 模块可以很方便地对时间戳 (timestamp) 进行修改、比较等操作,相当方便。