禅道自动化测试框架ZenTaoATF1.0发布

蚕小豆 12年前

大家好,我们非常自豪的向大家推出我们禅道开发团队开发的自动化测试框架——ZenTaoATF(zentao auto testing framework)。ZenTaoATF只有一个脚本文件,可以支持各种脚本语言编写的自动化测试脚本,语法简单,使用灵活,后续会和禅道项目管理软件进行绑定和集成。</span>

下载地址:http://www.zentao.net/article-view-79773.html
</span>

它的基本工作原理如下:

首先,你需要写一个测试脚本来实现你正常的测试逻辑。现在支持php, python, ruby, lua, tcl, bash。
这个测试脚本里面按照自己所测程序的业务逻辑编写,比如链接数据库,查询某一个记录等等。

然后通过注释的方式为这个测试脚本写上基本的用例信息:标题,步骤和预期结果,采用的是yaml语法格式。
<<<TC
title: helloworld.
expect: helloworld.
TC

然后执行zt脚本,zt脚本会扫描当前目录下面的带有用例标志的脚本,然后调用执行,得出每个脚本的实际输出,然后和用例里面事先记录好的预期结果进行比对,如果相匹配,则成功,如果失败,则计算diff信息。

相比较于其他的自动化测试框架或者单元测试框架来将,ZenTaoATF的主要特点如下: 

1. 简单
1.1 程序简单
整个自动化测试框架只有一个zt文件,使用php开发,安装和运行都非常的方便。

1.2 语法简单
ZenTaoATF的语法只有简单的标题,步骤,预期结果,采用yaml格式,撰写比较方便,可读性也很好。

2. 跨语言
ZenTaoATF框架本身是使用PHP开发的,但它支持各种各样的脚本语言,比如python, ruby, lua, tcl, bash, bat等。

3. 跨平台
ZenTaoATF可以运行在各个平台下面。(现在暂时只支持linux,windows1.1版本加入)

4. 和禅道项目管理软件集成

后续版本我们会和禅道开源项目管理软件进行集成和绑定,脚本和用例可以做到有机的结合。

 

如何安装:

1. 现在zentaoatf暂时只支持linux和bsd系统,请先安装好php的运行环境。

2. 下载zentaoatf包,将其解压缩到一个目录。

3. 解压缩之后,有一个zt的php脚本。使用命令chmod a+rx zt 给它增加可执行权限。

4. 为了后面方便使用,可以考虑将zt这个脚本拷贝到/usr/local/bin目录下面。

 

如何运行:


1. 下载zentaoatf包之后,里面有两个目录,一个是基本的语法,一个是各种脚本语言的格式。

2. 可以在这个目录下面执行执行 zt,就可以运行自动化测试脚本。执行的效果如下:
禅道自动化测试框架

 

基本语法:

 

1. 在脚本里面通过注释的形式来写脚本的标题和预期步骤:

</tr> </tbody> </table> </div> </div> 其他语言的格式,请参考langs下面的脚本。

 

2. expect可以带有格式串

1
2
3
4
5
</td>
<?php
<<<TC
title: php hello world.
expect: hello world.
TC;
</tr> </tbody> </table> </div> </div> 具体的格式串信息,请参考:http://qa.php.net/phpt_details.php#expectf_section.

 

3. 正则表达式标签:expectx

1
2
3
4
5
6
</td>
<<<TC
title: with format chars.
expect: hello world %i.
TC;
 
echo 'hello world ' . time() . '.' ;
</tr> </tbody> </table> </div> </div> 4. 多行匹配

1
2
3
4
</td>
<<<TC
title: with regular rules.
expectx: hello world [0-9]*.
TC;
</tr> </tbody> </table> </div> </div> 5. 将预期放在文件中

 

如果预期内容很多的话,可以将预期内容放在一个隐藏文件中,以.开头,然后和脚本同名,后缀是et或者ex,如果是正则表达式的话是,以ex结尾,其他的以et结尾。

比如脚本05_expect_file.php,里面的预期标签是expect,它对应的预期文件是.05_expect_file.et

脚本06_expectx_file.php预期标签是expectx,它对应的预期文件是.06_expectx_file.ex 

1
2
3
4
5
6
7
8
9
</td>
<<<TC
title: with multi lines.
expect:|
  2
  3
TC;
 
echo 1 + 1 . "\n";
echo 1 + 2 . "\n";