軟件測試是軟件開發流程的守門員,對於商用軟件來講的重要性毋庸置疑,大型公司每每在軟件測試的階段投入大量的成原本保證軟件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.代碼兼容性好,支持C、C++、C#、Java、VB、Delphi和HTML。
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) 1秒30進程:
請求成功:
彙總報告:
彙總圖:
圖形結果:
表格結果:
Quick easy ftp server使用總結:
Quick easy FTP Server做爲一個輕量級的小型FTP服務器,功能全面,操做方面,在訪問額度爲1~50時,能夠保持較好的穩定性,在訪問額度達到100時,下載的異常率僅爲3.73%,適合做爲本次小組項目的臨時服務器,後續若項目落地,服務器必須進行更換。