zoukankan      html  css  js  c++  java
  • 【用例管理】用testng的groups管理用例

    一、需求:

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

    二、针对第一种运行部分的用例,可以用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>
    

      

      

  • 相关阅读:
    android Dialog 底部弹出
    L2-023. 图着色问题(暴力)
    L2-023. 图着色问题(暴力)
    L2-022. 重排链表
    L2-022. 重排链表
    L2-020. 功夫传人(dfs+vector 或者 邻接矩阵+dij+优先队列)
    L2-020. 功夫传人(dfs+vector 或者 邻接矩阵+dij+优先队列)
    愿天下有情人都是失散多年的兄妹(bfs)
    愿天下有情人都是失散多年的兄妹(bfs)
    循环赛日程表(分治)
  • 原文地址:https://www.cnblogs.com/Jourly/p/7002096.html
Copyright © 2011-2022 走看看