zoukankan      html  css  js  c++  java
  • TestNg测试框架使用笔记

    Gradle支持TestNG

    test {
        useTestNG(){//指定testng配置文件
            suites(file('src/test/resources/testng.xml'))}}

    Maven支持TestNG

    <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.16</version><configuration><suiteXmlFiles><suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile></suiteXmlFiles></configuration></plugin>

    查看Gradle生成测试报告

    arget eportsuildDashboardindex.html 测试结果公告页面,包括(junitXml)testng(html)的结果链接。

    配置TestNg suite

    <suitename="waptestng"><!--enabled="true"让测试生效,可根据情况开启或关闭某些测试--><testname="service"enabled="true"><!--指定参数--><parametername="accesskey"value="f0af8e412cef7e5058beeb6df2012e1e"/><!--指定测试包,注意加 .* --><packages><packagename="b2gonline.wap._systembase.service.*"/></packages><!--指定测试类--><classes><classname="test.sample.ParameterSample"/><!--过滤测试类的方法--><classname="test.IndividualMethodsTest"><methods><includename="testMethod"/></methods></class></classes><!--指定测试分组--><groups><run><!--包含--><includename="checkintest"/><!--排除--><excludename="broken"/></run></groups></test></suite>

    常用TestNg注解

    @Test(//在指定的时间内启用3个线程并发测试本方法10次
        threadPoolSize =3, invocationCount =10,  timeOut =10000,//等待测试方法t0测试结束后开始本测试
        dependsOnMethods ={"t0"},//指定测试数据源CLASS和数据源名称(参考注解@DataProvider),返回是一个数组,返回几条数据会跑测试方法几次
        dataProvider ="testUser", dataProviderClass =MockUser.class,//分组名称
        groups ={"checkin-test"})//读取配置文件中的参数,配置如上,用@Optional设置默认值@Parameters({"accesskey"})publicvoid t1(User u,@Optional("xxx")String accesskey){...}

    使用TestNg参数

    在做单元测试的时候会有一些不固定因素,TestNg支持从配置文件或数据类中提供参数配置,通过注解很方便的引入或批量生成使用。

    注解@Parameters
    从XML配置文件中读取, 如上面示例:@Parameters({ "accesskey" })

    注解@Test(dataProvider)
    如上示例:@Test(dataProvider = "testUser", dataProviderClass = MockUser.class)

    MockUser.class

    publicclassMockUser{@DataProvider(name ="testUser")publicstaticObject[][] testUser(){User u =newUser();
              u.setId("SJDK3849CKMS3849DJCK2039ZMSK0001");
              u.setName("admin-test");//测试找不到用户User u2 =newUser();
              u2.setId("");
              u2.setName("");returnnewObject[][]{{u},{u2}};}}

    使用Factories
    功能:通过Factory和参数配置动态批量生成测试方法
    示例:

    publicclassWebTestFactory{@FactorypublicObject[] createInstances(){Object[] result =newObject[10];for(int i =0; i <10; i++){
                result[i]=newWebTest(i *10);}return result;}}
    publicclassWebTest{privateint m_numberOfTimes;publicWebTest(int numberOfTimes){
            m_numberOfTimes = numberOfTimes;}@Testpublicvoid testServer(){for(int i =0; i < m_numberOfTimes; i++){// ...}}}

    然后在XML配置中指定测试类 <class name="WebTestFactory" />

    更多参考

    1. TestNg官方文档:http://testng.org/doc/documentation-main.html
    2. Gradle-Test插件配置说明:http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html
    3. TestNg和JUnit4对比:http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/
  • 相关阅读:
    集群任务管理系统SGE的简明教程
    三代全长转录组测序和组装
    quota
    基因组转座元件
    单倍体
    什么是寒武纪、志留纪、泥盆纪、白垩纪
    对组装之后的三代基因组进行polish
    使用 PhyML 构建进化树
    PAML软件中的mcmctree命令估算物种分歧时间
    OrthoMCL及orthofinder 两种软件进行聚类分析
  • 原文地址:https://www.cnblogs.com/xguo/p/3300358.html
Copyright © 2011-2022 走看看