使用testng.xml文件运行指定的组执行测试时,必须把beforeclass,beforeMethod,aftermethod等需要初始化的方法设置为alwaysRun,因为使用.xml文件运行测试指定组的测试时,不会自动运行这些不在组内的初始化方法,就会出现没有初始化执行测试所需要的初始条件而导致测试失败的问题,如果没有指定特定的组,那么使用testng.xml执行测试就没问题,不需要设定那些初始化方法为alwaysRun=true,如下testng执行文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="mysuite">
<test name="mytest">
<groups>
<run>
<include name="test2"/>
</run>
</groups>
<classes>
<class name="Test.Pay_submit_Test"/>
<class name="Test.Userinfo_getUserExpireDate_Test" />
<class name="Test.Userinfo_getUserInfo_Test" />
</classes>
</test>
</suite>
如下测试代码,必须把因为测试方法均需要先执行初始化方法init、clear,如果直接在Eclipse编辑代码窗口邮件运行testng测试,不需要把这两个方法设置为alwaysRun,但是如果使用testng.xml文件来运行这个类中指定的groups来执行测试,必须把init和clear方法设置为alwaysRun=true:
package Test;
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import CommonLib.DBMap;
import CommonLib.DateUtil;
import CommonLib.HttpClientUtil;
import CommonLib.JDBCUtils;
import CommonLib.StringUtils;
public class Pay_submit_Test{
@BeforeClass(alwaysRun=true)
public void init() {
// 清理缓存
String url = clearCacheUrl + uid;
HttpClientUtil.requestUrl(url);
}
@AfterMethod(alwaysRun=true)
public void clear() {
// 清理缓存
String url = clearCacheUrl + uid;
HttpClientUtil.requestUrl(url);
}
@DataProvider(name = "common_user_testdata")
public Object[][] common_user_testdata() {
return new Object[][] {
{1,2000,""},{3,4500,""},{12,15000,""},{13,16500,""},{24,30000,""}
};
}
@Test(priority = 1, dataProvider = "common_user_testdata",groups={"test1"})
public void commonUserSubmitOrder(int month, int needAmount, String handler) {
Assert.assertEquals(31 * month, map.getInt("adddays", -1));
Assert.assertEquals(needAmount, map.getInt("needamount", -1));
Assert.assertEquals(handler, map.getString("handler"));
}
@DataProvider(name="midpay_data")
public Object[][] midpay(){
return new Object[][]{
{1,2000,"PaySuccess=judge_1&"},{3,4500,""},{12,15000,""}
};
}
@Test(priority=3,dataProvider="midpay_data",groups={"test2"})
public void midPay(int month,int needAmount,String handler){
String url="testurl";
String sql="testsql";
DBMap<String, Object> map=JDBCUtils.queryForMap(database, sql, uid);
Assert.assertEquals(31*month, map.getInt("adddays", -100));
Assert.assertEquals(needAmount, map.getInt("needamount", -100));
Assert.assertEquals(handler, map.getString("handler"));
}
}
分享到:
相关推荐
测试框架-如何使用TestNG批注和其他属性来控制代码执行流程 使用测试注释运行基本的TestNG测试 Testng Xml文件配置及其重要性 使用TestNG优先考虑测试用例 包含和排除机制来控制测试用例 使用正则表达式在包级别...
1.3 定义测试组 1.4 生命周期 1.5 在testng中使用jtester 2 断言的使用 2.1 所有对象都支持的断言 2.2 number和string对象支持的断言 2.3 array和collection对象支持的断言 2.4 string对象支持的断言 2.5 map对象...
一、单元测试框架说明 单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作。python+selenium自动化测试中通常使用...(2) test suite(测试套件):一个测试套件是一组测试用
Tempto-测试框架 该项目允许开发人员为在Hadoop上运行SQL数据库编写和执行测试。 各个测试要求,例如数据生成,HDFS文件复制/存储生成的数据以及架构创建,都以声明方式表示,并由框架自动满足。 开发人员可以使用...
赛琳在Java中启用测试自动化SeLion建立在TestNG和Selenium的基础上,提供了一组功能,可让您在短时间内使用WebDriver并开始运行。 它可以用于测试Web和移动应用程序。 您可以添加为Maven依赖项的客户端模块。 基于...
jettison.jar --组装解析Json ojdbc7.jar --数据库操作 reportng-1.1.4.jar -- testng测试报告美化插件 velocity-dep-1.4.jar -- reportng-1.1.4.jar的依赖库 guice-4.0.jar -- reportng-1.1.4.jar的依赖库
一组常用的测试工具,以促进更好的测试编写体验。 引入轻量级自动化引擎。 引入增强的自动化上下文 API。 能够集成第三方产品和平台。 基于原生 xpath 的 xml 解析实现。 引入单个配置文件来管理所有配置。 通过可...
最新测试执行报告 :bar_chart: : : 使用SHAFT_Engine的示例项目 :airplane_selector: : : SHAFT_ENGINE是: 测试自动化引擎。 源代码控制的Java 15 Maven项目,可以通过常规功能轻松,定期地进行扩展和增强。...
CurrencyAutomationTask: 为编写验收测试验收标准是测试多种转换率测试应迭代5组样本数据。 示例迭代:o测试的输入应从欧元到英镑。 o在后续页面上验证结果。 可以使用Java或您选择的任何JVM语言或您选择的...
目前为止,java语言存在两种测试框架:JUnit,testNG 怎样在多窗口中运行程序 (1)启动selenium-server时,输入以下的命令:java -jar selenium-server.jar -multiwindow。则会在两个窗口中显示运行结果 (2)...