使用 Selenium 和 TestNG 进行编程式测试(3)

发表于:2011-09-19来源:未知作者:领测软件测试网采编点击数: 标签:selenium
driver.waitForPageToLoad(10000); assertEquals(driver.getText(success), The widget book-01 was successfully created., test didnt return expected message); } @Parameters({aut-addr}) @Test public void ve

  driver.waitForPageToLoad("10000");

  assertEquals(driver.getText("success"),

  "The widget book-01 was successfully created.",

  "test didn't return expected message");

  }

  @Parameters({"aut-addr"})

  @Test

  public void verifyCreationError(String appPath) throws Exception {

  driver.open(appPath + "/CreateWidget.html");

  driver.type("widget", "book-02");

  driver.select("type", "book");

  //definition explicitly set to blank

  driver.type("definition", "");

  driver.click("submit");

  driver.waitForPageToLoad("10000");

  assertEquals(driver.getText("failure"),

  "There was an error in creating the widget.",

  "test didn't return expected message");

  }

  @AfterClass

  private void stop() throws Exception {

  driver.stop();

  }

  }

  目前为止,我已经定义了两种足够灵活的 Selenium 测试,可以对多个浏览器进行测试,并且还可以对多个位置进行测试,这对初学者非常有利。尽管如此,我还想获得更高级点的应用,我开始考虑测试中的逻辑是否可重复使用。比如,如果对一行运行两次 CreateWidgetUATest 测试类会怎样?如何确保我的 Web 应用程序运行的是本地机器(或其他机器)上最新版本的代码?

  可重复的验收测试

  在执行 Selenium 测试时,必须运行 Selenium 服务器以及要检验的 Web 应用程序。言外之意,还必须运行应用程序中所有相关的架构依赖关系 —— 对于大多数 Java™ Web 应用程序来说,即 Servlet 容器和相关的数据库

  正如在我的另一篇文章 repeatable system tests 中解释的一样,DbUnit 和 Cargo 是两种我最喜欢的技术,可以在依赖数据库的 Web 应用程序中实现逻辑重复。DbUnit 管理数据库中的数据,而 Cargo 使容器管理以通用的方式实现自动化。下面几节将向您展示如何结合使用 Selenium 和 TestNG 从而确保实现逻辑重复的验收测试。

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