TestNG扩展

发表于:2018-6-20 15:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:米朵    来源:博客园

分享:
  xml 文件如下:
  <suite name="testng" verbose="1" thread-count="2">
  <parameter name="first-name" value="cedric" />
  <test name="Regression 1">
  <group>
  <run>
  <exclude name="excludeThisGroup"/>
  </run>
  </group>
  <classes>
  <class name="test.parameter.test1" />
  <class name="test.parameter.test2" />
  </classes>
  </test>
  </suite>
  XmlSuite的值:
   
  XmlTest的值:
  
  1.3 生成xml文件
  XmlSuite suite = new XmlSuite();
  suite.setName("TestNG");
  suite.setVerbose(1);
  suite.setThreadCount(2);
  Map<String, String> parameters = new HashMap<String, String>();
  parameters.put("first-name", "credic");
  suite.setParameters(parameters);
  XmlTest test = new XmlTest(suite);
  test.setName("regression1");
  test.setExcludedGroups(Arrays.asList(new String[]{"excludedGroup"}));
  XmlClass[] classes = new XmlClass[]{
  new XmlClass("test.parameters.test1"),
  new XmlClass("test.parameters.test1"),
  };
  test.setXmlClasses(Arrays.asList(classes);
  TestNG tng = new TestNG();
  //指定xml路径方式
  tng.setTestSuites(Arrays.asList(new String[]{
  "testng.xml","test-15/testng.xml"}))
  //使用当前生成的文件
  tng.setXmlSuites(Arrays.asList(new XmlSuite[]{ suite }));
  tng.run();
  2. 方法选择器:
  Testng通过方法选择器(IMethodSelector)来决定在执行测试时,包含或排除哪些方法。
  TestNG的默认方法选择器:XmlMethodSelector,它会根据testng.xml中的内容来实现决定逻辑,它的优先级为10.
  如果希望你自己的选择器先调用,则可以把优先级设为0~9.
  如果先考虑testng.xml, 则把优先级设置为大于10.
  如果希望自己的方法选择器替换所有默认的方法,将优先级设置为负数。在这种情况下只有带负数优先级的方法选择器会生效。
  方法选择器直接是OR的关系:即一个方法选择器对某个测试方法返回true,则这个测试方法就会包含在这次执行中,否则,具有下一个优先级的方法选择器会被调用(0排在10前面)。如果没有方法选择器则返回true,这个测试方法不会执行。
  3 annotation转换器(annotationTransformer)
  用户实现annotation转换器,是为了覆盖TestNG在运行时看到的annotation。
  public void InvocationTransform implements IAnnotationTransformer{
  public void transform(ITest test, class cls, Constructor con, Method method){
  if("two".equals(method.getName()){
  test.setInvocationCount(2);
  }else if("three".equals(method.getName()){
  test.setInvocationCount(3);
  }
  }
  }
  其他用法:
  timeout:修改测试方法的超时设置;
  enabled:修改 @Test annotation上的enabled标识。
  invocationCount:用于多线程环境或负载测试。
  threadPoolSize:annotation可以查询本地信息(处理器个数,可用堆大小或计算机负载),然后增加或减少线程池的大小。
  successPercentage:和invocationCount一起使用,允许一定的失败比例。
  dataprovider:在运行时修改数据提供者的名称。用于数据提供者本身执行动态判断。
  description:用于HTML报告生成。
  group:可以进行基于环境的变量分组调整。
  dependsOnGroups/dependsOnMethod/alwaysRun:这些属性会直接影响执行顺序,请尽量避免使用annotation转换器来修改他们。
  4. 报告api
  4.1 默认报告:
  默认报告生成在./test-output目录下
  4.2 报告api
  利用org.testng.Reporter类,向默认报告添加定制信息。
  ITestListener 是一个实现了org.testng.ITestListener接口的类,其中的onStart()和onFinish() 分别在testSuite开始和结束时被调用。onTest*开头的方法在测试方法被执行时调用。
  IReporter 实现了org.testng.IReporter接口

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号