使用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"));
}
}
分享到:
相关推荐
3. **testNGpara.xml**:这可能是TestNG的测试配置文件,用于定义测试套件、测试组、测试方法等的执行顺序和参数。在TestNG中,XML配置文件可以用来指定测试的执行细节,如并发线程数、依赖关系、数据驱动测试等。...
8. **测试套件和测试组**:根据需求,可以将多个测试方法组织成测试套件或测试组,便于批量执行和管理。 9. **异常处理**:在测试方法中,考虑可能发生的异常情况,如网络错误、超时等,使用try-catch结构捕获并...
- **测试分组**:可以将测试方法归类到不同的组中,便于按需执行特定组的测试。 - **依赖性测试**:支持定义测试方法间的依赖关系,确保测试按正确的顺序执行。 - **并行执行**:能够在多线程或多进程环境下并行执行...
在文件名`testcase4_TestNG.mp4`中,很可能是关于如何使用TestNG执行测试用例的视频教程,可能涵盖了如何创建测试类、定义测试方法、设置测试依赖、运行测试套件等内容。观看这样的教程可以帮助理解上述知识点,并...
首先,了解TestNG的测试执行顺序是非常重要的,它能够帮助测试人员更好地组织测试代码。在TestNG中,有多种注解用于定义测试执行前后所需执行的方法,以及用于分组测试等。根据提供的文档内容,TestNG的执行顺序可...
5. 分组测试(Grouping Tests):TestNG允许开发者将测试方法分组,并可以单独运行或排除特定组的测试。这在执行大型测试套件时特别有用,能够帮助测试人员关注特定模块或功能的测试。 6. 参数化测试(Parameterized ...
`testng-dao.xml`可能包含了测试类的集合、分组策略以及并行执行设置等,提供了对测试执行的高级控制。 总结,TestNG框架的使用涉及到测试用例的设计、注解的应用、测试套件的组织以及数据库连接的管理。结合给出的...
- 分组测试是TestNG的一个独特功能,它可以将测试方法分组,便于按组执行测试。 - 可以通过`@Test(groups = {"groupName"})`注解来为测试方法指定组别。 - 通过在`testng.xml`文件中使用`<groups>`标签来指定执行...
6. **数据驱动测试**:使用“@DataProvider”注解,TestNG支持数据驱动测试,可以为同一测试方法提供多组输入数据,提高测试覆盖率。 7. **XML配置**:TestNG支持使用XML配置文件来定义测试结构,这种方式在大型...
7. **数据驱动测试**:通过@DataProvider,TestNG可以为测试方法提供多组输入数据,实现数据驱动的测试,方便进行参数化测试。 8. **配置方法**:@Before/After系列注解允许定义在测试执行前后的配置方法,如初始化...
在本案例中,Selenium录制的脚本被导出为TestNG格式,这样可以利用TestNG的强大功能进行更复杂的测试管理和执行。 4. **Webdriver**: Webdriver是Selenium的一部分,它提供了一种编程接口,用于控制浏览器并进行...
2. **测试分组**:TestNG引入了测试分组的概念,允许你将相关测试逻辑组织在一起,便于管理、运行和跳过特定组的测试。 3. **注解丰富**:除了JUnit的`@Test`,TestNG还提供了如`@BeforeMethod`、`@AfterMethod`、`...
数据文件则包含一组或多组测试数据,每组数据对应一次测试执行。 总的来说,这个框架结合了Maven的项目管理、Selenium的Web自动化、TestNG的高级测试功能和数据驱动测试的理念,构建了一个强大且灵活的自动化测试...
8. **分组测试**:利用`@Test(groups = {...})`进行测试分组,便于按需执行特定组的测试。 9. **测试监听器**:介绍`ITestListener`接口,自定义测试监听器以实现额外的日志记录、自定义报告等功能。 10. **测试参数...
此外,TestNG还支持测试组的定义,使得测试人员可以控制哪些测试方法被包含或排除在特定的测试运行中。它还支持参数化测试,允许测试人员为测试方法传递参数,这样就可以用不同的参数多次执行同一个测试。 在环境...
TestNG是一个强大的测试框架,它扩展了JUnit的功能,提供了更灵活的测试配置,如并发测试、更丰富的注解、更详尽的测试报告等。首先,你需要在你的项目中引入TestNG的依赖。在Maven项目中,可以在pom.xml文件中添加...
8. **测试分组**:通过@Groups注解,我们可以将测试方法分为不同的组,便于按需执行或跳过某些组的测试。 9. **监听器(Listeners)**:TestNG支持自定义监听器,可以监听测试的各个阶段,如测试开始、结束、失败等...
**Dagger-TestNG自动化测试工程包**是一个集成了Dagger依赖注入框架和TestNG测试框架的项目,专为执行Selenium自动化测试而设计。这个工程包简化了测试类的编写,提供了对多种浏览器的支持,使得测试代码更加简洁、...
- **@BeforeGroups** 和 **@AfterGroups**:在一组测试开始前和结束后执行。 - **@BeforeClass** 和 **@AfterClass**:分别在测试类开始前和结束后执行。 - **@BeforeMethod** 和 **@AfterMethod**:在每个测试方法...