軟件測試——質量的守護

軟件測試是軟件開發流程的守門員,對於商用軟件來講的重要性毋庸置疑,大型公司每每在軟件測試的階段投入大量的成原本保證軟件html

的穩定性,小型的軟件開發也須要軟件測試環節對軟件進行修改和優化。java

按照開發階段劃分,軟件測試可分爲單元測試、集成測試、系統測試和驗收測試web

1、白盒測試正則表達式

測試環境 window10,eclipse Java 2019數據庫

測試工具:junit,ant,SourceMonitor,EclEmmaapi

a)Junit使用示例瀏覽器

種類:單元測試安全

下載:如使用eclipse環境,無需下載服務器

   右鍵工程 -> Properties -> Java Build Path -> Add Library -> 選擇JUniteclipse

出現下圖即爲成功:

示例程序代碼:

package calcue; public class calculate { public int Add(int a,int b) {//求和
        return a+b; } public int Subtract(int a,int b) {// a-b
        return a-b; } public double Factor(int n) {//求階乘
        int i; double sum=1; for(i=1;i<=n;i++) sum*=i; if (n==0 || n==1) return 1; else return sum; } public int Divisor(int a,int b) {//求最大公約數
        int tt=1; for (int i=1; i<=a;i++) if ( a%i == 0 && b%i ==0) tt= i; return tt; } }

示例測試代碼:

package calcue; import static org.junit.Assert.*; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; public class calculateTest { calculate aa = new calculate(); //測試用例
 @Test void testAdd() { assertEquals(3,aa.Add(1,2)); System.out.println("test0"); } @Test void testFactor() { assertEquals(Double.valueOf(120),aa.Factor(5)); System.out.println("test1"); } @Test void testDivisor() { assertEquals(3,aa.Divisor(15,27)); System.out.println("test2"); } }

 進行預期(測試代碼)和實際運行結果的自動比對:

效果以下:

紅色框選處分別爲各測試項的成功率和測試順序:

更改指望進行報錯提醒:

Junit使用總結:

1.各測試方法執行順序:@BeforeClass ->@Before ->@Test ->@After ->@AfterClass (順序不惟一)

2.測試方法上必須使用@Test

3.測試方法必須使用 public void進行修飾

4.新建一個源代碼目錄來存放測試代碼

5.測試類的包應該和被測試類的包同樣

6.測試單元中的每一個方法必定要可以獨立測試,其方法不能有任何依賴

 

b)EclEmma使用示例(使用與上述相同代碼)

種類:覆蓋率測試

 

*右鍵package -> Export Session -> 選擇Coverage Report能夠生成HTML文件

*HTML報告能夠逐層展開,能夠經過點擊方法查看代碼覆蓋狀況

各列名含義:

Missed Instruction:代碼覆蓋率

Missed Branches:邏輯分支覆蓋率

Missed Cxty:判斷執行數

Missed Lines:代碼行數

Methods:方法個數

 

*能夠經過點擊方法查看源碼

 

EclEmma工具:https://www.cnblogs.com/Ming8006/p/5811425.html

 

 c)Ant使用示例

種類:自動報告生成工具

創建方法:右鍵項目名 -> 點擊Properties -> 選擇Builders -> 選擇Ant Builder

*eclipse集成環境會自動生成相匹配的build.xml文件,相比於手動配置更加便捷

Ant工具:https://blog.csdn.net/qq_31896043/article/details/52185220

d)SourceMoniter

種類:複雜度分析工具

當代碼過於簡單,測試無效,以下圖:

使用流程:

檢測全部代碼的複雜度總和:

檢測的代碼按照類分的詳細信息:(雙擊總和表)

Source Monitor工具:https://www.cnblogs.com/xuehanyu/p/4520965.html

Source Monitor使用總結:

1.代碼兼容性好,支持CC++C#JavaVBDelphiHTML。

2.針對不一樣的語言,輸出不一樣的代碼度量值。

 

2、服務器測試

在搭建軟件平臺的過程當中,要使用到服務器,故服務器的性能好壞也影響到軟件的性能。

 

測試環境:

Windows7 i5-4590CPU @ 3.30GHz;RAM:8GB;64位操做系統

JDK 1.8

測試軟件 :Apache JMeter 3.2

FTP服務軟件:Quick Easy FTP Server

 

Quick Easy FTP Server是一個全中文FTP服務器軟件,反應迅速,操做方便,實現了標準FTP服務器所具備的功能。

該軟件具備如下特色:

  1.軟件安裝程序極小,但性能絕不遜色於專業的那些FTP服務器軟件

  2.功能全面.具有完整的賬戶管理,便捷的服務器配置,安全性設置,在線用戶信息, 服務器日誌,實時數據統計,檢軟件界面查更新包羅萬象

  3.支持斷點續傳

  4.完整的幫助系統

  5.全中文,更適合中國人使用。

界面

 

 

簡單操做

在瀏覽器中搜索 FTP:\\192.168.1.101 (服務器IP)

展現服務器根目錄路徑下所存儲的文件信息

最開始的根目錄路徑 G:\QB\work\課程論文,包含我存儲的兩個文檔

 

 

 

在根路徑下添加文件,刷新網頁,查看結果。

顯示text.doc文件

 

 

 Jmeter

 簡要概述

  Apache JMeter是100%的純java桌面應用程序,被設計爲用於測試客戶 /服務端結構的軟件(例如web應用程序)。它能夠用來測試靜態和動態資 源的性能,例如:靜態文件,Java Servlet,CGI Scripts,Java Object,數 據庫和FTP服務器等等。JMeter可用於模擬大量負載來測試一臺服務器,網 絡或者對象的健壯性或者分析不一樣負載下的總體性能。
     同時,JMeter能夠幫助你對你的應用程序進行迴歸測試。經過你建立 的測試腳本和assertions來驗證你的程序返回了所期待的值。爲了更高的 適應性,JMeter容許你使用正則表達式來建立這些assertions.

 

優勢:

1.開源,他是一款開源的免費軟件,使用它你不須要支付任何費用,

2. 小巧,相比LR的龐大(最新LR11將近4GB),它很是小巧,不需 要安裝,但須要JDK環境,由於它是使用java開發的工具。

 3.功能強大,jmeter設計之初只是一個簡單的web性能測試工具,但 通過不段的更新擴展,如今能夠完成數據庫、FTP、LDAP、WebService等方 面的測試。由於它的開源性,固然你也能夠根據本身的需求擴展它的功能。

 

簡單使用

添加線程組->添加FTP默認請求->添加FTP請求->添加查看結果樹

 

 

FTP請求配置:

 

 

 

服務器IP和端口號:

quick easy ftp服務器配置

 

 

 

登陸配置:

quick easy ftp用戶帳號管理

 

 

 

測試上傳操做:

本地文件內容設置,如圖

 

 

遠程文件內容設置爲空:

 

 

上傳操做執行完成:

 

 

 

最開始選擇了get,下載操做,而遠程文件爲空,無下載資源,故FTP請求 失敗。

更改成put操做。

遠程文件更新,結果如圖:

 

 

 

清空本地文件

 

 

 

遠程文件內容如圖:

 

 

 

更改操做爲get,下載操做

下載成功,本地文件結果如圖;

 

 

 

探究下載過程的服務器的實際動做

查看quick easy ftp的服務器日誌

 

 

爲了便於分辨,將線程數改成1

 

 

得到一次完整的執行過程

 

 

其中開始和結束都爲quick easy ftp的歡迎和結束詞

 

 

修改驗證:

 

 

發生更改:

 

 

 

解讀日誌中出現的命令

 

1.USER命令:(訪問命令)

格式:USER<username>

功能:制定登陸的用戶名,以便服務器進行身份驗證

2.PASS命令:(訪問命令)

格式:PASS<password>

功能:指定用戶口令,該命令必須跟在登陸命令以後

3.PASV命令:(模式設置命令)

格式:pasv

功能:該命令告訴FTP服務器,讓FTP服務器在指定的數據端口進行監聽, 進入被動接收請求的狀態

4.RETR命令:(文件傳輸命令)

格式:RETR<filename>

功能:請求服務器將指定路徑內的文件複製到客戶端,也即下載指定的文件

5.QUIT命令:(訪問命令)

格式:QUIT

功能:關閉與服務器的鏈接

 

若是把同時發出5個請求,是執行5次這些指令嗎?

線程數設爲5

 

請求成功:

 

查看日誌,5次執行的指令沒有變化。

 

將模式改成上傳進行比較

 

請求成功

 

查看日誌:

 

 

能夠看到僅更改了一個指令:

6.STOR命令:(文件傳輸命令)

格式:STOR<filename>

功能:上傳一個指定的文件,並將其存儲在指定的位置

 

 jmeter測試quick easy ftp server的上傳下載性能(僅提供一次示例,將線程數更改重複操做便可)

 

B) 130進程:

請求成功:

 

 

彙總報告:

 

 

彙總圖:

 

 

圖形結果:

 

表格結果:

 

Quick easy ftp server使用總結:

Quick easy FTP Server做爲一個輕量級的小型FTP服務器,功能全面,操做方面,在訪問額度爲1~50時,能夠保持較好的穩定性,在訪問額度達到100時,下載的異常率僅爲3.73%,適合做爲本次小組項目的臨時服務器,後續若項目落地,服務器必須進行更換。

相關文章
相關標籤/搜索