用于測試的java代碼 測試開發和java開發

jmeter用java代碼怎樣編寫接口測試源碼

我們在做性能測試時,有時需要自己編寫測試腳本,很多測試工具都支持自定義編寫測試腳本,比如LoadRunner就有很多自定義腳本的協議,比如"C?Vuser","Java?Vuser"等協議.同樣,Jmeter也支持自定義編寫的測試代碼,不過與LoadRunner不同的是,Jmeter沒有自帶編譯器,需要借助第三方編譯器才能實現.下面舉一個簡單的Java自定義測試代碼例子,使用Java編譯器編寫測試代碼(Java編譯器可以用Eclipse,JBulider等),實現功能為:在測試前輸入任意一個字符串,然后判斷該字符串的長度是否大于5,如果大于則測試結果成功,否則測試結果位失敗,然后在放到Jmeter中模擬10個用戶測試,同時運行這段代碼,具體實現如下:

創新互聯建站專注于仙游企業網站建設,響應式網站,電子商務商城網站建設。仙游網站建設公司,為仙游等地區提供建站服務。全流程按需求定制制作,專業設計,全程項目跟蹤,創新互聯建站專業和態度為您提供的服務

1.打開Java編譯器,新建一個項目"TestLength",然后新建一個包"app".

2.從Jmeter的安裝目錄lib/ext中拷貝兩個文件"ApacheJMeter_core.jar"和"ApacheJMeter_java.jar"到"Tester"的項目中,然后引入這兩個JAR文件.(具體的引入方法參考各個Java編譯器的使用方法)

3.在"app"包中新建一個類,名字叫"TestLength",不過這個類要繼承"AbstractJavaSamplerClient"類,如果項目引入步驟二中的兩個文件,就可以找到"AbstractJavaSamplerClient"類了.

4."TestLength"類在繼承"AbstractJavaSamplerClient"類的同時也會繼承四個方法,分別是"getDefaultParameters","setupTest","runTest"和"teardownTest"方法."getDefaultParameters"方法主要用于設置傳入的參數;"setupTest"方法為初始化方法,用于初始化性能測試時的每個線程."runTest"方法為性能測試時的線程運行體;"teardownTest"方法為測試結束方法,用于結束性能測試中的每個線程.

5.具體實現代碼如下:

package?app;

import?org.apache.jmeter.config.Arguments;

import?org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

import?org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

import?org.apache.jmeter.samplers.SampleResult;

import?com.passpod.core.t8.*;

/**

*?@author樂以忘憂

*

*?TODO?To?change?the?template?for?this?generated?type?comment?go?to

*?Window?-?Preferences?-?Java?-?Code?Style?-?Code?Templates

*/

public?class?TestLength?extends?AbstractJavaSamplerClient{

private?SampleResult?results;

private?String?testStr;

//初始化方法,實際運行時每個線程僅執行一次,在測試方法運行前執行,類似于LoadRunner中的init方法

public?void?setupTest(JavaSamplerContext?arg0)?{

results?=?new?SampleResult();

testStr?=?arg0.getParameter("testString",?"");

if?(testStr?!=?null??testStr.length()??0)?{

results.setSamplerData(testStr);

}

}

//設置傳入的參數,可以設置多個,已設置的參數會顯示到Jmeter的參數列表中

public?Arguments?getDefaultParameters()?{

Arguments?params?=?new?Arguments();

params.addArgument("testStr",?"");???//定義一個參數,顯示到Jmeter的參數列表中,第一個參數為參數默認的顯示名稱,第二個參數為默認值

return?params;

}

//測試執行的循環體,根據線程數和循環次數的不同可執行多次,類似于LoadRunner中的Action方法

public?SampleResult?runTest(JavaSamplerContext?arg0)?{

int?len?=?0;

results.sampleStart();?????//定義一個事務,表示這是事務的起始點,類似于LoadRunner的lr.start_transaction

len?=?testStr.length();

results.sampleEnd();?????//定義一個事務,表示這是事務的結束點,類似于LoadRunner的lr.end_transaction

if(len??5){

System.out.println(testStr);

results.setSuccessful(false);???//用于設置運行結果的成功或失敗,如果是"false"則表示結果失敗,否則則表示成功

}else???

results.setSuccessful(true);

return?results;

}

//結束方法,實際運行時每個線程僅執行一次,在測試方法運行結束后執行,類似于LoadRunner中的end方法

public?void?teardownTest(JavaSamplerContext?arg0)?{

}

}

6.把上面的例子打包,然后把生成的"TestLength.jar"文件拷貝到Jmeter的安裝目錄lib/ext下.

7.運行Jmeter,添加一個線程組,然后在該線程組下面添加一個Java請求(在Sampler中),在Java請求的類名稱中選擇咱們剛創建的類"app.TestLength",在下面參數列表的"testStr"后面輸入要測試的字符串,然后添加一個監聽器(聚合報告),設置一下模擬的用戶數就可以測試了.如果測試不成功,Jmeter會在它自己個輸出框中拋出這個字符串.

通過上面的例子我們可以發現,使用Jmeter自定義Java測試代碼,配合Jmeter自帶的函數,就可以實現出LoadRunner中"Java?Vuser"協議的絕大多數功能,而且是沒有用戶數限制和完全免費的(嘿嘿).上面的例子非常簡單,而且沒有任何實際意義,只是一個簡單的Jmeter測試代碼示例,用于拋磚引玉,希望大家一起交流,共同?進步.

怎么寫Java測試代碼?

可以用main函數和JUnit來寫測試代碼。main是最早使用的,但是現在更流行的測試工具是JUnit。

JUnit是一個Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源于Kent Beck的sUnit的xUnit家族中最為成功的一個。 JUnit有它自己的JUnit擴展生態圈。多數Java的開發環境都已經集成了JUnit作為單元測試的工具。

下面是一些具體的編寫測試代碼的技巧或較好的實踐方法:

1. 不要用TestCase的構造函數初始化Fixture,而要用setUp()和tearDown()方法。

2. 不要依賴或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。

3. 避免編寫有副作用的TestCase。例如:如果隨后的測試依賴于某些特定的交易數據,就不要提交交易數據。簡單的回滾就可以了。

4. 當繼承一個測試類時,記得調用父類的setUp()和tearDown()方法。

5. 將測試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)

6. 測試類和測試方法應該有一致的命名方案。如在工作類名前加上test從而形成測試類名。

7. 確保測試與時間無關,不要依賴使用過期的數據進行測試。導致在隨后的維護過程中很難重現測試。

8. 如果你編寫的軟件面向國際市場,編寫測試時要考慮國際化的因素。不要僅用母語的Locale進行測試。

9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。

10.測試要盡可能地小,執行速度快。

11.不要硬性規定數據文件的路徑。

12.利用Junit 的自動異常處理書寫簡潔的測試代碼

事實上在Junit 中使用try-catch 來捕獲異常是沒有必要的,Junit 會自動捕獲異常。那些沒有被捕獲的異常就被當成錯誤處理。

13. 充分利用Junit 的assert/fail 方法

assertSame()用來測試兩個引用是否指向同一個對象

assertEquals()用來測試兩個對象是否相等

14. 確保測試代碼與時間無關

15. 使用文檔生成器做測試文檔。

五個方法讓你做更好的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。使用工具可以提高測試質量,因為這些工具可以指出未經測試的代碼區域,讓你能夠開發開發額外的測試來覆蓋這些領域。

網站標題:用于測試的java代碼 測試開發和java開發
文章出自:http://m.kartarina.com/article4/hgsjie.html

成都網站建設公司_創新互聯,為您提供網站改版Google動態網站網頁設計公司品牌網站設計標簽優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司
主站蜘蛛池模板: 久久男人Av资源网站无码软件 | 久久久久亚洲av无码专区蜜芽| 亚洲国产精品成人AV无码久久综合影院| 日韩精品人妻系列无码av东京| 曰韩精品无码一区二区三区| 亚洲区日韩区无码区| 伊人久久无码中文字幕| 精品人妻无码区二区三区| 亚洲av无码国产精品夜色午夜| 无码人妻丰满熟妇啪啪网站| 无码A级毛片免费视频内谢| 日韩放荡少妇无码视频| 亚洲AV无码国产丝袜在线观看| MM1313亚洲精品无码久久| 亚洲天然素人无码专区| 久久亚洲日韩看片无码| 成在人线av无码免费高潮水| 国产成人综合日韩精品无码不卡| 亚洲AV无码久久久久网站蜜桃| 国产成人亚洲综合无码精品| 国产激情无码一区二区app| 爆乳无码AV一区二区三区| 高清无码午夜福利在线观看| 熟妇人妻无码中文字幕| 中文有码vs无码人妻| 中国少妇无码专区| 久久国产三级无码一区二区| 久久无码av三级| 蜜桃臀AV高潮无码| 国产AV无码专区亚洲AVJULIA| 亚洲中文字幕无码专区| 亚洲一本大道无码av天堂 | 久久精品国产亚洲AV无码偷窥| 日韩综合无码一区二区| 无码人妻AⅤ一区二区三区水密桃| 亚洲精品一级无码鲁丝片| 无码熟妇αⅴ人妻又粗又大| 久久久久亚洲AV无码去区首| 18禁超污无遮挡无码免费网站国产| 亚洲精品无码专区在线播放| 无码综合天天久久综合网|