选择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优势的更多相关文章

  1. testNg vs junit 4.X @Test

    http://www.ibm.com/developerworks/cn/java/j-cq08296/ 一个简单的测试用例 初看起来,JUnit 4 和 TestNG 中实现的测试非常相似.为了更好 ...

  2. 持续集成:TestNG组织如何测试用例

    持续集成:TestNG组织如何测试用例   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90 ...

  3. RoportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法

    最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到RoportNG报表显示中文乱码和TestNG显 ...

  4. TestNG并行测试

    并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力.TestNG允许我们以并行(多线程)的方式来执行测试.这就意味着基于TestNG测试组 ...

  5. TestNG的简单使用

    TestNG的简单使用 TestNG(Test Next Generation)是一个测试框架,其灵感来自JUnit和NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便. TestNG是 ...

  6. ReportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法

    最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到ReportNG报表显示中文乱码和TestNG显 ...

  7. TestNG简单介绍以及安装—学习笔记1

    TestNG是什么 到这里,大家肯定已经运行了一些关于Selenium的测试用例了(这里主要是站着一个自动化测试工程师的角度来看待TestNG的,所以这里所说的也都是基于Web测试的验证点来说的,而不 ...

  8. testng入门教程12 TestNG执行多线程测试

    testng入门教程 TestNG执行多线程测试 testng入门教程 TestNG执行多线程测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者 ...

  9. TestNG入门到...

    目录 一.概述 二.@Test注解常用参数 三.测试中常用的断言(assert) 四.TestNG常用注解及使用 五.配置文件xml常用标签 六.参数传递 七.测试报告 一.概述 1.TestNG是一 ...

随机推荐

  1. Entity Framework 并发处理(转)

    什么是并发? 并发分悲观并发和乐观并发. 悲观并发:比如有两个用户A,B,同时登录系统修改一个文档,如果A先进入修改,则系统会把该文档锁住,B就没办法打开了,只有等A修改完,完全退出的时候B才能进入修 ...

  2. sysctl.conf文件详解

    本文转自:http://www.cnblogs.com/Rosanna/p/3446557.html 使文件立刻生效命令:/sbin/sysctl -p /proc/sys目录下存放着大多数内核参数, ...

  3. RC1意思

    软件各种版本的表示 alpha 内部测试版 beta 外部测试版 demo 演示版 Enhance 增强版或者加强版 属于正式版 Free 自由版 Full version 完全版 属于正式版 sha ...

  4. Java传统下载和SpringMVC下载

    /** * 传统下载 * @param filename 文件名称 */ @RequestMapping(value="download", method={RequestMeth ...

  5. 将vi打造成IDE

    一.环境 发行版:Ubuntu 18.04 LTS 代号:bionic 内核版本:4.15.0-33-generic 二.步骤 2.1 准备工作 sudo apt-get install python ...

  6. Stub学习

    RPC RPC(Remote Procedure Call)就是某台主机A(一般为client)像调用本地的过程一样去调用另一台主机B(一般为server)上的某个过程.RPC代码可能长成这个样子: ...

  7. ssh 指定ssh端口号

    ssh -p higgs@192.168.43.1

  8. 解决xshell乱码问题

    如下图,xshell在执行命令时显示乱码 解决办法: 文件—属性—终端,将编码改成Unicode即可 参考文章 https://blog.csdn.net/yueloveme/article/deta ...

  9. 自定义jQuery的animate动画

    //擦除效果 jQuery.extend(jQuery.easing, { easeOutBack : function(x, t, b, c, d, s) { s = s || 1.3; retur ...

  10. @ModelAttribute运用详解(二十一)

    @ModelAttribute使用详解 1.@ModelAttribute注释方法     例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法 ...