(二)用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>
(二)用testng的groups管理用例的更多相关文章
- 【用例管理】用testng的groups管理用例
一.需求: 测试时经常有两种场景,第一种是冒烟测试的小部分用例:一类是全部用例. 二.针对第一种运行部分的用例,可以用groups来管理 package com.testcases; import o ...
- APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例
前言 继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告.下一篇为HTTP接口实战(国家气象局接口自动 ...
- Linux学习之CentOS(二十六)--Linux磁盘管理:LVM逻辑卷的创建及使用
在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理, ...
- SNF开发平台WinForm之二-开发-单表表单管理页面-SNF快速开发平台3.3-Spring.Net.Framework
2.1运行效果: 2.2开发实现: 2.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http: ...
- [转帖]十二 个经典 Linux 进程管理命令介绍
https://www.cnblogs.com/swordxia/p/4550825.html 接了 http referer 头 没法显示图片 可以去原始blog 里面去查看. 随笔- 109 ...
- Spring学习(二)Spring的bean管理(XML)
Bean的实例化方式 1.在Spring里面通过配置文件创建对象 2.bean实例化的三种方式第一种:使用类的无参数构造函数创建(最常用的方式,第2种和第3种方法一般不用) 如果类里面没有无参的构造函 ...
- TestNG系列(二)TestNG注解
前言 TetsNG提供了很多注解,允许测试人员灵活地组织测试用例 一.@Test @Tets是TestNG的核心注解,被注解的方法,表示为一个测试方法. description属性 @Test(des ...
- 池化技术(二)HikariCP是如何管理数据库连接的?
基于依赖程序的版本信息:HikariCP:3.3.1 驱动程序mysql-connector-java:8.0.17 上一篇:Druid是如何管理数据库连接的 零.类图和流 ...
- Spring整合Hibernate 二 - 声明式的事务管理
Spring大战Hibernate之声明式的事务管理 Spring配置文件: 添加事务管理类的bean: <bean id="txManager" class="o ...
随机推荐
- 【python数据可视化】之plotly
安装plotly pip install -i https://pypi.tuna.tsinghua.edu.cn/simple plotly 验证plotly版本 import plotly plo ...
- MyBatis——com.mysql.cj.exceptions.InvalidConnectionAttributeException
报错信息 Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.c ...
- linux 权限笔记
权限模型 linux权限模型,指的是对文件.文件夹同的读写权限,同用户之间的权限管理模型 三种角色 user 文件.文件夹的创建者,所有人 group 一个group对应多个user,user自动具有 ...
- MySQL8多实例安装与mycat连接,最详细版本。
[版权所有,转载请注明出处!违者必究!] 最近在搞mycat去实现主从库读写分离,所以博主就在自己的windows机器上进行了环境的搭建,在搭建MySQL多实例的时候还算顺利,就是mysql8和myc ...
- SpringBoot外部化配置使用Plus版
本文如有任何纰漏.错误,请不吝指正! PS: 之前写过一篇关于SpringBoo中使用配置文件的一些姿势,不过嘛,有句话(我)说的好:曾见小桥流水,未睹观音坐莲!所以再写一篇增强版,以便记录. 序言 ...
- eatwhatApp开发实战(十三)
这次内容,我们就项目中添加商店名称的EditText进行修改,让添加按钮随着edittext的内容而改变. 上代码,首先是xml文件上对两个控件的修改: <RelativeLayout andr ...
- SD.Team团队人物形象
AC Mount Zergling Horse Preacher Alpha 注:无排名,仅按搞出来的时间先后排列.SD.Team犯罪团伙!!!!!!!! 本站文章为宝宝巴士 ...
- Chisel3 - util - LockingArbiter
https://mp.weixin.qq.com/s/5oAwH3scumARzPidRBfG2w 带锁多入单出仲裁器,输出会被锁定指定的时钟周期. 参考链接: https://githu ...
- Java实现 LeetCode 383 赎金信
383. 赎金信 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成.如果可以构成,返回 t ...
- Java实现 蓝桥杯VIP 算法训练 P0504
算法训练 P0504 时间限制:1.0s 内存限制:256.0MB Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,Uncl ...