Testng优势
选择Testng的理由:
1.可指定执行顺序, dependsOnMethods 属性来应对测试的依赖性问题。
2.·参数化1:轻轻松松从XML中得到参数
@BeforeClass
public void startTest(ITestContext context) {
this.testContext = context;
String browserName = context.getCurrentXmlTest().getParameter("browserName");
driver = new SeleniumUtils();
timeOut = Integer.parseInt(context.getCurrentXmlTest().getParameter("timeOut"));
sleepTime = Integer.valueOf(context.getCurrentXmlTest().getParameter("sleepTime"));
waitMillisecondsForAlert = Integer
.valueOf(context.getCurrentXmlTest().getParameter("waitMillisecondsForAlert"));
webUrl = context.getCurrentXmlTest().getParameter("testurl");
driver.openBrowser(browserName, webUrl, timeOut); }
<suite name="Suite" parallel="none">
<parameter name="browserName" value="chrome" />
<parameter name="testurl" value="http://*********8080/****" />
<parameter name="sleepTime" value="800" />
<!-- 页面元素10秒不出现超时时间 -->
<parameter name="timeOut" value="20" />
<!-- 这个是等待alert弹出的时间 单位毫秒 -->
<parameter name="waitMillisecondsForAlert" value="40000" />
3.参数化二:@DataProvider,封装Excel、xml、JSON
封装数据:
/**
* 测试数据提供者 - 方法
*/
@DataProvider(name = "testData")
public Iterator<Object[]> dataFortestMethod() throws IOException {
String moduleName = null; // 模块的名字
String caseNum = null; // 用例编号
String className = this.getClass().getName();
int dotIndexNum = className.indexOf("."); // 取得第一个.的index
int underlineIndexNum = className.indexOf("_"); // 取得第一个_的index if (dotIndexNum > 0) {
String packagename = className.substring(0, className.lastIndexOf("."));// 得到整个包名
moduleName = packagename.substring(packagename.lastIndexOf(".") + 1);
; // 取到模块的名称
} if (underlineIndexNum > 0) {
String caseName = className.substring(className.lastIndexOf(".") + 1);// 得到类名
caseNum = caseName.substring(caseName.indexOf("_") + 1, caseName.indexOf("_") + 4); // 取到用例编号
}
// 将模块名称和用例的编号传给 ExcelDataProvider ,然后进行读取excel数据
return new ExcelDataProvider(moduleName, caseNum);
}
引用:
@Test(dataProvider = "testData")
public void login(Map<String, String> data) {
LoginPage.login(data.get("USERNAME"), data.get("PASSWORD"),
data.get("CODE"));
LoginPage.checkUserName(data.get("EXP_RESULT"));
}
4.测试报告(虽然自带的报告很丑,但可以经过二次开发,还是挺漂亮的,哈哈)

Testng优势的更多相关文章
- testNg vs junit 4.X @Test
http://www.ibm.com/developerworks/cn/java/j-cq08296/ 一个简单的测试用例 初看起来,JUnit 4 和 TestNG 中实现的测试非常相似.为了更好 ...
- 持续集成:TestNG组织如何测试用例
持续集成:TestNG组织如何测试用例 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90 ...
- RoportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法
最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到RoportNG报表显示中文乱码和TestNG显 ...
- TestNG并行测试
并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力.TestNG允许我们以并行(多线程)的方式来执行测试.这就意味着基于TestNG测试组 ...
- TestNG的简单使用
TestNG的简单使用 TestNG(Test Next Generation)是一个测试框架,其灵感来自JUnit和NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便. TestNG是 ...
- ReportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法
最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到ReportNG报表显示中文乱码和TestNG显 ...
- TestNG简单介绍以及安装—学习笔记1
TestNG是什么 到这里,大家肯定已经运行了一些关于Selenium的测试用例了(这里主要是站着一个自动化测试工程师的角度来看待TestNG的,所以这里所说的也都是基于Web测试的验证点来说的,而不 ...
- testng入门教程12 TestNG执行多线程测试
testng入门教程 TestNG执行多线程测试 testng入门教程 TestNG执行多线程测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者 ...
- TestNG入门到...
目录 一.概述 二.@Test注解常用参数 三.测试中常用的断言(assert) 四.TestNG常用注解及使用 五.配置文件xml常用标签 六.参数传递 七.测试报告 一.概述 1.TestNG是一 ...
随机推荐
- 23TCP通信
.pro 文件中加入:QT+=network 在Qt中实现TCP/IP服务器端通信的流程: 1.创建监听套接字,QTcpServer 2.将监听套接字设置为监听模式, listen 3.等待并接受客户 ...
- Wannafly挑战赛28 Solution
A:msc和mas Solved. 考虑斐波那契数列,即最多加45次即会超过1e9,直接暴力即可 #include <bits/stdc++.h> using namespace std; ...
- react headtop title 截取
render() { const nav = this.props.nav const text = nav && nav.length > 5 ? this.strHandle ...
- c++第二十五天
p129~p131: 1.赋值运算的左侧运算对象必须是一个可修改的左值. 2.赋值运算满足右结合律. 3.赋值运算的结果是它的左侧对象,并且是一个左值. 验证: #include<iostrea ...
- Linux内核参数之arp_ignore和arp_announce
一.arp_ignore和arp_announce介绍 arp_ignore和arp_announce参数都和ARP协议相关,主要用于控制系统返回arp响应和发送arp请求时的动作.这两个参数很重要, ...
- 20145326《Java程序设计》第二周学习总结
20145326<Java程序设计>第二周学习总结 教材学习内容总结 本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对 ...
- ESP8266调试笔记
ESP8266 新款版本使用用简要: 此版本若想从FLASH启动进入AT系统,只需中间四个脚接VCC高电平即可,其中GPIO0为高电平代表从FLASH启动,GPIO0为低电平代表进入系统升级状态,此时 ...
- Egret引擎开发基础(一)
显示图片 var batman:egret.Bitmap = new egret.Bitmap( RES.getRes('hexo-huaheshang_png')); batman.x = 0; b ...
- POJ 1840 Eqs(乱搞)题解
思路:这题好像以前有类似的讲过,我们把等式移一下,变成 -(a1*x1^3 + a2*x2^3)== a3*x3^3 + a4*x4^3 + a5*x5^3,那么我们只要先预处理求出左边的答案,然后再 ...
- 解决Github Desktop Repo publish 失败问题
参考: src refspec master does not match any when pushing commits in git Github上传项目步骤和常见问题 Trying to gi ...