TestNg用例管理
2024-10-20 06:44:18
一、TestNg的数据驱动
1. 数据驱动
1)什么是数据驱动?
·数据驱动是指在一个脚本固定的情况下,用数据来控制该脚本是否运行,以及运行的次数,还有每次运行时对应的参数
2)数据驱动的应用场景:
·比如我们在测试登录时,要测试用不同的账户登录,难道我们需要针对每一个账户去写一个脚本吗?这样显然是不明智的,于是,testng为我们提供了这个注脚,让我们只需要提供出数据,就可以控制脚本运行次数及相应的参数。
2. TestNg数据驱动(数据源)
1)实现方式:
·用注脚: @DataProvider
2)示例:
第一种实现方式:不指定name
运行结果:
第二种方式:指定name
运行结果:
二、TestNg用XML运行
TestNg的几种运行方式:
1. 以method为基点
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" verbose="1" parallel="false" thread-count="1">
<test name="test1">
<classes>
<class name="com.test.ng1.test1">
<methods>
<include name="test2"/>
<include name="test1"/>
</methods>
</class>
</classes>
</test>
</suite>
运行结果:
2. 以class为基点
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" verbose="1" parallel="false" thread-count="1">
<test name="test1">
<classes>
<class name="com.test.ng1.test1">
</class>
</classes>
</test>
</suite>
运行结果:
3. 以package为基点
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" verbose="1" parallel="false" thread-count="1">
<test name="test1">
<packages>
<package name="com.test.ng1"/>
</packages>
</test>
</suite>
三、TestNg用例管理
1. 用例管理原则——用例独立少依赖
package com.test.ng1;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
public class test1 {
//无名的数据驱动,调用可以使用方法名
@DataProvider
public Object[][] logindata(){
return new Object[][]{{"a"},{"b"}};
}
//因为数据驱动没有名字,搜易可以写方法名
@Test(dataProvider="logindata")
public void test1(String info){
System.out.println(info);
}
//为数据驱动定义名字
@DataProvider(name="longoutdata")
public Object[][] logoutDataInfo(){
return new Object[][]{{"1"},{"2"}};
}
//指定数据驱动的名字,而非方法名
@Test(dataProvider="longoutdata")
public void test2(String info){
System.out.println(info);
}
@BeforeClass
public void bClass(){
System.out.println("BeforeClass");
}
@AfterClass
public void aClass(){
System.out.println("AfterClass");
}
@BeforeMethod
public void setUp(){
System.out.println("beforemethod,setUp");
}
@AfterMethod
public void tearDown(){
System.out.println("aftermethod,tearDown");
}
}
————————————————
版权声明:本文为CSDN博主「jffhy2017」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jffhy2017/article/details/60972253
最新文章
- EF框架的三种工作方式
- EXCEL 图表 只在拐点的时候显示数字
- asp.net面试题汇总
- ubuntu 14.04 难用的vi
- WPF拖到、移动控件
- 【Unity3D实战】摇摆直升机开发实战(一)
- error at ::0 can&#39;t find referenced pointcut performance
- 基于visual Studio2013解决C语言竞赛题之0708字符串查找
- 实时控制软件第一周 汽车ABS系统软件分析
- 性能调优案例分享:jvm crash的原因 1
- 简谈java 中的 继承和多态
- expdp导出文件,ORA-01555: 快照过旧: 回退段号 716
- Markdown学习示例
- Elasticsearch(单节点)
- leetcode141
- js-ES6学习笔记-const命令
- C程序设计教学小结(选择结构)
- telnet的装配及xinetd的讨论
- UiAutomator 代码记录 : 遍历桌面
- manager
热门文章
- linux部署go
- Linux内核文档翻译——kobject.txt
- SQL join 三种扩展用法
- [转帖]How long does it take to make a context switch?
- vue nexttick的理解和使用场景
- linux启动tomcat很久或者很慢Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法
- 用lambda表达式写左联查询的示例
- 冒泡排序法vs快速排序法
- gitblit服务器:用户、团队、权限管理
- Apache配置WebSocket代理