小白學(xué)TestNG筆記 1——簡(jiǎn)單使用Testng

TestNG是一個(gè)強(qiáng)大的測(cè)試框架屯曹,這篇文章主要簡(jiǎn)單說(shuō)明一下使用TestNG并生成一個(gè)簡(jiǎn)單報(bào)告

SureFire插件

開(kāi)始之前拧抖,我們先Maven介紹SureFIre插件(如果你還不了解Maven穿挨,請(qǐng)查看之前寫的文章小白學(xué)Maven筆記 1——快速開(kāi)始荠卷,這個(gè)插件使用來(lái)在test階段來(lái)實(shí)行單元測(cè)試的豪筝,我們主要用它來(lái)生成報(bào)告愚墓。他可以生成兩種格式的報(bào)告

  • *.txt
  • .xml (默認(rèn)會(huì)生成類似于${basedir}/target/surefire-reports/Test-.xml的文件)

1.首先我們?cè)趐om.xml文件添加surefire插件和加入testNG框架的依賴

<dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.8</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.20</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

2.在src/main/java下面創(chuàng)建demo類

package com.moke;

/**
 * Created by moke on 2017/4/21.
 */
public class demo {

    public String returnString() {
        return "test";
    }
}

3.在src/test/java下面創(chuàng)建測(cè)試類demoTest(這里要以Test結(jié)尾,默認(rèn)只會(huì)識(shí)別Test結(jié)尾的文件些楣,但是可以根據(jù)自己需要指定脂凶,這里就不多說(shuō)了)

package com.moke.test;

import com.moke.demo;
import org.testng.Assert;
import org.testng.annotations.Test;

/**
 * Created by moke on 2017/4/21.
 */
public class demoTest {

    @Test
    public void testReturnString() {//這里檢驗(yàn)了是否返回test字符串
        Assert.assertEquals("test", new demo().returnString());
    }
}

4.命令行下執(zhí)行mvn test,這里可以看到執(zhí)行成功了一個(gè)測(cè)試

[INFO] Running com.moke.test.demoTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.37 s - in com.moke.test.demoTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.395 s
[INFO] Finished at: 2017-04-22T23:16:26+08:00
[INFO] Final Memory: 21M/300M
[INFO] ------------------------------------------------------------------------

同時(shí)生成的target目錄下面我們也能看到surefire-reports目錄愁茁,這里有surefire插件生成的報(bào)告

屏幕快照 2017-04-22 23.23.01.png
屏幕快照 2017-04-22 23.31.39.png

到目前為止你已經(jīng)使用TestNG完成了一個(gè)簡(jiǎn)單的測(cè)試并且生成了一份報(bào)告蚕钦,接下來(lái)我們具體講解一下TestNG框架

生命周期

我們?cè)趕rc/test/java目錄下面創(chuàng)建另外一個(gè)文件吧

package com.moke.test;

import org.testng.Assert;
import org.testng.annotations.*;

/**
 * Created by moke on 2017/4/20.
 */
public class TestLifeCircle {

    @BeforeSuite
    public void beforSuite() {
        System.out.println("我是beforesuit在整個(gè)suit之前只會(huì)運(yùn)行一次");
    }

    @AfterSuite
    public void afterSuit() {
        System.out.println("我是aftersuit在整個(gè)suit之后只會(huì)運(yùn)行一次");
    }

    @BeforeTest
    public void beforeTest() {
        System.out.println("我是beforeTest,在所有<test>標(biāo)簽中類的所有方法運(yùn)行之前運(yùn)行一次");
    }

    @AfterTest
    public void afterTest() {
        System.out.println("我是afterTest,,在所有<test>標(biāo)簽中類的所有方法運(yùn)行之后運(yùn)行一次");
    }

    @BeforeClass
    public void beforeClass() {
        System.out.println("我是beforeCLass,在當(dāng)前class中第一個(gè)方法運(yùn)行前運(yùn)行一次");
    }

    @AfterClass
    public void afterClass() {
        System.out.println("我是afterCLass鹅很,在當(dāng)前class中所有方法運(yùn)行后運(yùn)行一次");
    }

    @BeforeMethod
    public void beforeMethod() {
        System.out.println("我是beforemethod,在每個(gè)測(cè)試方法前運(yùn)行一次");
    }

    @AfterMethod
    public void afterMethod() {
        System.out.println("我是aftermethod,在每個(gè)測(cè)試方法后運(yùn)行一次");
    }

    @Test
    public void testEmailGenerator() {
        System.out.println("testEmailGenerator");
    }

    @Test
    public void testStringGenerator() {
        System.out.println("testStringGenerator");
    }
}

看到這里嘶居,熟悉Junit的朋友應(yīng)該已經(jīng)知道什么情況了吧,我們運(yùn)行一下可以看到類似下面的輸出

我是beforesuit在整個(gè)suit之前只會(huì)運(yùn)行一次
我是beforeTest,在所有<test>標(biāo)簽中類的所有方法運(yùn)行之前運(yùn)行一次
我是beforeCLass促煮,在當(dāng)前class中第一個(gè)方法運(yùn)行前運(yùn)行一次
我是beforemethod,在每個(gè)測(cè)試方法前運(yùn)行一次
testEmailGenerator
我是aftermethod,在每個(gè)測(cè)試方法后運(yùn)行一次
我是beforemethod,在每個(gè)測(cè)試方法前運(yùn)行一次
testStringGenerator
我是aftermethod,在每個(gè)測(cè)試方法后運(yùn)行一次
我是afterCLass邮屁,在當(dāng)前class中所有方法運(yùn)行后運(yùn)行一次
我是afterTest,,在所有<test>標(biāo)簽中類的所有方法運(yùn)行之后運(yùn)行一次
我是aftersuit在整個(gè)suit之后只會(huì)運(yùn)行一次

剛剛發(fā)生了什么整袁?TestNG使用Annotation的方式來(lái)指定了一些生命周期,在這些階段我們可以做各自需要的一些操作佑吝,例如每個(gè)測(cè)試方法必須使用@Test來(lái)標(biāo)記坐昙。看了上面的例子相信TestNG的生命周期你應(yīng)該有一定了解了吧迹蛤,關(guān)于TestNG中的Annotation更多的可以點(diǎn)擊TestNG

關(guān)于TestNG的其他知識(shí)以后有空了在慢慢整理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末民珍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子盗飒,更是在濱河造成了極大的恐慌,老刑警劉巖陋桂,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逆趣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡嗜历,警方通過(guò)查閱死者的電腦和手機(jī)宣渗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)梨州,“玉大人痕囱,你說(shuō)我怎么就攤上這事”┙常” “怎么了鞍恢?”我有些...
    開(kāi)封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)每窖。 經(jīng)常有香客問(wèn)我帮掉,道長(zhǎng),這世上最難降的妖魔是什么窒典? 我笑而不...
    開(kāi)封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任蟆炊,我火速辦了婚禮,結(jié)果婚禮上瀑志,老公的妹妹穿的比我還像新娘涩搓。我一直安慰自己,他們只是感情好劈猪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布昧甘。 她就那樣靜靜地躺著,像睡著了一般岸霹。 火紅的嫁衣襯著肌膚如雪疾层。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天贡避,我揣著相機(jī)與錄音痛黎,去河邊找鬼予弧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛湖饱,可吹牛的內(nèi)容都是我干的掖蛤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼井厌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蚓庭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起仅仆,我...
    開(kāi)封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤器赞,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后墓拜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體港柜,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年咳榜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夏醉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涌韩,死狀恐怖畔柔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情臣樱,我是刑警寧澤靶擦,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站擎淤,受9級(jí)特大地震影響奢啥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嘴拢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一桩盲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧席吴,春花似錦赌结、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至庄涡,卻和暖如春量承,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工撕捍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拿穴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓忧风,卻偏偏與公主長(zhǎng)得像默色,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子狮腿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 基本概念 測(cè)試過(guò)程中腿宰,如果有驗(yàn)證碼的參與,可以通過(guò)引入外部jar包或者內(nèi)部控制驗(yàn)證碼的生成和驗(yàn)證缘厢。 Maven的職...
    依然愛(ài)笑的薰衣草閱讀 1,468評(píng)論 2 0
  • 一吃度、MAVEN能做什么? 清理項(xiàng)目 mvn clean 編譯項(xiàng)目 mvn compiler 測(cè)試項(xiàng)目 mvn...
    sunshine9223閱讀 719評(píng)論 1 3
  • 一贴硫、問(wèn)題描述: 現(xiàn)有Jekins+Maven+Spring項(xiàng)目并沒(méi)有做系統(tǒng)的單元測(cè)試规肴,僅有少量勤快的開(kāi)發(fā)者會(huì)為業(yè)務(wù)...
    劉陽(yáng)0292閱讀 2,640評(píng)論 0 9
  • 非常感謝大家的支持和鼓勵(lì),我會(huì)一如既往的堅(jiān)持下去删壮,為了我自己贪绘,更為我愛(ài)的人向前沖刺^_^ **/Test*.jav...
    小煉君閱讀 11,553評(píng)論 2 52
  • 前言 在Java項(xiàng)目開(kāi)發(fā)中,項(xiàng)目的編譯央碟、測(cè)試税灌、打包等是比較繁瑣的,屬于重復(fù)勞動(dòng)的工作亿虽,浪費(fèi)人力和時(shí)間成本菱涤。以往開(kāi)發(fā)...
    JourWon閱讀 1,123評(píng)論 0 1