最近用 Perl 写了不少自动化测试工具,用到了一些模块,有几个觉得挺好的,记录下来,以后说不定还有需要用到呢。

  1. Smart::Comments Smart comments 提供了一个调试与追踪代码的简单方法,可以打印一个变量值,也可以追踪、显示一个循环的进度等。
最巧妙的是,当你完成了程序的编写,不需要这些调试代码的时候,只需要注释掉

<pre><span>use</span> <span>Smart::Comments</span>;

这行就可以了。下次还需要再次调试代码的时候,不需要再添加一遍追踪代码,只要把上面那行代码重新激活就可以了。 

如果你不在程序里用上面的语句显式的激活 smart comments,我们也可以在运行脚本的时候,显示地激活 smart comments 模块:

<pre>$ perl -MSmart::Comments $application.pl

  1. 给 Perl 提供类似 C++ 宏的功能 如果有一段代码,需要在多个地方重复用到,但是写成函数却并不是很合适,这个时候,最好的办法,是用类似于 C++ 的宏定义,在需要的地方插入这个宏即可。可以用 Filter::cpp 这个模块来实现,安装这个模块后,用起来和 C++ 的宏就没有什么区别了。

  2. 在 Perl 里操作 Excel 文件 现在很多测试用的测试用例 (test case) 以及测试报告都是用 Excel 来写的,要完成自动化测试,Perl 脚本最好能够自动从 Excel 读入数据、并在相应位置上记录测试结果。与这相关的工作,可以用下面的模块来完成:

如果我们需要读入 (parse) 一个已有的 Excel 文件,可以使用 [Spreadsheet::ParseExcel](http://search.cpan.org/~jmcnamara/Spreadsheet-ParseExcel-0.54/lib/Spreadsheet/ParseExcel.pm),适用于 Excel 95-2003 版本。如果你用的是 Excel 2007 版本,则你需要用 [Spreadsheet::XLSX](http://search.cpan.org/~dmow/Spreadsheet-XLSX/lib/Spreadsheet/XLSX.pm) 这个模块。

如果我们需要创建一个全新的 Excel 文件并写入数据,我们可以用 [Spreadsheet::WriteExcel](http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel/lib/Spreadsheet/WriteExcel.pm) 模块。

如果我们需要打开一个 Excel 文件读入测试数据、再输出测试数据到这个 Excel 文件,我们需要使用 [Spreadsheet::ParseExcel::SaveParser](http://search.cpan.org/~jmcnamara/Spreadsheet-ParseExcel-0.54/lib/Spreadsheet/ParseExcel/SaveParser.pm) 这个模块,它综合了 Spreadsheet::ParseExcel 和 Spreadsheet::WriteExcel 的功能。这里特别强调一下,不管是修改 (overwrite) 已有的 Excel 数据,还是创建 (add) 新的 Excel 数据,均可以使用 AddCell 这个方法,如下所示:

<pre><span># </span><span>Overwrite the string in cell A1

$worksheet->AddCell( $row, $col, ‘New string’ );

<span># </span><span>Add a new string in cell B1

$worksheet->AddCell( $row, $col + 1, ‘Newer’ );

**最重要的是,在用 AddCell 修改或是添加了新数据后,一定要记得保存 Excel 文件,否则修改不会被保存下来!**保存文件用下面的语句:

<pre><span># </span><span>Write over the existing file or write a new file.

$template->SaveAs(‘newfile.xls’);

如果是同一个文件名,则把数据保存到原来的文件;如果是新文件名,则把数据保存到新的文件里。</li> 

  * [Badger::Timestamp](http://search.cpan.org/~abw/Badger-0.06/lib/Badger/Timestamp.pm) 
    用 [Badger::Timestamp](http://search.cpan.org/~abw/Badger-0.06/lib/Badger/Timestamp.pm) 模块可以很方便地对时间戳 (timestamp) 进行修改、比较等操作,相当方便。</ol>