Twist是一个基于Eclipse开发的自动化测试平台,它是ThoughtWorks公司的一款商业软件。Sahi是一个Web自动化工具,有Tyto公司创建,具有免费版和专业版两个版本。作者将在本文中简单介绍一下这两个工具,以及基于它们搭建的轻量级Web自动化测试框架,后重点跟读者分享一些个人使用的经验和技巧。

  在介绍Sahi之前,首先简单描述一下作者参与的项目。这个项目是为一家公司做商业应用的实施。由于时间紧迫,测试人员较少,大部分时间都是在针对主要功能做手工测试。为了减少一些重复的手工劳动,我们决定搭建一套Web自动化框架。这个框架需要符合以下条件:1、搭建迅速,易于维护;2、使用简单,易学易用,降低测试人员的学习成本。3、由于业务流程比较复杂,希望在测试用例失败的时候能够方便测试人员快速准确的定位并重现问题。考虑到以上几点,再加上这个项目只需要对一些常用重复的流程进行自动化,我们放弃了以前搭建过的一套比较成熟的测试框架,转而决定使用Sahi和Twist来搭建一个轻量级的Web自动化框架。

  Sahi是一个比较成熟的Web自动化工具,使用它可以轻松的对Web页面操作进行录制和回放。作者曾经使用过一段时间的Selenium,个人经验而言,Sahi在元素定位,页面等待上更有优势一些。Twist是一个可协作的功能测试平台,之所以称为平台,是因为它提供了很多有用的功能来帮助测试人员编写和管理测试用例。Twist有个很好的特性是同时支持用户手工和自动化运行测试用例。这点可以让我们在得到功能需求后,先在Twist里建好测试场景,并根据业务逻辑写下测试步骤,等到被测功能比较稳定后,再决定自动化哪些测试用例,而那些业务逻辑和自动化脚本可以很好的在Twist中被关联起来,如图1所示。

图1 Twist中的测试场景

  在结合Twist的一些特性和Sahi的录制回放功能后,我们将测试框架设计如下图所示:

图2 基于Sahi和Twist的Web自动化测试框架