zoukankan      html  css  js  c++  java
  • testng参数化及用例排序

    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方法前执行!
  • 相关阅读:
    free命令查看内存使用情况(转载)
    php生成随机密码(php自定义函数)转自先锋教程网
    php随机密码函数的实例代码
    php高级面试题知识点(转载)
    php经典面试题与答案(转先锋教程网)
    react-native run-ios “Could not find iPhone X simulator”
    记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb
    asp.net core webapi/website+Azure DevOps+GitHub+Docker
    从头认识一下docker-附带asp.net core程序的docker化部署
    [aspnetcore.apidoc]一款很不错的api文档生成工具
  • 原文地址:https://www.cnblogs.com/sschen/p/3335209.html
Copyright © 2011-2022 走看看