5 - 测试方法,测试类和测试组

5.1 - 测试方法

测试方法用@Test注释。除非在testng.xml中将allow-return-values设置true,否则将忽略使用@Test注释恰好返回值的方法

1 <suite allow-return-values="true">
2  
3 or
4  
5 <test allow-return-values="true">
View Code
5.2 - 测试组

TestNG允许您执行复杂的测试方法分组。您不仅可以声明方法属于组,还可以指定包含其他组的组。然后可以调用TestNG并要求包括一组特定的组(或正则表达式),同时排除另一组。这为您分区测试提供了最大的灵活性,如果您想要连续运行两组不同的测试,则不需要重新编译任何内容。

组在testng.xml文件中指定,可以在<test><suite>标记下找到。<suite>标记中指定的组适用于下面的所有<test>标记。请注意,组在这些标记中是累积的:如果在<suite>中指定组“a”,在<test>中指定“b” ,则将包括“a”和“b”。

 

例如,至少有两类测试是很常见的

  • 办理登机手续的测试。应在提交新代码之前运行这些测试。它们通常应该很快并确保没有基本功能被破坏。
     
  • 功能测试。这些测试应涵盖您软件的所有功能,并且每天至少运行一次,尽管理想情况下您可能希望连续运行它们。

通常,签入测试是功能测试的子集。TestNG允许您以非常直观的方式使用测试组指定。例如,您可以通过说明您的整个测试类属于“functest”组来构建测试,另外还有一些方法属于“checkintest”组:

 1 public class Test1 {
 2   @Test(groups = { "functest", "checkintest" })
 3   public void testMethod1() {
 4   }
 5  
 6   @Test(groups = {"functest", "checkintest"} )
 7   public void testMethod2() {
 8   }
 9  
10   @Test(groups = { "functest" })
11   public void testMethod3() {
12   }
13 }
View Code
 1 <test name="Test1">
 2   <groups>
 3     <run>
 4       <include name="functest"/>
 5     </run>
 6   </groups>
 7   <classes>
 8     <class name="example1.Test1"/>
 9   </classes>
10 </test>
View Code
 1 @Test
 2 public class Test1 {
 3   @Test(groups = { "windows.checkintest" })
 4   public void testWindowsOnly() {
 5   }
 6  
 7   @Test(groups = {"linux.checkintest"} )
 8   public void testLinuxOnly() {
 9   }
10  
11   @Test(groups = { "windows.functest" )
12   public void testWindowsToo() {
13   }
14 }
View Code
方法组

您还可以排除或包含单个方法:

 1 <test name="Test1">
 2   <classes>
 3     <class name="example1.Test1">
 4       <methods>
 5         <include name=".*enabledTestMethod.*"/>
 6         <exclude name=".*brokenTestMethod.*"/>
 7       </methods>
 8      </class>
 9   </classes>
10 </test>
View Code

这可以派上用来停用单个方法而不必重新编译任何东西,但我不建议过多地使用这种技术,因为如果你开始重构Java代码(正则表达式中使用的正则表达式),它会使你的测试框架崩溃。标签可能不再符合您的方法)。

5.3 - 群组

组还可以包括其他组。这些组称为“MetaGroups”。例如,您可能希望定义一个包含“checkintest”和“functest”的组“all”。“functest”本身将包含“windows”和“linux”组,而“checkintest将只包含”windows“。以下是如何在属性文件中定义它:

 1 <test name="Regression1">
 2   <groups>
 3     <define name="functest">
 4       <include name="windows"/>
 5       <include name="linux"/>
 6     </define>
 7   
 8     <define name="all">
 9       <include name="functest"/>
10       <include name="checkintest"/>
11     </define>
12   
13     <run>
14       <include name="all"/>
15     </run>
16   </groups>
17   
18   <classes>
19     <class name="test.sample.Test1"/>
20   </classes>
21 </test>
View Code
5.4 - 排除组

TestNG允许您包括组以及排除它们。

例如,由于最近的更改而暂时中断测试通常很常见,而您还没有时间修复破损。4但是,您确实需要完整运行功能测试,因此需要停用这些测试,但请记住需要重新激活它们。

 

解决此问题的一种简单方法是创建一个名为“broken”的组,并使这些测试方法属于它。例如,在上面的例子中,我知道testMethod2()现在已经坏了所以我想禁用它:

1 @Test(groups = {"checkintest", "broken"} )
2 public void testMethod2() {
3 }
View Code

我现在需要做的就是从运行中排除这个组:

 1 <test name="Simple example">
 2   <groups>
 3     <run>
 4       <include name="checkintest"/>
 5       <exclude name="broken"/>
 6     </run>
 7   </groups>
 8   
 9   <classes>
10     <class name="example1.Test1"/>
11   </classes>
12 </test>
View Code

这样,我将获得一个干净的测试运行,同时跟踪哪些测试被破坏,需要稍后修复。

注意:您还可以使用@Test和@ Before / After注释上的“enabled”属性逐个禁用测试。

 

5.5 - 部分群体

您可以在类级别定义组,然后在方法级别添加组:

1 @Test(groups = { "checkin-test" })
2 public class All {
3  
4   @Test(groups = { "func-test" )
5   public void method1() { ... }
6  
7   public void method2() { ... }
8 }
View Code

在这个类中,method2()是组“checkin-test”的一部分,它在类级别定义,而method1()属于“checkin-test”和“func-test”。

 

转载于:https://www.cnblogs.com/renzaijiongtu/p/10579756.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
等价测试思想是一种软件测试方法,它将输入数据和系统行为划分为不同的等价,以便更有效地选择测试用例。等价是指一输入数据,当被测试时,有相同的预期结果。等价测试的目标是在每个等价中选择最具代表性和典型性的测试用例,以尽可能地覆盖系统的功能和错误。 主要的方法分如下: 1. 等价划分法(Equivalence Partitioning):将输入数据划分为相互等价的别,从每个等价中选择一个或多个测试用例进行测试。这种方法可以减少测试用例的数量,同时保证覆盖所有等价。 2. 边界值分析法(Boundary Value Analysis):在等价划分的基础上,重点关注边界值。边界值是指等价的起始值、结束值,以及相邻等价之间的交叉点。边界值分析方法通过选择接近边界值的测试用例,增加了对边界情况的覆盖度。 3. 错误推测法(Error Guessing):基于测试人员的经验和直觉,猜测可能存在的错误和异常情况,并设计相应的测试用例。这种方法主要依赖于测试人员的主观判断和经验。 4. 因果图法(Cause-Effect Graphing):将系统的功能和输入之间的因果关系绘制成因果图,然后根据因果图选择测试用例。这种方法可以帮助测试人员更全面地考虑系统的功能和输入之间的关系。 5. 决策表法(Decision Table Testing):将系统的决策规则绘制成决策表,根据决策表选择测试用例。这种方法适用于决策较为复杂且规则较多的系统。 以上是等价测试思想的主要方法分,可以根据具体的测试需求和系统特点选择合适的方法进行测试

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值