zoukankan      html  css  js  c++  java
  • (二)用testng的groups管理用例

    原文链接:https://www.cnblogs.com/Jourly/p/7002096.html

    一、需求:

    测试时经常有两种场景,第一种是冒烟测试的小部分用例;一类是全部用例。

    二、针对第一种运行部分的用例,可以用groups来管理

    package com.testcases;
     
    import org.testng.annotations.Test;
    import com.pages.LoginPage;
    import com.jxl.excel.ExcelData;
    import jxl.read.biff.BiffException;
    import static org.testng.Assert.*;
    import java.io.IOException;
    import java.lang.reflect.Method;
    import java.util.HashMap;
    import org.openqa.selenium.TimeoutException;
    import knife.BrowserEmulator;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.DataProvider;
    import org.testng.annotations.AfterMethod;
     
    public class LoginTest {
        BrowserEmulator browser;
        LoginPage loginPage;
        String url = "https://passport.dxqas.com";
     
        @DataProvider(name = "loginData" )
        public Object[][] testData(Method method)  {       
            ExcelData e = new ExcelData("LoginTest", method.getName());
            return e.getExcelData();
        }
     
        /**
         * 测试登录没有输入用户名
         */
        @Test(groups={"smoke"}, dataProvider = "loginData")
        public void testNoNameLogin(HashMap<String, String> data) {
            String username = data.get("username");
            String password = data.get("password");
            loginPage.doLogin(username, password);
            assertEquals(loginPage.getNoNameTip(), data.get("expectedNoNameTip"));
        }
     
        @BeforeMethod(groups={"smoke"} )
        public void beforeMethod() {
            browser = new BrowserEmulator();
            loginPage = new LoginPage(browser);
            browser.open(url);
        }
     
        @AfterMethod(groups={"smoke"})
        public void afterMethod() {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            browser.quit();
        }  
    }
    

    这里需要注意的是,beforemethod和aftermethod也必须加入groups,才会被执行。

    然后在testng里配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="testsuite" >
        <!-- 执行冒烟测试 -->
        <test name="LoginTest" preserve-order="true">
            <groups>
                <run>
                    <include name="smoke" />
                </run>
            </groups>
            <classes>
            <class name="com.testcases.LoginTest" />
            </classes>   
        </test>
    </suite>
    

    classes必须把类加载进来,或者加载一个包。

    三、运行全部用例,可以一个类一个类的加,也可以直接加载一个包,更简便,用例一般都在testcases包里。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="Suite1">
        <test name="test">
            <packages>
                <package name="com.testcases"/>
            </packages>      
        </test>
    </suite>
    

      

      

      

  • 相关阅读:
    WKT转换工具terraformers
    关于微信公众号投票结果的通告
    个人博客03
    个人博客02
    个人博客01
    四则运算2
    学习进度条
    构建之法阅读笔记01
    错误随笔
    软件工程概论第一节
  • 原文地址:https://www.cnblogs.com/lvchengda/p/13044298.html
Copyright © 2011-2022 走看看