當前位置:首頁 » 操作系統 » junit源碼分析

junit源碼分析

發布時間: 2023-04-30 07:58:05

『壹』 Junit4 測試方法為什麼必須用public void修飾

這虧余個問題只有查看junit4源碼中,相應的方法是怎麼實現的,就可以手兄解答你的問題。具體如下:

  1. TestCase類的runTest()方法中,有代碼如:runMethod = getClass().getMethod(fName, (Class[]) null);這說明銷薯滾junit4的默認運行器只檢查了測試方法參數是否為空,不為空就不會被當成測試方法。

  2. TestSuite類的addTestMethod()方法中,會檢查是否為public、void修飾,以及其他檢測。

    你可以看看junit源碼~

『貳』 程序靜態分析的用法

關於IDE以及plugin如何使用在此不做介紹,本文主要關注它們如何與ant配合使用,使這些工具成為每次構建過程中的有機組成。 PMD的運行環境是j2se1.3或以後版本,安裝過程同樣也是解壓即可。對應ant task的使用:
1. 把lib中所有的jar復制到項目的classpath中。
2. 將pmd-2.0.jar中的rulesets解壓到指定目錄,這裡面定義了分析所需要的規則集合。
3. 修改build.xml文件。在這一版本中,提供了2個ant task。一個是pmd使用規則集合進行分析;另一個是檢查代碼中Copy & Paste代碼。這2個任務對應的ant task使用:
PMD任務:
<target name=pmd>
<!-- 定義任務和任務所屬類所在的classpath引用 -->
<taskdef name=pmd classname=net.sourceforge.pmd.ant.PMDTask
classpathref=classpath/>
<!-- 檢查使用的規則文件 -->
<pmd rulesetfiles=junit_lib/rulesets/imports.xml>
<!-- 輸出格式和文件名 -->
<formatter type=html toFile=pmd_report.html/>
<!-- pmd所需要依賴包的classpath引用 -->
<classpath refid=classpath/>
<!-- 要檢查的項目源文件根目錄 -->
<fileset dir=src>
<include name=**/*.java/>
</fileset>
</pmd>
</target>
CPD任務:
<target name=cpd>
<!-- 定義任務和任務所屬類所在的classpath -->
<taskdef name=cpd classname=net.sourceforge.pmd.cpd.CPDTask
classpathref=classpath/>
<!-- 指明輸出文件和判斷屬於 & paste的標准 -->
<cpd minimumTokenCount=100 outputFile=cpd.txtl>
<!-- 要檢查的項目源文件根目錄 -->
<fileset dir=src>
<include name=**/*.java/>
</fileset>
</cpd>
</target>
4. 運行ant pmd和ant cpd即可。
5. 參數說明:
- formatter,指明輸出格式和文件。
- rulesetfiles,指明分析所需的規則文件,不同文件使用逗號分隔。
- failonerror,pmd執行出錯是否中止構建過程。
- failOnRuleViolation,如果與規則沖突,是否中止構建過程。
- classpath,pmd所需的classpath。
- printToConsole,在發現問題時是否列印到ant log或控制台。
- shortFilenames,在輸出報告中是否使用短文件名。
- targetjdk13,是否把目標定為jdk13,如不能使用assert。
- failuresPropertyName,在任務結束時,插入違反規則的號碼
- encoding,讀源文件時所採用的編碼,如utf-8。
關於規則集合的說明,以及如何自定義規則請參見pmd的文檔,文檔中已說得相當清楚。 使用ant task:
1. 復制checkstyle-all-3.3.jar到項目的classpath中。
2. 修改build.xml文件:
<taskdef resource=checkstyletask.properties
classpath=${weblib.dir}/checkstyle-all-3.3.jar/>
<target name=checkstyle depends=init>
<!-- 指明checkstyle的分析所需的規則文件 -->
<checkstyle config=checkstyle33.xml>
<!-- 要檢查的文件 -->
<fileset dir=${src.code} includes=**/*.java/>
<!-- 指明輸出格式和文件名 -->
<formatter type=xml toFile=report.xml/>
</checkstyle>
<!-- 將xml文件轉換成html文件 -->
<style in=report.xml out=report.html style=checkstyle-frames/>
</target>
3. 運行ant checkstyle即可。
checkstyle的規則文件,即項目的代碼規范,建議不要手工書寫。可以使用checkstyle plug in在Eclipse配置後再導出。Checkstyle提供了預設的xslt,用來進行xml的格式轉換。它們都放在contrib目錄中。Checkstyle同樣也提供了自定義的check,但與PMD相比,書寫要復雜。詳細情況請參見checkstyle的文檔。 BlueMorpho是獨立運行的B/S程序,安裝簡單,無需額外配置參數文件。 在Windows下運行Bluemorpho windows安裝包,注意有32位和64位兩個版本, 安裝完成後,在開始-程序-BlueMorpho文件夾里運行Sart bluemorho server啟動分析server. Server啟動後,在開始-程序-BlueMorpho文件夾里運行BlueMorpho即可訪問閃蝶源碼分析平台。 BlueMoropho提供兩種方式上傳source code, 手工上傳和同步從Mainframe下載COBOL源碼。 代碼上傳或下載到BlueMorpho以後,即可點擊任意程序進行源碼分析。

『叄』 Junit4中怎樣隨心所欲的執行Test

使用的是junit4.4,想要有選擇性的執行TestCase中的Test,是需要自己擴展junit4.4的API的。junit4.8的版本中,加入了一個Runner:Categories,可以實現只跑特定分類的Test。現在通過代碼舉例來比較兩個版本中批量執行Test的差別.
public class TestOne {

@Test
public void testOne1(){
System.out.println("TestOne 1");
}

@Category({RunCases.class}) ----Junit4.8中才有的註解
@Test
public void testOne2(){
System.out.println("TestOne 2");
}
}
public class TestTwo {

@Test
public void testTwo1(){
System.out.println("TestTwo 1");
}

@Category(RunCases.class) ----Junit4.8中才並襪有的註解
@Test
public void testTwo2(){
System.out.println("TestTwo 2");
}
}
junit4.4中,使用Suite批量執行Test: TestOne.class,TestTwo.class中的Test會全部被執行,實現如下:
@RunWith(Suite.class)
@SuiteClasses({
TestOne.class,
TestTwo.class})
public class AllTestCases {
}
junit4.8中,使用Categories批量執行Test:可以有選擇的執行SuiteClasses中的部分Test,實現如下:
在TestCase的Test前加上@Category(RunCases.class) 註解,RunCases.class是自定義分類類型(可以是class,也可以是interface,名稱沒有特殊要求);
public class RunCases {
}

public interface RunCases{
}
然後,我們使用@Runwith來指定使用絕岩激Categories測試引擎,並且使用@IncludeCategory或@ExcludeCategory指定哪些測試用例被執行:
@RunWith(Categories.class)
@IncludeCategory(RunCases.class)
@SuiteClasses({TestOne.class,TestTwo.class})
public class TestPartExcute {
}
執行結果:
TestOne 2
TestTwo 2

@RunWith(Categories.class)
@ExcludeCategory(RunCases.class)
@SuiteClasses({TestOne.class,TestTwo.class})
public class TestPartExcute {
}
執行結果:
TestOne 1
TestTwo 1
注意事項說明:
1.@Category({RunCases.class}) 註解用在測試用例類上,並不能生效;
2.可以定義多個分類類型,在@Category註解中,可以使用多個分類類型,eg:@Category({A.class,B.class});
3.@IncludeCategory或@ExcludeCategory註解中出現的類型,必須在@Category註解中出現過,否則執行會報錯。

附帶:Junit4各版本新特性匯總
Junit源碼(github)地址:git://github.com/KentBeck/junit.git

JUnit 4.4
主要提供了以下棗棗三個大方面的新特性來更好的抓住編程人員的代碼意圖:
1.提供了新的斷言語法(Assertion syntax)——assertThat
2.提供了假設機制(Assumption)
3.提供了理論機制(Theory)
JUnit 4.5
Runner實現發生了較大改變,廢棄了原來的JUnit4ClassRunner,改用BlockJUnit4ClassRunner替代。新的runner機制更容易擴展和重用,可在測試執行流程中方便的切入加入新的特性。
JUnit 4.6
該版本提升了核心的體系結構,允許對測試進行重新排序以及並行處理等。
Junit 4.7
該版本增加了一個重要的新特性:Rule,同時添加了很多核心Rule:
TemporaryFolder:測試可以創建文件與目錄並且會在測試運行結束後將其刪除。這對於那些與文件系統打交道且獨立運行的測試來說很有用。
ExternalResource:這是一種資源使用模式,它會提前建立好資源並且會在測試結束後將其銷毀。這對於那些使用socket、嵌入式伺服器等資源的測試來說很有用。
ErrorCollector:可以讓測試在失敗後繼續運行並在測試結束時報告所有錯誤。這對於那些需要驗證大量獨立條件的測試來說很有用(盡管這本身可能是個「test smell」)。
ExpectedException:可以在測試中指定期望的異常類型與消息。
Timeout:為類中的所有測試應用相同的超時時間。
Junit 4.8
加入了一個Runner:Categories,可以只跑特定分類的測試用例。
Junit 4.9
Test-class and suite level Rules。
Maven support
Junit 4.10
The RuleChain rule allows ordering of TestRules。

『肆』 五個方法讓你做更好的java單元測試

單元測試是我們在軟體開發過程中經常用到的一種軟體測試的方法,而今天我們就一起來了解一下,一個好的單元測試都是如何來編輯完成的。


1.使用框架來用於單元測試


Java提供了若干用於單元測試的框架。TestNG和JUnit是流行的測試框架。JUnit和TestNG的一些重要功能:


易於設置和運行。


支持注釋。


允許忽略或分組並一起執行某些測試。


支持參數化測試,即通過在運行時指定不同的值來運行單元測試。


通過與構建工具,如Ant,Maven和Gradle集成來支持自動化的測試執行。



EasyMock是一個模擬框架,是單元測試框架,如JUnit和TestNG的補充。EasyMock本身不是一個完整的框架。它只是添加了創建模擬對象以便於測試的能力。例如,我們想要測試的一個方法可以調用從資料庫獲取數據的DAO類。在這種情況下,EasyMock可用於創建返回硬編碼數據的MockDAO。這使我們能夠輕松地測試我們意向敬脊的方法,而不必擔心資料庫訪問。


2.謹慎使用測試驅動開發!


測試驅動開發(TDD)是一個軟體開發過程,在這過程中,在開始任何編碼之前,族州我們基於需求來編寫測試。由於還沒有編碼,測試初會失敗。然後寫入小量的代碼以通過測試。然後重構代碼,直到被優化。


目標是編寫覆蓋所有需求的測試,而不是一開始就寫代碼,卻可能甚至都不能滿足需求。TDD是偉大的,因為它導致簡單的模塊化代碼,且易於維護。總體開發速度加快,容易發現缺陷。此外,單元測試被創建作為TDD方法的副產品。


然而,TDD可能不適合所有的情況。在設計復雜的項目中,專注於簡單的設計以便於通過測試用例,而不提前思考可能會導致巨大的代碼更改。此外,TDD方法難以用於與遺留系統,GUI應用程序或與資料庫一起工作的應用程序交互的系統。另外,測試需要隨著代碼的改變而更新。


因此,在決定採用TDD方法之前,應考慮上述因素,並應根據項目的性質採取措施。


3.測量代碼覆蓋率


代碼覆蓋率衡量(以百分比表示)了在運行單元測試時執行的代碼量。通常,高覆蓋率的代碼包含未檢測到的錯誤的兆稿蔽幾率要低,因為其更多的源代碼在測試過程中被執行。昌平電腦培訓發現測量代碼覆蓋率的一些佳做法包括:


使用代碼覆蓋工具,如Clover,Corbetura,JaCoCo或Sonar。使用工具可以提高測試質量,因為這些工具可以指出未經測試的代碼區域,讓你能夠開發開發額外的測試來覆蓋這些領域。


『伍』 JUNIT測試簡單三角形的代碼-Java

第一:此內容屬於Junit4進行參數化測試,由於需要指定運行器問題,其中一種方法是新建一兄塌嫌 個類

第二:在羨手你源代碼上加上列印語句,方便測試,比如

『陸』 java中框架Junit應該怎麼使用

JUnit

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework)。Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟體如何(How)完成功能和完成什麼樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。
更多JUnit信息

Cactus

Cactus是一個基於JUnit框架的簡單測試框架,用來單元測試服務端Java代碼。Cactus框架的主要目標是能夠單元測試服務端的使用Servlet對象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等
更多Cactus 信息

Abbot

Abbot是一個用來測試Java GUIs的框架。用簡單的基於XML的腳本或者Java代碼,你就可以開始一個GUI。
更多Abbot信息

JUnitPerf

Junitperf實際是junit的一個decorator,通過編寫用於junitperf的單元測試,我們也可使測試過程自動化。
更多JUnitPerf信息

DbUnit

DbUnit是為資料庫驅動的項目迅仔提供的一個對JUnit 的擴展,除了提供一些常用功能,它可以將你的資料庫置於一個測試輪回之間的狀態。
更多DbUnit信息

Mockrunner

Mockrunner用在J2EE環境中進行應用程序的單元測試。它不僅支持Struts actions, servlets,過濾器和標簽類還包括一個JDBC和一個JMS測試框架,可以用於測試基於EJB的應用程序。
更多Mockrunner信息

DBMonster

DBMonster是一個用生成隨機數據來測試sql資料庫的壓力測試工具。
更多DBMonster信息

MockEJB

MockEJB是一個不需要EJB容器就能運行EJB並進行測試的輕量級框架。
更多MockEJB信息

StrutsTestCase

StrutsTestCase 是Junit TestCase類的擴展,提供基於Struts框架的代碼測試。StrutsTestCase同時提供Mock 對象方法和Cactus方法用來實際運行Struts ActionServlet,你可以通過運行servlet引擎來測試。因為StrutsTestCase使畝仔汪用ActionServlet控制器來測試你的代碼,因此你不僅可以測試Action對象的實現,而且可以測試mappings,from beans以及forwards聲明。StrutsTestCase不啟動servlet容器來測試struts應用程序(容器外測試)也屬於Mock對象測試,但是與EasyMock不同的是,EasyMock是提供了創建Mock對象的API,而StrutsTest則是專門負責測試Struts應用程序的Mock對象測試框架。
更多StrutsTestCase信息

JFCUnit

JFCUnit使得你能夠為Java偏移應用程序編寫測試例子。它為從用代碼打開的窗口上獲得句柄提供了支持;為在一個部件層次定位部件提供支持;為在部件中發起事件(例如按一個按鈕)以及以線程安全方式處理部件測試提供支持。
更多JFCUnit信息

JTestCase

JTestCase 使用XML文件來組織多測試案例數據,聲明條件(操作和期望的結果),提供了一套易於使用的方法來檢索XML中的測試案例,按照數據文件的定義來聲明結果。
更多JTestCase信息

SQLUnit

SQLUnit是一個單元測試框架,用於對資料庫存儲過程進行加歸測試。用 Java/JUnit/XML開發。
更多SQLUnit信息

JTR

JTR (Java Test Runner)是一個開源的基於反轉控制(IOC)的J2EE測試框架。它允許你構建復雜的J2EE測試套件(Test Suites)並連到應用伺服器執行測試,可以包括多個測戚嫌試實例。JTR的licensed是GPL協議。
更多JTR信息

Marathon

Marathon是一個針對使用Java/Swing開發GUI應用程序的測試框架,它由recorder, runner 和 editor組成,測試腳本是python代碼。Marathon的焦點是放在最終用戶的測試上。
更多Marathon信息

TestNG

TestNG是根據JUnit 和 NUnit思想而構建的一個測試框架,但是TestNG增加了許多新的功能使得它變得更加強大與容易使用比如:
*支持JSR 175注釋(JDK 1.4利用JavaDoc注釋同樣也支持)
*靈活的Test配置
*支持默認的runtime和logging JDK功能
*強大的執行模型(不再TestSuite)
*支持獨立的測試方法。
更多TestNG信息

Surrogate Test framework

Surrogate Test framework是一個值得稱贊單元測試框架,特別適合於大型,復雜Java系統的單元測試。這個框架能與JUnit,MockEJB和各種支持模擬對象(mock object )的測試工具無縫給合。這個框架基於AspectJ技術。
更多Surrogate Test framework信息

MockCreator

MockCreator可以為給定的interface或class生成模擬對象(Mock object)的源碼。
更多MockCreator信息

jMock

jMock利用mock objects思想來對Java code進行測試。jMock具有以下特點:容易擴展,讓你快速簡單地定義mock objects,因此不必打破程序間的關聯,讓你定義靈活的超越對象之間交互作用而帶來測試局限,減少你測試地脆弱性。
更多jMock信息

EasyMock

EasyMock為Mock Objects提供介面並在JUnit測試中利用Java的proxy設計模式生成它們的實例。EasyMock最適合於測試驅動開發。
更多EasyMock信息

Grinder

Grinder是一個開源的Java負載測試框架,它通過很多負載注射器來為分布式測試提供了便利。
支持用於執行測試腳本的Jython腳本引擎
HTTP測試可通過HTTP代理進行管理。
更多Grinder信息

XMLUnit

XMLUnit不僅有Java版本的還有.Net版本的。Java開發的XMLUnit提供了兩個JUnit 擴展類XMLAssert和XMLTestCase,和一組支持的類。這些類可以用來比較兩張XML之間的不同之處,展示XML利用XSLT來,校驗XML,求得XPath表達式在XML中的值,遍歷XML中的某一節點利DOM展開,
更多XMLUnit信息

Jameleon

Jameleon一個自動化測試工具。它被用來測試各種各樣的應用程序,所以它被設計成插件模式。為了使整個測試過程變得簡單Jameleon提供了一個GUI,因此Jameleon實現了一個Swing 插件。
更多Jameleon信息

J2MEUnit

J2MEUnit是應用在J2ME應用程序的一個單元測試框架。它基於JUnit.
更多J2MEUnit信息

Jetif

Jetif是一個用純Java實現的回歸測試框架。它為Java程序單元測試以及功能測試提供了一個簡單而且可 伸縮的架構,可以用於個人開發或企業級開發的測試。它容易使用,功能強大,而且擁有一些企業級測試的 重要功能。Jetif來源於JUnit, JTestCase以及TestNG的啟發,有幾個基本的概念直接來自於JUnit, 比如說斷言機制,Test Listener的概念,因此從JUnit轉到Jetif是非常容易的。
更多Jetif信息

GroboUtils

GroboUtils使得擴展Java測試變得可能。它包括用在Java不同方面測試的多個子項目。在GroboUtils中最常被到的工具是:多線程測試(multi-threaded tests),整體單元測試(hierarchial unit tests),代碼覆蓋工具(code coverage tool)。
更多GroboUtils信息

Testare

TESTARE是用來簡化分布式應用程序(比如:在SERVLETS,JMS listeners, CORBA ORBs或RMI環境下)測試開發過程的一個測試框架.
更多Testare信息

MockLib

MockLib是一個很小的包所以可容易地動態創建一個模擬對象.你可以從模擬的系統中拋出異常來確保你的系統能夠正確處理錯誤.它同樣也是一個線程安全的模擬對象庫.
更多MockLib信息

JellyUnit

JellyUnit是一個基於Jelly的JUnit測試機制.它允許用Jelly腳本來完成單元測試.尤其是對於XML,XPath,SQL,HTTP,JMS和SOAP交互的測試特別有用.
更多JellyUnit信息

Pisces

這個項目繼承於JUnit目的是提供一個分布式的測試環境.它給開發者/測試人員一個運行遠程JUnits和復雜測試案例的能力,這個案例由幾個並行運行的遠程JUnit測試組成。
更多Pisces信息

JUnitEE

JUnitEE是對JUnit的一個簡單擴展,可以支持在一個J2EE應用程序伺服器上執行標準的測試案例。它主要由一個把測試結果輸出為html的servlet組成。
更多JUnitEE信息

『柒』 在junit中模擬web伺服器有便捷的方法

測試分類:

1、界面測試
1)給用戶的整體感:舒適感;憑感覺能找到想要找的信息;設計風格是否一致
2)各控制項的功能
2、功能測試
1)刪除/增加某一項:是否對其他項造成影響,這些影響是否都正確
2)列表默認值檢查
3)檢查按鈕功能是否正確:新建、編輯、刪除、關閉、返回、保存、導入、上一頁、下一頁、頁面跳轉、重置(常見錯誤)
4)字元串長度檢查:超出長度
5)字元類型檢查
6)標點符號檢查:空格、各種引號、Enter鍵
7)特殊字元:常見%、「、」
8)中文字元:是否亂碼
9)檢查信息完整:查看信息,查看所填信息是否完整更新;更新信息,更新信息與添加信息是否一致
10)信息重復:需唯一信息處,比如重復的名字或ID、重名是否區分大小寫、加空格
11)檢查刪除功能:不選擇任何信息,按Delete,看如何處理;選擇一個或多個進行刪除;多頁選、翻頁選刪除;刪除是否有提示
12)檢查添加和修改是否一致:添加必填項,修改也該必填;添加為什麼類型,修改也該什麼類型
13)檢查修改重名:修改時把不能重名的項改為已存在的內容
14)重復提交表單:一條已經成功提交的記錄,返回後再提交
15)檢查多次使用返回鍵:返回到原來頁面,重復多次
16)搜索檢查:存在或不存在內容,看搜索結果是否正確;多個搜索條件,同時輸入合理和不合理條件;特殊字元
17)輸入信息的位置
18)上傳下載文件檢查:功能是否實現,
上傳:上傳文件是否能打開、格式要求、系統是否有解釋信息、將不能上傳的文件格式修改後綴為可上傳的文件格式;
下載:下載是否能打開、保存、格式要求
19)必填項檢查:必填項未填寫;是否有提示,如加*;對必填項提示返回後,焦點是否自動定位到必填項
20)快捷鍵檢查:是否支持快捷鍵Ctrl+C、Ctrl+V、backspace;對不允許做輸入的欄位(如:下拉選項),對快捷方式是否也做了限制
21)Enter鍵檢查:輸入結束後按Enter鍵,系統如何處理
22)刷新鍵檢查:按瀏覽器刷新鍵如何處理
23)回退鍵檢查:按瀏覽器回退鍵如何處理
24)空格檢查:輸入項輸入一個或多個空格
25)輸入法半形全形檢查:比如,浮點型,輸入全形小數點「。」或「. 」,如4. 5;全形空格
26)密碼檢查:輸入加密方式的極限字元;密碼盡可能長
27)用戶檢查:不同種類管理員用戶的不同許可權,是否可以互相刪除、管理、編輯;一般用戶的許可權;注銷功能,老用戶注銷再注冊,是否為新用戶
28)系統數據檢查:數據隨業務過程、狀態的變化保持正確,不能因為某個過程出現垃圾數據,也不能因為某個過程而丟失數據。
29)系統可恢復性檢查:以各種方式把系統搞癱,測試系統是否可以迅速恢復
30)確認提示檢查:系統更新、刪除操作:是否有提示、取消操作;提示是否准確;事前、事後提示
31)數據注入檢查:對資料庫注入,特殊字元,對SQL語句進行破壞
32)時間日期檢查:時間、日期、時間驗證:日期范圍是否符合實際業務;對於不符合實際業務的日期是否有限制
33)多瀏覽器驗證
3、性能測試
1)壓力測試:實際破壞一個Web應用系統,測試系統的反應,測試系統的限制和故障恢復能力
2)負載測試:在某一負載級別上的性能,包括某個時刻同時訪問Web的用戶數量、在線數據處理的數量
3)強度測試:測試對象在性能行為異常或極端條件下(如資源減少或用戶過多)的可接受性,以此驗證系統軟硬體水平
4)資料庫容量測試:通過存儲過程往資料庫表中插入一定數量的數據,看是否能及時顯示
5)預期指標的性能測試:在需求分析和設計階段會提出一些性能指標,對於預先確定的性能要求要首先進行測試
6)獨立業務性能測試:對核心業務模塊做用戶並發測試,包括同一時刻進行完全一樣的操作、同一時刻使用完全一樣的功能
7)組合業務性能測試:模擬多用戶的不同操作,最接近實際用戶使用情況,按用戶實際的實際使用人數比例來模擬各個模塊的組合並發情況
8)疲勞強度性能測試:系統穩定運行情況下,以一定負載壓力來長時間運行系統的測試
9)網路性能測試:准確展示帶寬、延遲、負載、埠的變化是如何影響用戶的相應時間的
10)大數據量性能測試:實時大數據量,模擬用戶工作時的實時大數據量;極限狀態下的測試,系統使用一段時間,積累一段數據量時能否正常運行,以及對前面兩種進行結合
11)伺服器性能測試:在進行用戶並發性能測試、疲勞強度、大數據量性能測試時,完成對伺服器性能的監控,並進行評估
12)一些特殊的測試:配置測試、內存泄漏的一些特殊測試
4、可用性測試(介面測試)
1)整體界面測試
2)多媒體測試
3)導航測試
5、客戶端兼容性
平台測試:windows;unix;macintosh;linux
瀏覽器測試:不同廠商的瀏覽器對Java、Javascript、ActiveX、plug-ins或不同的HTML的規格
不同的支持;框架和層次結構在不同瀏覽器也不同的顯示
6、安全性
安全性測試要求:
1)能夠對密碼試探工具進行防範
2)能夠防範對Cookie攻擊的常用手段
3)敏感數據保證不用明文傳輸
4)能防範通過文件名猜測和查看html文件內容獲取重要信息
5)能保證在網站收到工具後在給定時間內恢復,重要數據丟失不超過1小時

web 的性能測試工具:

隨著Web 2.0技術的迅速發展,許多公司都開發了一些基於Web的網站服務,通常在設計開發Web應用系統的時候很難模擬出大量用戶同時訪問系統的實際情況。
因此,當Web網站遇到訪問高峰時,容易發生伺服器響應速度變慢甚至服務中斷。
為了避免這種情況,需要一種能夠真實模擬大量用戶訪問Web應用系統的性能測試工具進行壓力測試,來測試靜態HTML頁面的響應時間,甚至測試動態網頁(包括ASP、PHP、JSP等)的響應時間,為伺服器的性能優化和調整提供數據依據。

1、企業級自動化測試工具WinRunner

Mercury Interactive公司的WinRunner是一種企業級的功能測試工具,用於檢測應用程序是否能夠達到預期的功能及正常運行。

2、工業標准級負載測試工具Loadrunner

LoadRunner 是一種預測系統行為和性能的負載測試工具

3、全球測試管理系統testdirector

TestDirector 是業界第一個基於Web的測試管理系統,它可以在您公司內部或外部進行全球范圍內測試的管理。

4、功能測試工具Rational Robot

IBM Rational Robot 是業界最頂尖的功能測試工具,它甚至可以在測試人員學習高級腳本技術之前幫助其進行成功的測試。
它集成在測試人員的桌面IBM Rational TestManager 上,在這里測試人員可以計劃、組織、執行、管理和報告所有測試活動,包括手動測試報告。
這種測試和管理的雙重功能是自動化測試的理想開始。

5、單元測試工具xUnit系列

目前的最流行的單元測試工具是xUnit系列框架,常用的根據語言不同分為JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。
該測試框架的第一個和最傑出的應用就是由Erich Gamma (《設計模式》的作者)和Kent Beck(XP(Extreme Programming)的創始人 )提供的開放源代碼的JUnit.

6、功能測試工具SilkTest

Borland SilkTest 2006屬於軟體功能測試工具,是Borland公司所提出軟體質量管理解決方案的套件之一。
這個工具採用精靈設定與自動化執行測試,無論是程序設計新手或資深的專家都能快速建立功能測試,並分析功能錯誤。

7、性能測試工具WAS

Microsoft Web Application Stress Tool 是由微軟的網站測試人員所開發,專門用來進行實際網站壓力測試的一套工具。
透過這套功能強大的壓力測試工具,您可以使用少量的Client端計算機模擬大量用戶上線對網站服務所可能造成的影響。

8、自動化白盒測試工具Jtest

Jtest是parasoft公司推出的一款針對java語言的自動化白盒測試工具,它通過自動實現java的單元測試和代碼標准校驗,來提高代碼的可靠性。
parasoft同時出品的還有C++ test,是一款C/C++白盒測試工具。

9、功能和性能測試的工具JMeter

JMeter是Apache組織的開放源代碼項目,它是功能和性能測試的工具,100%的用java實現。

10、性能測試和分析工具WEBLOAD

webload是RadView公司推出的一個性能測試和分析工具,它讓web應用程序開發者自動執行壓力測試;webload通過模擬真實用戶的操作,生成壓力負載來測試web的性能。

『捌』 eclipse里用junit運行測試報錯:java.lang.UnstatisfiedLinkError:no wrapj in java.libary.path

跟junit沒有關做老系,應頌裂該是野胡閉被測試的程序缺少某個dll文件導致。
在源碼中搜索「wrapj」,看看哪裡用到了這個dll。

『玖』 求java學習路線圖

/*回答內容很長,能看完的少走一個月彎路,絕不抖機靈*/

提前預警:本文適合Java新手閱讀(老手可在評論區給下建議),希望大家看完能有所收獲。

廢話不多少了,先了解一下Java零基礎入門學習路線:

第一階段:JavaSE階段

變數、數據類型、運算符

  • 二進制和十進制的轉化

  • 注釋、單行注釋、多行注釋、文本注釋、注釋內容和位元組碼的關系

  • 標識符、關鍵字、駝峰原則

  • 變數的本質、內存畫圖、變數聲明和初始化

  • 變數的分類和作用域(局部變數、成員變數、靜態變數)

  • 常量和Final

  • 基本數據類型介紹

  • 整型變數和整型常量

  • 浮點類型、float、double

  • char字元型、轉義字元

  • boolean布爾型、if語句使用要點、布爾類型佔用空間問題

  • 運算符介紹

  • 算數運算符(二元、自增、自減)

  • 賦值和賦值運算符

  • 關系運算符詳解

  • 邏輯運算符、短路運算符詳解

  • 位運算符詳解

  • 字元串連接符

  • 條件運算符(三元運算符)

  • 運算符優先順序問題

  • 自動類型轉換詳解

  • 強制類型裝換詳解

  • 基本數據類型裝換常見錯誤、溢出、L問題

  • 使用Scanner獲取鍵盤輸入

控制語句

  • 控制語句和實現邏輯對應

  • if單選結構

  • if_elseif_else多選結構

  • switch語句_IDEA更換主題

  • 循環_while

  • 循環_for循環_dowhile

  • 嵌套循環

  • break和continue語句_標簽_控制語句底層原理

  • 寫一個年薪計算機_網路查問題的秘訣(重要)

  • 個人所得稅計算器軟體

  • 方法核心詳解_天才思維模型教你高手學習思維模式

  • 方法的重載

  • 遞歸結構講解_遞歸頭_遞歸體

面向對象編程-基礎

  • 面向過程和面向對象的區別

  • 類和對象的概述

  • 類的屬性和方法

  • 創建對象內存分析

  • 構造方法(Construtor)及重載

  • 對象類型的參數傳遞

  • this關鍵字

  • static關鍵字詳解

  • 局部代碼塊、構造代碼塊和靜態代碼塊

  • package和import詳解

  • JavaDoc生成API文檔

面向對象編程-進階

  • 面向對象的三大特性

  • 面向對象之【封裝(Encapsulation)】

  • 訪問許可權修飾符

  • 面向對象之【繼承(Inheritance)】

  • Object類

  • 方法重寫Override

  • super關鍵字詳解

  • 重寫equals()和toString()

  • 繼承中對象創建的內存分析

  • 面向對象之【多態(Polymorphism)】

  • 向上轉型

  • 向下轉型

  • instanceof運算符

  • 編譯時和運行時詳解

  • final修飾符

  • 抽象類和抽象方法(abstrct)

  • 介面的定義和實現

  • JDK8的介面新特性

  • 介面應用:內部類比較器Comparable

  • 內部類詳解

  • Java的內存管理與垃圾回收

異常機制

  • 異常的概述

  • 異常的執行過程與分析

  • try-catch-finally捕捉異常

  • throw拋出異常

  • throws聲明異常

  • 異常繼承體系

  • 運行時異常和編譯異常

  • 自定義異常

Java常用類

Wrapper包裝類

  • 自動裝箱和自動拆箱

  • 包裝類的源碼分析

  • String類的使用與內存原理

  • String類的源碼分析

  • StringBuffer

  • StringBuilder

  • 字元串處理類性能分析

  • Date類

  • System類

  • DateFormat類

  • Calendat類

  • Math類

  • BigInteger類和BigDecimal類

  • Random類

  • 枚舉類

  • File類

  • 常見的面試題講述與分析

  • 數據結構演算法

  • 數據結構的概述

  • 線性表

  • 順序表

  • 鏈表

  • 棧和隊列

  • 二叉樹

  • 二叉查找樹

  • 二叉平衡樹

  • 黑紅樹

  • 冒泡排序

  • 選擇排序

  • 遞歸

  • 折半查找

  • 集合(容器)

  • 集合和數組的聯系和區別

  • 集合框架體系

  • ArrayList的使用和源碼分析

  • 集合中使用泛型

  • LinkedList的使用和源碼分析

  • HashSet的使用和源碼分析

  • 哈希表及原理

  • TreeSet的使用和源碼分析

  • 比較器Comparable和Comparator

  • HashMap的使用和源碼分析

  • TreeMap的使用和源碼分析

  • Iterator於ListIterator

  • Collections工具類

  • 舊集合類Vector、Hashtable

  • 集合總結和選擇依據

  • 泛型介面

  • 泛型類

  • 泛型方法

  • IO流

  • IO流的概念

  • IO流的分類及其原理分析

  • 文件流FlieInputStream、FileOutputStream

  • 緩沖流BufferedInputStream、BufferedOutputStream

  • 數據流ObjectInputStream、ObjectOutputStream

  • 序列化和反序列化

  • 轉換流InputStreamReader、OutputStreamWriter

  • 列印流PrintWrite和PrintStream

  • 數組流ByteArrayOutputStream、ByteArrayInputStream

  • 使用IO復制文件夾

  • 多線程

  • 進程和線程

  • 線程的創建與啟動

  • 創建線程的三種方式對比

  • 線程的生命周期

  • 線程式控制制

  • 多線程的安全問題與解決辦法

  • 線程的同步:同步代碼塊

  • 線程的同步:同步方法

  • 線程的同步:Lock鎖

  • 線程的死鎖問題

  • 線程通信

  • Condition

  • 線程的完整生命周期

  • 線程池ThreadPoolExecutor

  • ForkJoin框架

  • ThreadLocal類

  • 網路編程

  • 計算機網路基礎知識

  • 網路通信協議

  • OSI參考模型

  • TCP/IP參考模型

  • 數據的封裝與拆封原理解析

  • TCP協議

  • UDP協議

  • IP地址和埠號

  • URL和Socket

  • 使用TCP編程實現登錄功能

  • 使用UDP編程實現客服系統

  • 使用TCP編程實現文件上傳

  • 集合提升尋訓練

  • 手寫ArrayList

  • 手寫單鏈表

  • 手寫Linkedlist

  • 手寫HashMap

  • 手寫HashSet

  • 最新並發集合類

  • 多線程提升訓練

  • 生產者消費者模式擴展

  • Lock鎖和Condition

  • ReadWriteLock

  • BlockingQueue

  • volatile關鍵字

  • 多線程題目練習

  • JDK新特徵

  • 面試題詳解

  • 設計模式

  • 設計模式入門

  • 面向對象設計七大原則

  • 簡單工廠模式

  • 工廠方法模式

  • 單例模式

  • 原型模式

  • 裝飾模式

  • 適配器模式

  • 外觀模式

第二階段:資料庫

    MySQL基礎

  • 資料庫基礎知識

  • MySQL基礎知識

  • MySQL8新特徵

  • 安裝和卸載MySQL8

  • 使用navicat訪問資料庫

  • SQL語言入門

  • 創建資料庫表

  • DML

  • 修改刪除資料庫表

  • 表的完整性約束

  • 表的外鍵約束

  • DML擴展

  • MySQL 查詢語句

  • 基本select查詢

  • where子句

  • 函數

  • group by

  • having

  • SQL99-內連接查詢

  • SQL99-外連接查詢

  • SQL99-自連接查詢

  • SQL92-連接查詢

  • 不相關子查詢

  • 相關子查詢

  • 分頁查詢

  • 資料庫對象

  • 索引

  • 事務及其特徵

  • 事務的並發問題

  • 事務的隔離級別

  • 存儲過程

  • 導入導出數據

  • JDBC

  • JDBC概述

  • 使用JDBC完成添加/更新/刪除操作

  • 使用JDBC完成查詢操作

  • JDBC常用介面

  • 使用PreparedStatement

  • 使用事務完成銀行轉賬

  • 提取DBUtil工具類

  • 使用Properties讀寫屬性文件

  • 日誌框架log4j

  • 開發員工管理系統

第三階段:JavaEE階段

      Servlet

    • web開發概述

    • B/S和C/S架構簡介

    • HTTP協議

    • HTTP請求頭和響應頭

    • Tomcat安裝使用

    • Tomcat目錄結構

    • Servlet概述

    • Servlet快速入門

    • Servlet生命周期

    • 讀取配置文件信息

    • HttpServletRequest

    • HttpServletResponse

    • GET和POST區別

    • 解決中文亂碼

    • 請求轉發與重定向

    • 絕對路徑和相對路徑

    • Cookie

    • Session

    • ServletContext

    • ServletConfig

    • JSP

    • JSP技術介紹

    • JSP的執行過程

    • scriptlet

    • 表達式

    • 聲明

    • JSP指令元素

    • JSP動作元素

    • JSP隱式對象

    • JSP底層原理

    • 九大內置對象

    • 四個作用域

    • Servlet和JSP的關系和區別

    • MVC模式

    • 合並Servlet

    • JavaScript

    • JavaScript概述與特點

    • JS基礎語法

    • 函數

    • 數組

    • Math對象

    • String對象

    • Date對象

    • 事件event

    • 瀏覽器開發者工具

    • console

    • DOM和BOM

    • window

    • location

    • navigator

    • history

    • 認識DOM

    • DOM獲取元素

    • jQuery

    • jQuery簡介及快速入門

    • jQuery入口函數

    • jQuery對象與DOM對象互相轉換

    • 基本選擇器

    • 屬性選擇器

    • 位置選擇器

    • 表單選擇器

    • 內容選擇器

    • jQuery事件

    • jQuery動畫效果

    • DOM操作-操作文本

    • DOM操作-操作屬性

    • DOM操作-操作元素

    • 直接操作CSS樣式

    • 操作CSS類樣式

    • 購物車案例

    • 表單驗證

    • 正則表達式

    • EL+JSTL+過濾器+監聽器

    • EL介紹及使用

    • EL取值原理

    • EL隱含對象

    • EL邏輯運算

    • JSTL介紹-核心標簽庫

    • JSTL核心標簽庫

    • JSTL-格式標簽庫

    • Filter原理

    • Filter生命周期

    • Filter鏈

    • Filter登錄驗證

    • Filter許可權控制

    • Listener概述及分類

    • Listener監聽在線用戶

    • Ajax和JSON

    • Ajax非同步請求和局部刷新的原理

    • 使用原生Ajax驗證用戶唯一性

    • jQuery Ajax

    • JSON的格式和使用

    • 主要JSON解析器

    • Jackson的使用

    • Jackson的實現原理

    • 使用jQuery Ajax實現三級聯動

    • 使用jQuery Ajax實現自動補全

    • 分頁和文件上傳/下載

    • 分頁的意義

    • 理解分頁工具類

    • 實現基本分頁

    • 實現帶查詢的分頁

    • 文件上傳原理

    • 文件上傳API

    • 實現文件上傳

    • 文件下載原理

    • 文件下載響應頭

    • 實現文件下載

    第四階段:框架階段

      MyBatis

    • MyBatis概述

    • MyBatis入門配置

    • 基本的CRUD操作

    • 核心配置文件詳解

    • Mapper.xml基礎詳解

    • 模糊查詢

    • 分頁的實現及插件PageHelper的使用

    • 動態sql+sql片段的使用

    • 一對多、多對一的關系處理

    • 註解的使用

    • 一級緩存和二級緩存說明及使用

    • generator逆向工程使用

    • Spring

    • Spring框架簡介

    • Spring官方壓縮包目錄介紹

    • Spring環境搭建

    • IoC/DI容器詳解

    • Spring創建Bean的三種方式

    • scope屬性講解

    • Spring中幾種注入方式

    • 靜態代理設計模式

    • 動態代理設計模式

    • AOP詳解

    • AOP中幾種通知類型

    • AOP兩種實現方式

    • 自動注入

    • 聲明式事務

    • 事務傳播行為

    • 事務隔離級別

    • 只讀事務

    • 事務回滾

    • 基於註解式配置

    • 常用註解

    • Spring 整合MyBatis

    • i18n

    • Spring整合Junit

    • SpringMVC

    • MVC架構模式

    • 手寫MVC框架

    • SpringMVC簡介

    • SpringMVC運行原理

    • 基於配置文件方式搭建環境

    • 基於註解方式搭建環境

    • SpringMVC的跳轉及視圖解析器的配置

    • SpringMVC和Ajax的交互

    • Spring 參數注入

    • SpringMVC作用域傳值

    • 視圖解析器

    • 文件下載

    • 文件上傳

    • Spring攔截器/攔截器棧

    • 登錄狀態驗證

    • SpringMVC容器和Spring容器介紹

    • 異常處理4種方式

    • SpringMVC5其他常用註解

    • Maven

    • Maven簡介

    • Maven原理

    • Linux安裝及注意事項

    • Maven項目結構

    • POM模型

    • Maven 中項目類型

    • 創建WAR類型的Maven項目

    • scope屬性可取值

    • SSM項目拆分演示

    • Maven的常見插件講解

    • 熱部署

    • BootStrap

    • BootStrap概述

    • BootStrap柵格系統

    • BootStrap常用全局CSS樣式

    • 常用組件

    • 常用JavaScript插件

    • RBAC

    • RBAC概述

    • RBAC發展歷史

    • 基於RBAC的資料庫表設計

    • URL攔截實現

    • 動態菜單實現

    • 密碼學

    第五階段:前後端分離階段

      Spring Boot

    • Spring Boot簡介

    • Spring Boot實現Spring MVC

    • 配置文件順序及類型講解

    • Spring Boot項目結構

    • Spring Boot 整合MyBatis

    • Spring Boot 整合Druid

    • Spring Boot 整合PageHelper

    • Spring Boot 整合logback

    • Spring Boot 整合JSP

    • Spring Boot 整合Thymeleaf

    • Spring Boot 開發者工具

    • Spring Boot 異常顯示頁面

    • Spring Boot 整合Junit4

    • Spring Boot 項目打包部署

    • Spring Boot 整合Quartz

    • Spring Boot 中Interceptor使用

    • Spring Boot Actuator

    • HikariCP

    • Logback

    • Logback簡介

    • Logback依賴說明

    • Logback 配置文件講解

    • Logback 控制台輸出

    • Logback 文件輸出

    • Logback 資料庫輸出

    • Spring Security

    • Spring Security簡介

    • Spring Security架構原理

    • 什麼是認證和授權

    • 基礎環境搭建

    • 自定義認證流程

    • UserDetailsService和UserDetails

    • PasswordEncoder

    • 自定義認證結果

    • 授權-訪問路徑匹配方式

    • 授權-許可權管理

    • 基於註解實現許可權管理

    • Thymeleaf整合Security許可權管理

    • Rememberme 實現

    • 退出實現

    • CSRF

    • Linux - CentOS 8

    • Linux簡介

    • VMWare安裝及使用

    • Linux安裝及注意事項

    • Linux目錄結構及路徑

    • Linux常用命令

    • VMWare常用配置

    • XShell安裝及使用

    • Xftp安裝及使用

    • JDK解壓版配置步驟

    • Tomcat配置步驟

    • 安裝MySQL

    • WAR包部署

    • Docker

    • Docker簡介

    • Docker與VM對比

    • Docker特點

    • Docker架構

    • Docker安裝與啟動

    • 鏡像加速器配置

    • Docker鏡像操作常用命令

    • Docker容器操作常用命令

    • DockerFile

    • 搭建本地鏡像倉庫

    • 推送鏡像到阿里雲及本地倉庫

    • Docker容器生命周期

    • Docker數據管理

    • Redis

    • Redis簡介

    • Redis 單機版安裝

    • Redis 數據類型介紹

    • Redis 常用命令

    • Redis 持久化方案

    • Redis 的主從搭建

    • Redis的哨兵搭建

    • Redis 的集群搭建

    • Spring Boot整合Spring Data Redis

    • Redis的緩存穿透

    • Redis的緩存雪崩

    • Redis的緩存擊穿

    • Vue

    • vsCode和插件安裝

    • webpack介紹

    • Vue項目創建

    • Vue模板語法

    • Vue條件渲染

    • Vue列表渲染

    • Vue事件處理

    • Vue計算屬性

    • Vue Class與Style

    • Vue表單處理

    • Vue組件

    • Vue組件生命周期

    • Vue 路由配置

    • Vue Axios網路請求

    • Vue跨域處理

    • Vue Element

    • Mock.js

    • Swagger

    • Swagger2簡介

    • Springfox

    • Swagger2基本用法

    • Swagger-UI用法

    • Swagger2配置

    • Swagger2常用配置

    • Git/GitEE

    • Git的下載和安裝

    • Git和SVN對比

    • Git創建版本庫

    • Git版本控制

    • Git遠程倉庫

    • Git分支管理

    • Git標簽管理

    • GitEE建庫

    • GitEE 連接及使用

    • GitEE 組員及管理員配置

    第六階段:微服務架構

      FastDFS

    • 分布式文件系統概述

    • FastDFS簡介

    • FastDFS架構

    • Tracker Server

    • Storage Server

    • FastDFS安裝

    • 安裝帶有FastDFS模塊的Nginx

    • Fastdfs-java-client的使用

    • 創建Fastdfs-java-client工具類

    • 實現文件上傳與下載

    • KindEditor介紹

    • 通過KindEditor實現文件上傳並回顯

    • RabbitMQ

    • AMQP簡介

    • RabbitMQ簡介

    • 安裝Erlang

    • 安裝RabbitMQ

    • RabbitMQ原理

    • Spring Boot 集成RabbitMQ

    • RabbitMQ的交換器

    • Spring AMQP的使用

    • Spring Cloud Netflix Eureka

    • Eureka簡介

    • Eureka和Zookeeper 對比

    • 搭建Eureka注冊中心

    • Eureka 服務管理平台介紹

    • 搭建高可用集群

    • 集群原理

    • Eureka優雅停服

    • Spring Cloud Netflix Ribbon

    • Ribbon簡介

    • 集中式與進程內負載均衡區別

    • Ribbon常見的負載均衡策略

    • Ribbon的點對點直連

    • Spring Cloud OpenFeign

    • Feign簡介

    • Feign的請求參數處理

    • Feign的性能優化

    • 配置Feign負載均衡請求超時時間

    • Spring Cloud Netflix Hystrix

    • Hystrix簡介

    • 服務降級

    • 服務熔斷

    • 請求緩存

    • Feign的雪崩處理

    • 可視化的數據監控Hystrix-dashboard

    • Spring Cloud Gateway

    • Spring Cloud Gateway簡介

    • Gateway基於配置文件實現路由功能

    • Gateway基於配置類實現路由功能

    • Gateway中內置過濾器的使用

    • Gateway中自定義GatewayFilter過濾器的使用

    • Gateway中自定義GlobalFilter過濾器的使用

    • Gateway中使用過濾器實現鑒權

    • Gateway結合Hystrix實現熔斷功能

    • Spring Cloud Config

    • 什麼是分布式配置中心

    • 創建配置中心服務端

    • 創建配置中心客戶端

    • 基於Gitee存儲配置文件

    • 基於分布式配置中心實現熱刷新

    • Spring Cloud Bus

    • 什麼是消息匯流排

    • 基於消息匯流排實現全局熱刷新

    • ELK

    • ElasticSearch介紹

    • ElasticSearch單機版安裝

    • ElasticSearch集群版安裝

    • ElasticSearch索引管理

    • ElasticSearch文檔管理

    • ElasticSearch文檔搜索

    • SpringDataElasticSearch訪問ElasticSearch

    • LogStash介紹

    • 基於LogStash收集系統日誌

    • TX-LCN

    • 分布式事務簡介

    • 分布式事務兩大理論依據

    • 分布式事務常見解決方案

    • LCN簡介

    • TX-LCN的3種模式

    • LCN原理

    • LCN環境搭建及Demo演示

    • Nginx

    • Nginx的簡介

    • 什麼是正向代理、反向代理

    • Nginx的安裝

    • Nginx配置虛擬主機

    • Nginx配置服務的反向代理

    • Nginx的負載均衡配置

    • Spring Session

    • Spring Session介紹

    • 通過Spring Session共享session中的數據

    • 通過Spring Session同步自定義對象

    • Spring Session的Redis存儲結構

    • 設置Session失效時間

    • Spring Session序列化器

    • MyBatis Plus

    • MyBatis Plus簡介

    • Spring整合MyBatis Plus

    • MyBatis Plus的全局策略配置

    • MyBatis 的主鍵生成策略

    • MyBatis Plus的CRUD操作

    • 條件構造器EntityWrapper講解

    • MyBatis Plus的分頁插件配置

    • MyBatis Plus的分頁查詢

    • MyBatis Plus的其他插件講解

    • MyBatis Plus的代碼生成器講解

    • MyBatis Plus的公共欄位自動填充

    • ShardingSphere

    • 簡介

    • 資料庫切分方式

    • 基本概念

    • MySQL主從配置

    • 切片規則

    • 讀寫分離

    • 實現分庫分表

    第七階段:雲服務階段

      Kafka

    • Kafka簡介

    • Kafka架構

    • 分區和日誌

    • Kafka單機安裝

    • Kafka集群配置

    • 自定義分區

    • 自動控制

    • Spring for Apache Kafka

    • Zookeeper

    • Zookeeper簡介和安裝

    • Zookeeper 數據模型

    • Zookeeper 單機版安裝

    • Zookeeper常見命令

    • ZClient操作Zookeeper

    • Zookeeper 集群版安裝

    • Zookeeper 客戶端常用命令

    • Zookeeper分布式鎖

    • RPC

    • 什麼是分布式架構

    • 什麼是RFC、RPC

    • HttpClient實現RPC

    • RestTemplate

    • RMI實現RPC

    • 基於Zookeeper實現RPC 遠程過程調用

    • Dubbo

    • SOA架構介紹

    • Dubbo簡介

    • Dubbo結構圖

    • Dubbo注冊中心

    • Dubbo 支持的協議

    • Dubbo 注冊中心搭建

    • Spring Boot 整合 Dubbo

    • Admin管理界面

    • Dubbo 搭建高可用集群

    • Dubbo 負載均衡

    • Spring Cloud Alibaba Dubbo

    • Spring Cloud Alibaba Dubbo簡介

    • 基於Zookeeper發布服務

    • 基於Zookeeper訂閱服務

    • 實現遠程服務調用處理

    • Spring Cloud Alibaba Nacos

    • Spring Cloud Alibaba Nacos簡介

    • 搭建Nacos伺服器

    • 基於Nacos發布|訂閱服務

    • 實現遠程服務調用處理

    • Nacos Config配置中心

    • Spring Cloud Alibaba Sentinel

    • Spring Cloud Alibaba Sentinel簡介

    • 搭建Sentinel伺服器

    • Sentinel-實時監控

    • Sentinel-簇點鏈路

    • Sentinel-授權規則

    • Sentinel-系統規則

    • @SentinelResource註解

    • 持久化規則

    • Spring Cloud Alibaba Seata

    • Spring Cloud Alibaba Seata簡介

    • 搭建Seata伺服器

    • Seata支持的事務模式-AT模式

    • Seata支持的事務模式-TCC模式

    • Seata支持的事務模式-Saga模式

    • Seata支持的事務模式-XA模式

    • SeataAT事務模式應用方式

    • SeataTCC事務模式應用方式

    『拾』 spring整合junit測試出現版本沖突問題

    第一次在寫文章,先從簡單的入手吧!

    環境:JDK1.8 Spring3.x junit4.x

    運行一個簡單的測試方法:

    applicationContext.xml配置如下(最簡單情況):

    報如下錯誤:

    一開始一直糾結於上面的錯誤,說spring配置文件找不到,可是配置文件絕對沒有配錯,如下圖:

    找了大半天,找不出來,後面發現,異常信息後面還有一個cause by的異常信息,如下:

    注意劃紅線框部分,後經google查詢得到如下回復(在國外StackOverFlow網站):

    鏈接一: https://stackoverflow.com/questions/25403911/illegalargumentexception-at-org-springframework-asm-classreader-when-initializin

    鏈接二: https://stackoverflow.com/questions/24128045/spring-context-initialization-failed-with-java-lang-illegalargumentexception-whi

    以上兩個回答說明以下問題:

    spring3.x需要使用JDK1.7以下版本

    spring4.x需要使用JDK1.8以上版本

    通過以上結論,重新配置eclipse的環境,就可以正常運行了。

    所以解決問題的時候一定要看清楚異常堆棧信息,頃伏否則很容易誤入歧途,走彎路(這次還直接去看spring-test源碼包,看到底是怎麼回事,雀遲攜後旦物面發現自己白白的浪費時間了)

    熱點內容
    只狼和看門狗哪個配置高 發布:2025-05-17 12:50:21 瀏覽:205
    扁桃玩的伺服器地址 發布:2025-05-17 12:18:25 瀏覽:509
    u盤上傳歌 發布:2025-05-17 12:14:51 瀏覽:613
    入門c語言設計 發布:2025-05-17 12:08:31 瀏覽:41
    c3演算法 發布:2025-05-17 12:04:19 瀏覽:365
    phprecv 發布:2025-05-17 11:55:00 瀏覽:613
    福建時鍾監控網關伺服器雲主機 發布:2025-05-17 11:54:28 瀏覽:251
    c資料庫壓縮 發布:2025-05-17 11:39:22 瀏覽:965
    安卓手機如何連接音響功放 發布:2025-05-17 11:37:48 瀏覽:965
    破解exe加密視頻 發布:2025-05-17 11:23:41 瀏覽:981