http://blog.sina.com.cn/s/blog_6966650401012ra0.html

一、一个简单的测试谷歌搜索
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Parameter;
public class GoogleTest

{
    @Test
    public void
search(ITestContext
context) {
       
WebDriver driver = new FirefoxDriver();
       
driver.get("http://www.google.com");
       
WebElement element = driver.findElement(By.name("q"));
       
element.sendKeys("乙烯");
       
element.submit();
       
Assert.assertTrue(driver.getTitle().contains("乙烯"), "Title
is 
wrong!");

}
}
-------------------------------------------------------------------

<suite name="google demo"
verbose="2">
   
<test name="Search function">
       
<classes>
           
<class name="test.GoogleTest">
               
<methods>
                   
<include name="search" />
               
</methods>
           
</class>
       
</classes>
   
</test>
</suite>

注:
1.verbose:执行的输出详细程度。因为testng会输出html格式的测试报告。因此该属性决定报告详细程度。程度值由0-10.0是没有,10是最详细。不是必需有的。

二、使测试更加灵活:
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)
{

driver.get(url);
       
WebElement element = driver.findElement(By.name("q"));
       
element.sendKeys(keyword);
       
element.submit();
       
Assert.assertTrue(driver.getTitle().contains(keyword), "Title
is 
wrong!");

}  
}
---------------------------------------------------------------

<suite name="google demo"
verbose="2">
    <parameter
name="browser"
value="firefox"
/>
   
<parameter name="url" value="http://www.google.com"
/>
   
<parameter name="keyword" value="乙烯" />
   
<test name="Search function" preserve-order="true">

<classes>
           
<class name="test.GoogleTest">
               
<methods>
                   
<include
name="setupBrowser" />
                   
<include
name="search" />
               
</methods>
           
</class>
       
</classes>
   
</test>
</suite>

注:
1.利用TestNG的@Parameters标签,让测试方法从testng.xml里面读取参数,实现参数化。
参数化详解见:http://blog.sina.com.cn/s/blog_6966650401012lyn.html

2.在testng.xml的配置中,test节点需要增加一个属性的配置:
preserve-order=”true”。这个preserve-order默认是false,在节点下面的所有方法的执行顺序是无序的。把它设为true以后就能保证在节点下的方法是按照顺序执行的。在上面代码中setupBrowser方法必须在search方法前执行!

testng参数化及用例排序的更多相关文章

  1. testng入门教程10 TestNG参数化测试

    在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大的不同数量的测试.参数测试,允许开发人员运行同样的测试,一遍又一遍使用不同的值. TestNG让你 ...

  2. TestNG 参数化应用

    一.第一种参数化方式(testng.xml配置参数) 1.新建ParameterDemo04类 2.拷贝类的路径 3.testng.xml配置类地址及参数 <?xml version=" ...

  3. TestNG参数化测试Spring应用Dubbo接口

    一.配置dubbo的Bean文件: 配置spring-dubbo.xml文件: <dubbo:reference interface="com.datatrees.basisdata. ...

  4. testng参数化(提供测试数据)【转】

    testng提供测试数据的两个注释:@DataProvide和@Parameter   一.通过testng.xml中设置参数 (实际上testng.xml只是一个名字,可以起任何一个名字,只要是.x ...

  5. testng跑失败用例重试

    testng 提高用例通过率,失败用例要重新运行一次 步骤: 1.新建一个Retry 类,implements IRetryAnalyzer接口,这个类里面确定重跑次数,以及分析每次失败是否需要重新运 ...

  6. TestNG监听器实现用例运行失败自动截图、重运行功能

    注: 以下内容引自 http://blog.csdn.net/sunnyyou2011/article/details/45894089 (此非原出处,亦为转载,但博主未注明原出处) 使用Testng ...

  7. testNG参数化

    听说testNG比junit更好用,记录下 环境:springboot2.0+testNG6.8+maven+myeclipse 一 安装 (1)m'yeclipse安装testNg包,下载testN ...

  8. testng参数化(提供测试数据)

    testng提供测试数据的两个注释:@DataProvide和@Parameter   一.通过testng.xml中设置参数 (实际上testng.xml只是一个名字,可以起任何一个名字,只要是.x ...

  9. selenium2 TestNG参数化

    想要参数化,首先要加入@Parameters({"参数1","参数2"}) package com.demo.test; import java.util.co ...

随机推荐

  1. Xcode - 知道.001

    1.在xcode7以后,一定要有根视图,否则会报错,程序崩溃,

  2. ZT 北大青鸟APTECH(南京泰思特)

    北大青鸟APTECH(南京泰思特)授权培训中心诚招 高级软件测试/开发培训讲师 Posted on 2008-01-14 11:38 追求卓越 阅读(590) 评论(7) 编辑 收藏 北京阿博泰克北大 ...

  3. SpringMVC保存数据到mysql乱码问题

    SpringMVC保存数据到mysql乱码问题 乱码问题常见配置 一.web.xml配置过滤器 <filter> <filter-name>encoding-filter< ...

  4. ArcEngine编辑保存错误:Unable to create logfile system tables

    通过ArcEngine对多个SDE中多个图层进行批量编辑处理,其中有部分图层在结束编辑的时候出现错误提示(部分图层可以,只有两个数据较多的图层保存失败). 错误信息:Unable to create ...

  5. 激活windows10 LTSB 2016

    激活windows10 LTSB 2016 slmgr /ipk DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ slmgr /skms kms.firadio.net slmgr /at ...

  6. spring 多线程 注入 服务层 问题

    在用多线程的时候,里面要用到Spring注入服务层,或者是逻辑层的时候,一般是注入不进去的.具体原因应该是线程启动时没有用到Spring实例不池.所以注入的变量值都为null. 详细:http://h ...

  7. SQL Server 常用函数

    1.DATEADD 在向指定日期加上一段时间的基础上,返回新的 datetime 值. 语法 DATEADD ( datepart , number, date ) 参数 datepart 是规定应向 ...

  8. Jmeter测试结果分析

    *.jtl文件内容: 请求发出的绝对时间,响应时间,请求的标签,返回码,返回消息,请求所属的线程,数据类型,是否成功,字节,             响应时间 1458294513309,   382 ...

  9. vim c++补全

    弄了个vim对c++的补全,主要参考自: http://vim.wikia.com/wiki/C%2B%2B_code_completion   首先确定vim编辑.cc或者.cpp文件时当前自动补全 ...

  10. C# 如何给sql数据库的日期字段插入空值

    在C#中声明日期变量时用SqlDateTime类型,引用:using System.Data.SqlTypes; 例子:user.AbortDate = SqlDateTime.Null;