testng 教程之使用參數的一些tricks配合使用reportng


前兩次的總結:testng annotation生命周期 http://www.cnblogs.com/tobecrazy/p/4579414.html

                    testng.xml的使用和基本配置http://www.cnblogs.com/tobecrazy/p/4582173.html

在前兩次的總結中,了解了一些testng基礎的用法,今天了解一下使用參數的trick和使用reportng生成漂亮的測試報告


Testng 傳遞參數的tricks

 

在 http://www.cnblogs.com/tobecrazy/p/4579414.html 中我們了解到testng annotation的生命周期

@BeforeSuite->@BeforeClass->@BeforeMethod......

今天又人在說,定義過的參數在testng.xml卻在case里拿不到 

在testng.xml配置參數如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="classes" thread-count="5">
    <test verbose="2" preserve-order="true" name="TestDebug">  
        <parameter name="suite" value="suiteParameter" />
        <parameter name="parameter1" value="parameter1" />
        <parameter name="parameter2" value="123" />
        <classes>
            <class name="com.dbyl.tests.passParameter" />
            <class name="com.dbyl.tests.TestngExample" />
        </classes>
    </test> <!-- Test -->
</suite> <!-- Suite -->

在測試用例中使用參數,看上去一切OK:

    /**
     * This test before suite
     * @param suite
     */
    @Parameters({"suite"})
    @BeforeSuite
    public void beforeSuite(String suite)
    {
        System.out.println("before suite is "+suite);
    }

但是 運行時卻遇到這樣的問題:

Parameter 'suite' is required by @Configuration on method beforeSuite but has not been marked @Optional or defined
in C:\Users\workspace\Demo\Parametertestng.xml

意思是,沒有定義這個parameter(不對啊,明明定義過),后來才發現,testng.xml的parameter也是和testng的annotation中一樣。若要在BeforeSuite中使用,應當在

Suite標簽下定義,當然,如果這個parameter在suite中定義了,在接下來的BeforeClass BeforeMethod和Test中都可以使用

最終配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="classes" thread-count="5">
    <parameter name="suite" value="suiteParameter" />
    <test verbose="2" preserve-order="true" name="TestDebug">  
        <parameter name="parameter1" value="parameter1" />
        <parameter name="parameter2" value="123" />
        <classes>
            <class name="com.dbyl.tests.passParameter" />
            <class name="com.dbyl.tests.TestngExample" />
        </classes>
    </test> <!-- Test -->
</suite> <!-- Suite -->

使用Reportng

ReportNG is a simple HTML reporting plug-in for the TestNG unit-testing framework. It is intended as a replacement for the default TestNG HTML report. The default report is comprehensive but is not so easy to understand at-a-glance. ReportNG provides a simple, colour-coded view of the test results.

reportng 是一個簡單的testng 的生成html格式報告插件,是為了取代testng 默認的 html report.tesng默認的report不容易理解,也不太美觀。reportng提高簡單的,多彩的測試結果的視圖.

那么問題就來了,怎么使用?

1.首先安裝testng

2.下載reportng jar包

   http://pan.baidu.com/s/1i3KdlQH

3.添加到project

build path

  注意:需要同時引入google guice

  http://pan.baidu.com/s/1pJkFezT

4.配置reportng

  •  禁用testng default listeners
  • 在define listener中添加:org.uncommons.reportng.HTMLReporter

 

 

最后run as test suite

在html目錄就能看到漂亮的report

如果咋ant里使用,需要這樣 :

    <testng  classpathref="runpath"  outputDir="test-output" 
            haltonfailure="true"
            useDefaultListeners="false"   
            listeners="org.uncommons.reportng.HTMLReporter,org.testng.reporters.FailedReporter" >  
            <xmlfileset dir="${basedir}" includes="Parametertestng.xml"/>
            <jvmarg value="-Dfile.encoding=UTF-8" />
            <sysproperty key="org.uncommons.reportng.title" value="AutoMation TestReport" /> 
        </testng>

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM