zoukankan      html  css  js  c++  java
  • WebDriver+TestNG的一个典型例子

    想让测试更加灵活,1. 可以配置使用任意支持的浏览器进行测试;2. 配置所有Google的URL;3. 配置搜索的关键字。修改后的代码:

    public class GoogleTest  {
    WebDriver driver;
    @Parameters({"browser"})
    @BeforeTest
    public void setupBrowser(String browser){
    if (browser.equals("firefox")){
    driver = new FirefoxDriver();
    } else {
    driver = new ChromeDriver();
    }
    }
    @Parameters({ "url", "keyword" })
    @Test
    public void search(String url, String keyword, ITestContext context) {        driver.get(url);
    WebElement element = driver.findElement(By.name("q"));
    element.sendKeys(keyword);
    element.submit();
    Assert.assertTrue(driver.getTitle().contains(keyword), "Something wrong with title");        }
    }

    testng.xml的内容:

    <suite name="Magus demo" verbose="2">
    <parameter name="browser" value="firefox" />
    <parameter name="url" value="http://www.google.com" />
    <parameter name="keyword" value="magus" />
    <test name="Search function" preserve-order="true">
    <classes>
    <class name="test.GoogleTest">
    <methods>
    <include name="setupBrowser" />
    <include name="search" />
    </methods>
    </class>
    </classes>
    </test>
    </suite>
    利用TestNG的@Parameters标签,让测试方法从testng.xml里面读取参数,实现参数化。在testng.xml的配置中,test节点需要增加一个属性的配置: preserve-order=”true”。这个preserve-order默认是false,在节点下面的所有方法的执行顺序是无序的。把它设为true以后就能保证在节点下的方法是按照顺序执行的。TestNG的这个功能可以方便我们在testng.xml里面拼装测试。假设我们有很多独立的测试方法,例如
      navigateCategory
      addComment
      addFriend
      login
      logout
      就可以在testng.xml里面拼出不同的测试,例如
    <test name="Add friend" preserve-order="true">
    <classes>
    <class name="test.GoogleTest">
    <methods>
    <include name="login" />
    <include name="addFriend" />
    <include name="logout" />
    </methods>
    </class>
    </classes>
    </test>
    <test name="Add comment to category" preserve-order="true">
    <classes>
    <class name="test.GoogleTest">
    <methods>                <include name="login" />
    <include name="navigateCategory" />
    <include name="addComment" />
    <include name="logout" />
    </methods>
    </class>
    </classes>
    </test>
  • 相关阅读:
    stm32时钟分析
    STM32中断优先级彻底讲解
    STM32 外部中断简介
    sencha touch 选择器
    sench touch 页面跳转
    sencha touch 学习汇总(转)
    ES6项目构建(babel+gulp+webpack)
    sencha touch
    sencha touch 目录结构
    angular学习笔记(6)- 指令
  • 原文地址:https://www.cnblogs.com/sylovezp/p/4329865.html
Copyright © 2011-2022 走看看