Testng + Webdriver 入门篇

标签: testng webdriver | 发表时间:2014-05-19 19:51 | 作者:xinklabi
出处:http://www.iteye.com

转自:http://www.cnblogs.com/GGHHLL/archive/2013/06/07/3124121.html

断断续续摸索了几个星期终于将这个入门篇成文了。从Testng 官网 http://testng.org/ 都能找到这些资料。

  1. 首先安装Eclipse 的Testng 插件:这里  http://testng.org/doc/download.html 已经很详细了。记得重启eclipse。
  2. 建工程 (mvn 的安装见  http://maven.apache.org/download.html)
  3.      a). 用mvn 先建立工程
    1. mvn archetype:generate -DgroupId=com.testchina -DartifactId=my_testng_test -DinteractiveMode=false

      b). eclipse 导入现有的以上生产的 mvn工程 

      c). 修改pom.xml 添加以下selenium 和 testng 依赖

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>2.25.0</version>
</dependency>
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.7</version>
    <scope>test</scope>
</dependency>   

      3. 添加类HomePage, 与  前一篇的HomePage 一样
   右击HomePage, 新建 TestNG 类 ,记得在xml suit file 中输入testng.xml . 至此文件结构为:   

src/main/java
-------HomePage.java
src/test/java
-------HomePageTest.java
-------testng.xml 
pom.xml

     4.  修改 HomePageTest 测试类

public class HomePageTest {
protected static WebDriver driver;
@BeforeClass(groups = { "ff", "ie" })
public void beforeClass() {
    driver.get("http://www.baidu.com");
}

@AfterClass
public void afterClass() {

}

@BeforeSuite(groups = { "ie" })
public void beforeSuite_runOnIE() {
    driver = new InternetExplorerDriver();
}

@BeforeSuite(groups = { "ff" })
public void beforeSuite_runOnFF() {
    File pathToFirefoxBinary = new File(
            "C:\\Program Files (x86)\\FF10\\firefox.exe");
    FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);
    driver = new FirefoxDriver(firefoxbin, null);
}

@AfterSuite(groups = { "ff", "ie" })
public void afterSuite() {
    driver.quit();
}

@Parameters({ "searchTXT" })
@Test(groups = { "ie" })
public void HomePage(String searchTxt) {
    HomePage homepage = new HomePage(driver);
    homepage.enterSerchTxt(searchTxt);
    homepage.clickSerchButton();
    // maybe the net will delay, so wait for while
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    homepage.checkResult();
}

@Parameters({ "searchTXT2" })
@Test(groups = { "ff" })
public void HomePage2(String searchTxt) {
    HomePage homepage = new HomePage(driver);
    homepage.enterSerchTxt(searchTxt);
    homepage.clickSerchButton();
    // maybe the net will delay, so wait for while
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    homepage.checkResult();
}
}

以上用到了Group 和 Parameters。 参数在xml中进行定义, testng.xml如下:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite" parallel="false">
    <test name="Test">
        <parameter name="searchTXT" value="ie" />
        <parameter name="searchTXT2" value="ff" />
        <groups>
            <run>
                <include name="ff" />
            </run>
        </groups>
        <classes>
            <class name="com.testchina.HomePageTest" />
        </classes>
    </test> <!-- Test -->
</suite> <!-- Suite -->

最后eclipse里配置运行 选择Suite,运行该xml 即可。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [testng webdriver] 推荐:

Testng + Webdriver 入门篇

- - 研发管理 - ITeye博客
转自:http://www.cnblogs.com/GGHHLL/archive/2013/06/07/3124121.html. 断断续续摸索了几个星期终于将这个入门篇成文了. 从Testng 官网 http://testng.org/ 都能找到这些资料. 首先安装Eclipse 的Testng 插件:这里 .

JUnit4与TestNG对比

- - 编程语言 - ITeye博客
最近构建自动化测试,用webdriver+ant+junit3,发现用例的运行顺序无法保证,具有相关性的功能只好写在一个用例中,网上资料说junit4可以控制用例执行顺序,还没实际操作过,今天发现一篇TestNG与Junit4对比的文章,对我们的自动化测试很有帮助,记录在此,以待后续研究. 原文链接:http://blog.sina.com.cn/s/blog_4592b96f0101gi73.html.

自动化测试工具 Selenium WebDriver 入门教程

- - 行业应用 - ITeye博客
先要去官网( http://seleniumhq.org/download/)下载必需的文件: . Selenium IDE (专门用于 FireFox 测试的独立界面,可以录制测试步骤,但我更倾向于写代码做标准的功能测试). Selenium Server (可以输入指令控制、可以解决跨域的 js 问题,等到后面学到了再讲吧).

TestNG的参数化测试、共享线程池配置、参数默认值配置

- - CSDN博客研发管理推荐文章
在使用TestNG进行测试时,经常会使用到一些参数化配置,比如数据库、连接池、线程池数,. 使用TestNG的参数@Parameter注解进行自动化读取. 使用多线程的方式运行测试代码配置: 在''标签中配置data-provider-thread-count="20". // @Parameters注解内对应的参数名称和配置文件中的key必须是相同.