国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種自動化集成測試的方法

      文檔序號:6493286閱讀:684來源:國知局
      一種自動化集成測試的方法
      【專利摘要】本發(fā)明涉及一種自動化集成測試的方法包括:步驟一:收集工程jar包依賴情況,包括scope為test的;步驟二:收集屬于集成測試的java類;步驟三:增加一個可運行的java類,在該類運行的時候,獲取步驟一中收集到的jar包信息,在classloader里面增加收集到的jar包,然后啟動web容器;步驟四:在應用啟動過程中新起一個線程,待應用啟動完成之后,執(zhí)行步驟二收集到的測試類,測試報告統(tǒng)一輸出到指定的目錄,以便查看執(zhí)行測試的結(jié)果;步驟五:待所有所述測試類都運行完畢之后,關(guān)閉容器,程序退出。本發(fā)明將單元測試的技術(shù)方案移入集成測試中,讓集成測試跟單元測試一樣,可以自動執(zhí)行并且發(fā)送測試報告。
      【專利說明】一種自動化集成測試的方法
      【技術(shù)領域】
      [0001]本發(fā)明涉及一種集成測試方法,尤其是一種自動化集成測試的方法。
      【背景技術(shù)】
      [0002]現(xiàn)在在java領域單元測試的應用中比較廣泛的框架有testng和junit,都比較流行。相關(guān)的類mock工具有jmockit、mockito、easymock等。數(shù)據(jù)庫的mock工具有dbunit等。這些工具靈活使用之后,就可以有效的對我們的代碼進行單元測試。
      [0003]但在集成測試階段,我們目前只能做到對http接口進行返回結(jié)果進行構(gòu)造,然后將接口地址設置為mock地址。相對來說,這個mock數(shù)據(jù)是大家共享的,為了達到各自使用一份,需要做很多處理。在單元測試中基本上沒有這個問題,一個測試類里面mock的數(shù)據(jù)就專屬于這個類,不會影響別的測試類。
      [0004]如圖1所示,就是傳統(tǒng)的集成測試階段所需要完成的工作,http地址修改為mock地址,從mock地址拿返回數(shù)據(jù)。數(shù)據(jù)庫同樣如此。如果按照單元測試來說,只需要把調(diào)用http或者其他接口的api進行mock,返回我們想要的數(shù)據(jù)即可。如圖2所示,我們在單元測試相關(guān)代碼中定義了 mock代碼,影響servicel調(diào)用service2的方法,讓它去執(zhí)行我們定義的mock代碼,這塊代碼只在這個測試類中起作用。不會影響其他測試類。
      [0005]在集成測試階段,web容器啟動之后,一般我們只能通過外部mock工具對接口返回數(shù)據(jù)進行mock。單元測試mock工具的便利性,在集成測試階段就無法利用了。需要做2套mock,這樣才方便測試。

      【發(fā)明內(nèi)容】

      [0006]本發(fā)明的目的就是在集成測試階段,可以直接使用單元測試的測試方法進行集成測試。統(tǒng)一集成測試代碼和單元測試代碼,用作mock的數(shù)據(jù)既可以用來做單元測試,也可以用來做集成測試。
      [0007]本發(fā)明為實現(xiàn)上述目的,所采用的技術(shù)方案是提供一種自動化集成測試的方法,包括:
      步驟一:收集工程的jar包依賴情況,包括scope為test的;
      步驟二:收集測試類,收集屬于集成測試的java類;
      步驟三:增加一個可運行的java類(有main方法),在所述java類運行的時候,獲取步驟一中收集到的所述jar包信息,在classloader里面增加收集到的jar包,然后啟動web容器;
      步驟四:在應用啟動過程中新起一個線程,待應用啟動完成之后,執(zhí)行步驟二收集到的所述測試類,測試報告統(tǒng)一輸出到指定的目錄,以便于使用人員查看執(zhí)行測試的結(jié)果;步驟五:待所有所述測試類都運行完畢之后,關(guān)閉容器,程序退出。
      [0008]進一步的,所述步驟三中所述的web容器為jetty。
      [0009]進一步的,所述自動化集成測試的方法應用于j2ee的web工程。[0010]進一步的,所述自動化集成測試的方法是在一個maven工程下實現(xiàn)的。
      [0011]本發(fā)明由于采用了上述技術(shù)方案,使之與現(xiàn)有技術(shù)相比,可以在集成測試中直接使用單元測試的Mock技術(shù),不需要依賴外部的http進行mock??梢詫卧獪y試的技術(shù)方案移入集成測試中,讓集成測試跟單元測試一樣,可以自動執(zhí)行并且發(fā)送測試報告,提高測試效率。
      【專利附圖】

      【附圖說明】
      [0012]圖1是傳統(tǒng)的集成測試階段Mock示意圖 圖2是單元測試階段Mock示意圖
      圖3是本發(fā)明中自動化集成測試方法的流程圖 圖4是本發(fā)明中集成測試階段Mock示意圖
      【具體實施方式】 [0013]以下結(jié)合附圖和具體實施例對本發(fā)明提出的一種自動化集成測試的方法作進一步詳細的說明。
      [0014]請參考圖3,圖3是本發(fā)明中自動化集成測試方法的流程圖。本實施例是在maven定義的集成測試(integration-test)階段進行的,本實施例中的測試代碼放在這個階段執(zhí)行。
      [0015]在本實施例中,我們進行了如下幾步,如圖3所示:
      (1)收集工程的jar包依賴情況,包括scope為test的,這個主要目的是為了讓最終的單元測試代碼也可以在web容器里面運行;
      (2)按照一定的規(guī)則收集屬于集成測試的java類,以便于容器啟動之后立即運行這些測試類;
      (3)增加一個可運行的java類(有main方法)。在該類運行的時候,獲取第一步收集到的jar包信息,然后啟動jetty或者其他web容器,在classloader里面增加收集到的jar包,然后啟動容器;
      (4)在應用啟動過程中新起一個線程,待應用啟動完成之后,執(zhí)行第二步收集到的這些測試類,測試報告統(tǒng)一輸出到指定的目錄,以便于使用人員查看執(zhí)行測試的結(jié)果(主要是失敗原因);
      (5)待所有測試類都運行完畢之后,關(guān)閉容器,程序退出。
      [0016]在我們獲知自動化運行結(jié)果后,如果測試類運行失敗,就可以修正測試代碼,成功則執(zhí)行下一個流程。
      [0017]在本實施例中我們開發(fā)了一個maven插件來完成上述圖1的這些邏輯,測試類中的代碼可以按照普通的單元測試代碼書寫,例如:可以訪問某一個url,獲取這個url返回的html代碼,然后驗證是否是我們想要的結(jié)果。
      [0018]這里我們寫了如下一個maven插件maven-1nte-plugin <plugin>
      <groupId>org.apache, maven.plugins〈/groupId>
      <artifactld>maven-1nte-plugin</artifactld>〈configuration〉
      <subfix>*Inte.java</subfix>
      </configuration)
      〈executions〉
      〈execution〉
      〈phase>integration_test〈/phase>
      <goals>
      <goal>run</goal>
      </goals>
      </execution)
      </executions)
      </plugin>
      通過在java工程的pom文件做如上配置,在執(zhí)行mvn integration-test的時候,就會自動執(zhí)行這個插件,運行我們設置的后綴為Inte的測試代碼。
      [0019]上述的實施例,是在一個maven工程下實現(xiàn)的,當然在其他j2ee中也可以實現(xiàn)上圖1的邏輯。所應用的范圍限于j2ee的web工程。其他語言、其他性質(zhì)的工程不涉及。
      [0020]在這里的測試類中如果對某一個類的行為進行了 mock,勢必就會影響到執(zhí)行的urI的返回結(jié)果了,這樣如果某一個service類需要訪問http服務,我們就可以直接mock返回結(jié)果,而不必再去另外搭建一個mock http服務了。
      [0021 ] 如圖4所示,在集成測試類中,可以直接訪問一個ur 1,這個ur 1會執(zhí)行我們設定好的流程,然后通過mock代碼可以影響每一步執(zhí)行過程,達到我們集成測試的目的。
      [0022]將集成測試跟普通的單元測試代碼看起來類似,這樣有利于開發(fā)人員直接維護這些代碼。一旦修改了系統(tǒng)中的相關(guān)代碼,那么開發(fā)人員可以及時的發(fā)現(xiàn)并修正集成測試代碼。做到集成測試與業(yè)務同步,避免集成測試不及時的問題。
      [0023]上文對本發(fā)明優(yōu)選實施例的描述是為了說明和描述,并非想要把本發(fā)明窮盡或局限于所公開的具體形式,顯然,可能作出許多修改和變化,這些修改和變化可能對于本領域技術(shù)人員來說是顯然的,應當包括在由所附權(quán)利要求書定義的本發(fā)明的范圍之內(nèi)。
      【權(quán)利要求】
      1.一種自動化集成測試的方法,包括: 步驟一:收集工程的jar包依賴情況,包括scope為test的; 步驟二:收集測試類,收集屬于集成測試的java類; 步驟三:增加一個可運行的java類(有main方法),在所述java類運行的時候,獲取步驟一中收集到的所述jar包信息,在classloader里面增加收集到的jar包,然后啟動web容器; 步驟四:在應用啟動過程中新起一個線程,待應用啟動完成之后,執(zhí)行步驟二收集到的所述測試類,測試報告統(tǒng)一輸出到指定的目錄,以便于使用人員查看執(zhí)行測試的結(jié)果; 步驟五:待所有所述測試類都運行完畢之后,關(guān)閉容器,程序退出。
      2.根據(jù)權(quán)利要求1所述的一種自動化集成測試的方法,其特征在于所述步驟三中所述的web容器為jetty。
      3.根據(jù)權(quán)利要求1所述的一種自動化集成測試的方法,其特征在于所述自動化集成測試的方法應用于j2ee的web工程。
      4.根據(jù)權(quán)利要求3所述的一種自動化集成測試的方法,其特征在于所述自動化集成測試的方法是在一個maven工程下實現(xiàn)的。
      【文檔編號】G06F11/36GK103885873SQ201210558326
      【公開日】2014年6月25日 申請日期:2012年12月20日 優(yōu)先權(quán)日:2012年12月20日
      【發(fā)明者】楊飛, 陳寄文 申請人:上海明想電子科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1