zoukankan      html  css  js  c++  java
  • 市面上测试框架这么多,为什么我2020选的是testng

    @Parameters使用方式

    测试方法不必是无参数的。您可以在每种测试方法上使用任意数量的参数,并指示TestNG使用@Parameters注解向您传递正确的参数。


     

    在此代码中,我们指定Java方法的参数firstName接收first-name的XML参数的值。此XML参数在testng.xml中定义:


     

    也可以用在@Before/Afterand @Factory之上


     

    可以使用@Optional指定参数默认值


     

    如果在testng.xml中找不到"db"参数,将使用mysql作用参数值。

    @DataProvider使用方式

    如果我们需要传递复杂的参数,或者需要通过Java创建的参数(复杂对象,从属性文件或数据库读取的对象等),则在testng.xml中指定参数可能不够。

    在这种情况下,您可以使用数据提供程序来提供需要测试的值。数据提供程序是类上的一种方法,它返回对象数组的数组。

    此方法用@DataProvider注解:


     

    默认情况下,dataProvider在同一个类中通过name查找方法,如果想在其他类中查找数据支持者,必须dataProviderClass指定,同时必须使用static修饰,如下:


     

    dataProvider支持的返回值类型:


     

     

    可以在DataProvider方法上声明一个java.lang.reflect.Method参数用来输出test方法名称,当多个test方法使用同一个DataProvider时非常有用:


     

    从属性默认情况下,线程池的大小为10。 我们可以在XML文件的标记中修改此值:


     

    依赖

    有时,您需要按特定顺序调用测试方法。我们可以使用@Test批注中的属性dependsOnMethods或dependsOnGroups。 有两种依赖关系:

    硬依赖: 所依赖的所有方法都必须已经运行并成功运行。 如果依赖项中至少发生了一次故障,则不会在报告中调用并将其标记为SKIP。

    软依赖:即使其中一些方法失败了,也将始终在所依赖的方法之后运行。通过在@Test批注中添加“alwaysRun = true”来获得软依赖性。

    硬依赖:


     

    此案例,serverStartedOk先执行,method1再执行。 我们还可以使用依赖组:


     

    init.*使用的是正则表达式,所以method1在serverStartedOk和initEnvironment之后执行。

    领取100G测试资料

    让软件测试学习变得更简单!

    需要TestNG学习视频

    请在留言区留言,获取私信我喔

  • 相关阅读:
    C++输入输出缓冲区的刷新问题
    C++11中新特性之:initializer_list详解
    GCC --verbose选项, -lpthread 和-pthread的区别
    C语言的可变参数
    YCM的安装与配置
    【机器学习】正则化的线性回归 —— 岭回归与Lasso回归
    一文读懂线性回归、岭回归和Lasso回归
    美团酒旅数据治理实践
    kettle完成一个数据库到另一个数据的整体迁移
    kettle完成一个数据库到另一个数据的整体迁移
  • 原文地址:https://www.cnblogs.com/nmb123/p/12331215.html
Copyright © 2011-2022 走看看