软件测试之Tellurium自动测试框架

发表于:2009-07-13来源:作者:点击数: 标签:软件测试框架自动测试系统Tellurium
软件测试之Tellurium自动 测试框架 自动测试系统 Tellurium Automated Testing Framework(Tellurium 自动测试框架 )是一个新的 开源 项目。已经有一些用户, 主要来自美国和印度, 国内的还是比较少。 希望这里把Tellurium介绍给国内的同行,请多多使用,

 软件测试之Tellurium自动测试框架    自动测试系统

Tellurium Automated Testing Framework(Tellurium自动测试框架)是一个新的开源项目。已经有一些用户, 主要来自美国和印度, 国内的还是比较少。 希望这里把Tellurium介绍给国内的同行,请多多使用,多多交流。

  目前,Tellurium还是建立在Selenium框架之上, 在不久的将来希望Tellurium会开发自己的测试驱动Engine来更好,更有效地支持Tellurium.

  尽管Tellurium脱胎于Selenium, 但两者在概念上是大大的不同。 打个比方,Selenium是C, 而Tellurium是C++。

  首先, Selenium主要用于记录和重播模式(Record and replay), 这是很方便,但是在比较复杂的应用中这种模式并不能很好地工作, 因为你必须记录可能的所以的测试情况, 除此之外, Data dependency(数据的依赖性)也是个大问题。

  第二, Selenium将测试的页面表述(Locator)和测试代码混在一起, 很难维护和重复使用(reuse)。

  第三, Selenium面对的是一个个单独的网页元素, 而且网页元素的Locator很难作到鲁棒性(robust)。

  那么Tellurium是如何克服上面的问题的呢?

  第一, Tellurium不是记录和重播模式, 而是注重网页模块的。 首先你必须定义网页模块和对模块的方法。 以Google页面为例, Google搜索模块可以定义为:

  ui.Container(uid: "Google", clocator: [tag: "td"], group: "true"){

  InputBox(uid: "SearchBox", clocator: [title: "Google Search"])

  SubmitButton(uid: "Search", clocator: [name: "btnG", value: "Google Search"])

  SubmitButton(uid: "Feelinglucky", clocator: [value: "I'm Feeling Lucky"])

  }

  然后, 你可以定义一些对它的操作方法,

  def doGoogleSearch(String input){

  type "Google.SearchBox", input

  pause 500

  click "Google.Search"

  waitForPageToLoad 30000

  }

  def doImFeelingLucky(String input){

  type "Google.SearchBox", input

  pause 500

  click "Google.FeelingLucky"

  waitForPageToLoad 30000

  }

  在此之上你可以像写JUnit测试一样的写测试代码, 例如:

  public class GoogleStartPageJavaTestCase extends TelluriumJavaTestCase {

  protected static NewGoogleStartPage ngsp;

  @BeforeClass

  public static void initUi() {

  ngsp = new NewGoogleStartPage();

  ngsp.defineUi();

  }

 

原文转自:http://www.ltesting.net