一、需求:

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

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

  

  

【用例管理】用testng的groups管理用例的更多相关文章

  1. (二)用testng的groups管理用例

    原文链接:https://www.cnblogs.com/Jourly/p/7002096.html 一.需求: 测试时经常有两种场景,第一种是冒烟测试的小部分用例:一类是全部用例. 二.针对第一种运 ...

  2. iOS 非ARC基本内存管理系列 2-多对象内存管理(2)

    /* 多对象内存管理: 以人拥有车为例涉及到@property底层set方法管理内存的实现 注意:人在换车的时候要进行当前传入的车和人所拥有的车进行判断 */ /******************* ...

  3. 第十七章、程序管理与 SELinux 初探 工作管理 (job control)

    工作管理 (job control) 这个工作管理 (job control) 是用在 bash 环境下的,也就是说:『当我们登陆系统取得 bash shell 之后,在单一终端机介面下同时进行多个工 ...

  4. SSH WebShell: SSH在线WEB管理器安装教程 - VPS管理百科

    SSH WebShell: SSH在线WEB管理器安装教程 - VPS管理百科 SSH WebShell: SSH在线WEB管理器安装教程 本站原创 [基于 署名-非商业使用-相同方式分享 2.5 协 ...

  5. 本地管理表空间和字典管理表空间的特点,ASSM有什么特点

    字典管理表空间(Dictionary-Managed Tablespace简称DMT),8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用. Oracle使用两个字典来 ...

  6. Linux 文件与目录管理,Linux系统用户组的管理

      一.Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什 ...

  7. Spring AOP /代理模式/事务管理/读写分离/多数据源管理

    参考文章: http://www.cnblogs.com/MOBIN/p/5597215.html http://www.cnblogs.com/fenglie/articles/4097759.ht ...

  8. Spring学习8-Spring事务管理(编程式事务管理)

    一.Spring事务的相关知识   1.事务是指一系列独立的操作,但在概念上具有原子性. 比如转账:A账号-100, B账号+100,完成.这两个操作独立是没问题的. 但在逻辑上,要么全部完成,要么一 ...

  9. ylbtech-权限管理-数据库设计-功能权限管理技术

    ylbtech-DatabaseDesgin:ylbtech-权限管理-数据库设计-功能权限管理技术 DatabaseName:ylb_permission(权限管理-功能权限管理技术)实现 Type ...

随机推荐

  1. EsayUI + MVC + ADO.NET(项目架构)

    项目目录   1.项目架构: http://www.cnblogs.com/liuxiaoji/p/3922506.html  2.仓储基础接口: http://www.cnblogs.com/liu ...

  2. 力扣(LeetCode)976. 三角形的最大周长

    给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的.面积不为零的三角形的最大周长. 如果不能形成任何面积不为零的三角形,返回 0. 示例 1: 输入:[2,1,2] 输出:5 示例 2 ...

  3. 如何在Vue项目中使用vw实现移动端适配(转)

    有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越 ...

  4. 历次PCB板修改意见汇总

    历次PCB板修改意见汇总: 1 对于主控芯片,建议参考官方的PCB布局,官方的PCB布局肯定是为了最大程度的发挥主控的性能. 2 LDO要选择低功耗的,静态电流越小越好,估算一下板子的最大电流,选择L ...

  5. 用basicTrendline画一元线性回归直线的置信区间

    感慨统计学都还给老师了..恶补! R安装包的时候貌似需要用管理员权限启动,否则安装不了,国内镜像卡得渣渣,还是国外镜像真香~选择hongkong就好了. install.packages(" ...

  6. 响应式布局与bootstrap框架

    原文 网页布局方式 1.固定宽度布局:为网页设置一个固定的宽度,通常以px做为长度单位,常见于PC端网页. 2.流式布局:为网页设置一个相对的宽度,通常以百分比做为长度单位. 3.栅格化布局:将网页宽 ...

  7. Ubuntu更改源和搜狗输入法安装卸载

    安装完Ubuntu 16.04后,要更换为国内的软件源: sudo gedit /etc/apt/sources.list   #用文本编辑器打开源列表 在文件开头添加下面的阿里云的软件源: deb ...

  8. causal snps | causal variants | tensorflow | 神经网络实战 | Data Simulation

    先读几篇文章: Interpretation of Association Signals and Identification of Causal Variants from Genome-wide ...

  9. English Voice of <<Bye Bye Bye>>

    Bye Bye Bye - Lovestoned When i see you, looking back at me 当我看到你回首看我时 Watching this eye still 彼此凝视 ...

  10. 20171104xlVBA各人各科进退

    Sub 各班个人各科进步幅度() Dim dRank As Object Set dRank = CreateObject("Scripting.Dictionary") Dim ...