原文链接: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>

  

  

  

最新文章

  1. 【WCF】基址与默认终结点
  2. Android 开发环境在 Windows7 下的部署安装
  3. October 25th Week 44th Tuesday 2016
  4. VS2013中web项目中自动生成的ASP.NET Identity代码思考
  5. Linux常用的安全工具 转自https://yq.aliyun.com/articles/52540?spm=5176.100239.blogcont24250.8.CfBYE9
  6. python中time模块的用法
  7. [原创]PostgreSQL中十进制、二进制、十六进制之间的相互转换
  8. Python按照索引访问list
  9. css 子div自适应父div高度
  10. vue 使用 supermap iclient-classic
  11. spring注解-“@Scope”
  12. FTP模式简式:PORT/PASV/EPRT/EPSV
  13. Windows SDK 8安装失败的绕坑办法
  14. java后台服务器启动脚本
  15. hdu 4544——消灭兔子
  16. Django基本配置与URLconf
  17. MySQL Execution Plan--EXPLAIN用法
  18. C#属性、自动属性、字段之间的区别和理解
  19. servlet简单的小例子
  20. highcharts多个Y轴

热门文章

  1. dubbo分布式应用
  2. 【JavaScript数据结构系列】00-开篇
  3. javascript中日期的最简单格式化
  4. 2.Linux系统之硬盘与分区基础知识
  5. 全网首发,腾讯T3-3整理Netty学习方案(体系图+项目+学习文档)
  6. 使用Docker发布blazor wasm
  7. [SD心灵鸡汤]010.每月一则 - 2016.02
  8. [安卓安全] 01.安卓本地数据存储:Shared Preferences安全风险浅析
  9. maven中scope
  10. 50个SQL语句(MySQL版) 问题六