關於自動化測試,你瞭解多少?

對於網絡設備的測試來說,想必以下情況您也遇到過。

1.公司新版軟件即將發佈,上個版本剛剛測試完的N個測試用例又得再跑一次!
2.公司產品做出廠前測試,同一批次的N個產品,相同的指標來來回回反反覆覆重複測試!!
3.本想休息時間追個劇,測試任務卻還在忙,來回切屏苦不堪言!!!

好,接下來就給大家介紹下自動化測試。

一、自動化測試語言發展

要做自動化測試,最先就得考慮以哪種腳本語言去開發。像Tcl語言,它是由John Ousterhout創建,最早稱爲“工具命令語言(Tool Command Language)”。作爲老牌的自動化測試語言,最初就是基於整合測試系統而開發出來的。Tcl易上手,便於學習,而且功能強大,經常被用於快速原型開發、腳本編程、 GUI和自動化測試等等方面。Tcl是一個解釋型語言,直接對每條語句順序解釋執行,面向過程,需要由iTcl(incrTcl)擴展包及8.6版本提供面向對象支持,thread擴展包支持多線程。

還有後來居上的Python語言,也深受大家的追捧。在去年TOIBE發佈的編程語言排行榜上,Python語言已經排到第三,僅次於Java和C語言,C++緊隨其後。Python作爲一種解釋型語言,面向過程且面向對象,也支持多線程。大家追捧的原因就是因爲Python語言代碼簡潔、語法簡單,同樣的功能,Python的代碼量可能只是其他語言的1/10.。所以Python語言也被廣泛應用於系統編程、人工智能、Web開發、大數據和雲計算,當然也是自動化測試的主要腳本語言之一。除此之外,也有使用Perl、C++、Ruby、Java等作爲自動化測試的編程語言。

二、自動化測試優點

1、縮短測試周期(自動化測試能夠有效的解決軟件產品反覆迭代迴歸測試耗時的問題)
· 測試執行速度快
· 7*24小時進行迴歸測試
· 測試期間可無人執勤

2、避免人爲錯誤(傳統測試以手工測試爲主,手工測試完全依賴於人的操作與判斷,這給測試帶來了人爲風險,具體體現在以下幾點)
· 輸入數據錯誤
· 用例執行錯誤
· 測試報告數據錯誤
· 忽略執行某些用例
· 忽略設置預置條件
· 錯誤的理解被測系統的行爲

3、輕鬆獲取覆蓋率(在較好的自動化框架下,可以更好的管理測試進度,執行完自動化測試腳本後,可以輕鬆獲取代碼覆蓋率,進而根據覆蓋情況分析,進行測試用例補充)
作爲中國領先的網絡測試設備和解決方案供應商,信而泰推出的新一代軟件測試平臺Renix,可以爲您提供完善的自動化測試功能(5大類)。
· Renix Tcl/Python API:便於編寫腳本,進行自動化測試;
· GUI To Tcl/Python:便於將圖像界面的操作,保存成可執行的測試腳本;
· XAT自動化測試軟件:便於集中管理測試腳本,連接測試環境;
· 智能腳本工具(Smart Script):便於配置測試的命令;
· VIP服務:可以根據您的需求,定製自動化服務。

友情提示:本文篇幅較長,可能會佔用您一會兒時間閱讀,但小編強烈建議您抽時間讀完,因爲純屬小編嘔心瀝血之作,專治各種不必要的加班!

接下來爲大家詳細介紹信而泰自動化測試5大類功能。

一、Renix Tcl/Python API

應用程序接口(API)作爲自動化測試的基礎,測試條件的預置、測試步驟的設計與開發、測試結果的判斷和輸出,都需要測試儀提供的API來支持。而目前 ,Tcl/Python作爲熱門的自動化測試開發語言,Renix也提供了相應的Tcl/Python API,便於測試人員進行自動化腳本的編寫。

爲了更好讓大家瞭解Renix API的使用,下面以Python API爲例,介紹Python語言如何基於Renix平臺進行自動化測試。(如果您對Tcl語言也感興趣,可以聯繫阿信爲您排憂解惑)。

API功能介紹

Renix Python API的功能主要分爲五個方面對測試儀進行管理:

1、設備管理。包括升級機箱、配置測試資源(連接/斷開機箱,佔用/釋放端口)、配置端口物理屬性(速率、雙工模式、流控)以及管理License等;

2、流量管理。包括配置流量負載、配置流量發送方式(Continue、Time、Burst)、控制流量啓停等;

3、協議管理。包括配置接口參數、配置協議參數、控制協議啓停等

4、捕獲管理。包括配置捕獲端口、配置過濾捕獲條件、配置捕獲空間大小、控制捕獲啓停等;

5、統計管理。包括訂閱統計視圖、查看統計結果、保存數據結果等。

API整體架構
在這裏插入圖片描述

自動化測試的根本就是通過API去實現對測試儀的控制,API的設計也是採用面向對象的思想。像測試儀的管理IP、端口號、槽位號等屬性,有相應的類去實現控制。端口作爲測試最基礎的資源,在端口類的基礎上也衍生出各種各樣子類,像建立流量、端口物理屬性配置、報文捕獲等類,兩者之間屬於繼承關係。另外如開始發流、停止發流、建立協議仿真等行爲,Renix API也提供了相應的類對其進行控制。

當進行測試時,我們是按照樹形結構去組織測試配置項。如下圖,當我們需要建立協議1、流量1和流量2時,我們是需要先定義好端口1這個對象,在端口1的基礎上再去建立協議1和流量1,需要定義好端口2這個對象,在端口2的基礎上再去建立流量2。

當我們創建了一個對象之後,該對象就繼承了根節點最基本的四個方法:delete、edit、get、execute,通過這四種方法來對建立的對象進行操作,從而實現對測試配置項的配置和編輯。

通過delete,可以刪除測試配置項以及跟其有關聯的所有子配置項;

通過edit,可以對測試配置項的內容進行編輯;

通過get,可以獲取到測試配置項的值;

通過execute,可以執行測試配置項的操作。

而且在此基礎上,可以通過set_relatives將對象之間建立關聯;可以通過get_relatives方法獲取關聯的對象;可以通過get_parent方法獲取當前測試配置項的父節點對象;並且通過get_children方法獲取當前測試配置項的子節點對象列表。

下面就從這幾個方面爲大家介紹下API的使用:
(1)創建測試配置項
可以通過相應的類去創建測試配置項,在創建的同時可以給配置項的字段賦值,而且創建時必須指定upper,upper指向合法的父節點對象。

如下圖,通過Port這個類去建立port_1這個對象,在建立port_1時,upper指向它的父節點對象root,同時給Location賦值‘//10.1.5.11/1/1’。這樣port_1這個對象就建立完成了。
在這裏插入圖片描述
(2)刪除測試配置項
對於每個測試配置項對象都有一個delete的方法,可以刪除測試配置項,不過需要注意點就是刪除配置項會導致跟其有關聯的所有子配置項都會被刪除。

如下圖,通過port_1.delete()將測試配置項port1刪除,此時如果port_1下面存在子配置項stream_1,那麼它也同樣會被刪除。
在這裏插入圖片描述
(3)修改測試配置項
如果需要對測試配置項進行修改,有兩種方式可以實現。第一種,可以通過測試配置項自帶的edit接口來修改配置項,這種方式可以同時修改多個字段的值,效率較高;第二種,可以通過測試配置項的成員直接修改配置項,這種方式優點在於簡單快捷、語法清晰。

如下圖,通過stream_1.edit使能EnableSignature,並將FixedLength的值改爲64。通過stream_1.EnableSignature = True使能EnableSignature;通過stream_1.FixedLength = 64將FixedLength的值改爲64。
在這裏插入圖片描述
(4)獲取測試配置項
API本地值不會自動跟Renix後臺同步,所以要獲取測試配置的值需要通過get方法來獲取。這樣做的是因爲一旦自動同步,API會緩存同步之後的值,而且也會帶來大量不必要的性能消耗。同樣,我們可以獲取測試配置項所有字段的值,也可以指定要獲取的一個或多個字段的值。

如下圖,通過stream_1.get(‘EnableSignature’,’FixedLength’)獲取EnableSignature和FixedLength的值。通過stream_1.get()獲取所有字段EnableSignature、FixedLength和RepeatCount的值。
在這裏插入圖片描述
(5)執行測試配置項操作
在API中凡是命名以Command結尾的都是一個操作,我們可以通過構造函數來創建一個操作,並提供操作的輸入參數。然後可以通過execute方法執行一個操作。在操作執行之後可能會得到一些輸出參數。

如下圖,通過CreateResultViewCommand(DataClassName=’StreamStats’)來創建一個創建流量統計視圖的操作,然後通過cmd.execute()執行創建統計視圖的操作。統計視圖創建完成之後得到的cmd.ResultViewHandle可以作爲輸出參數賦值給view_handle,然後供其他對象調用。
在這裏插入圖片描述
說了這麼多,接下來我們來看一個腳本實例測試吧。這個例子是用來測試儀表自環的兩個端口的性能是否有丟包或者存在亂序包。

第一步:腳本設計思路
初始化API—>佔用端口—>配置流量—>訂閱統計—>啓動測試—>停止測試—>分析統計—>判斷結果。

第二步:編寫腳本
導入需要用到的模塊。
在這裏插入圖片描述
創建和佔用測試端口Port1、Port2。
在這裏插入圖片描述
配置流量的收發端口,配置流量的源和目的MAC地址。
在這裏插入圖片描述
創建和訂閱Stream Block的統計
在這裏插入圖片描述
在這裏插入圖片描述

開始測試,發送所有流量,10s之後,停止測試。
在這裏插入圖片描述
根據獲取到的統計結果進行分析,檢查兩條流量收發的包數是否相等;檢查兩條流量是否有丟包;檢查兩條流量是否有亂序包
在這裏插入圖片描述
根據分析的結果,做出判斷,測試是Pass還是Fail。
在這裏插入圖片描述
第三步:獲取關聯對象
我們可以通過set_relatives方法將對象之間建立關聯,然後可以通過get_relatives方法獲取關聯的對象。可以通過get_parent方法獲取當前測試配置項的父節點對象,並且通過get_children方法獲取當前測試配置項的子節點對象列表。

如下圖,通過s1.set_relatives(‘RxPort’,Port_1,EnumrelationDirection.TARGET)將RxPort、Port_1、EnumrelationDirection.TARGET這幾個對象關聯起來。

通過port_1.get_children()方法獲取當前測試配置項的所有子節點對象;通過port_1.get_children(relative_name=’StreamTemplate’)獲取port1下類型爲StreamTemplate的所有對象
在這裏插入圖片描述
第四步:運行腳本
通過Win+R,輸入cmd,打開cmd.exe(Windows系統適用);輸入“cd ‘腳本所在路徑’” ,進入腳本所在目錄;輸入“python ‘腳本名稱’”,回車,執行腳本。
在這裏插入圖片描述
第五步:查看測試結果
如下圖,通過測試結果可以看到Stream_1發送了7492964個包,對端也接收到7492964個包,Stream_2發送了7492960個包,對端也接收到7492960個包,兩條流量的收發相等;兩條流量的丟包數都爲0;兩條流量傳輸過程中都沒有產生亂序包。最後判斷此次測試結果:Pass。
在這裏插入圖片描述
二、GUI To Tcl/Python

GUI(Graphical User Interface)就是指圖形用戶界面,又稱圖形用戶接口是指採用圖形方式顯示的計算機操作用戶界面,在這兒特指Renix客戶端界面。GUI To Tcl/Python目的在於將客戶在GUI界面的配置和操作轉化爲可執行的自動化測試腳本。

測試的思想在於:客戶在GUI界面連接機箱、佔用端口、配置流量、配置負載等操作會保存爲.xfcg文件,在Smart Script配置的開始發送所有流、停止所有流、訂閱端口統計和2544/2889/3918套件測試等操作命令也會保存爲.xfcg文件,然後對於這些操作和命令的調用代碼就通過自動編寫保存爲test.py文件,最後當客戶需要進行測試時,直接執行test.py文件即可。

另外,當你需要修改配置和操作時,可以通過Renix打開.xcfg文件修改配置和操作,然後再使用GUI To Python;或者就在test.py的文件中編寫相應的代碼完成對配置和操作的修改。這樣大大減少了客戶編寫代碼的時間,不僅提高了測試效率,對於代碼不是特別精通的用戶也都可以進行測試。毋庸置疑,這是代碼量最小的自動化測試。

如下圖,先在Renix界面上佔用兩個測試端口,每個端口各配置一條流量,幀長128字節,port1負載配置爲50%(線速是1000M),port2的負載配置爲100%;

在這裏插入圖片描述

然後結合Smart Script,配置發送所有流、打流時長10s、停止發送所有流、等待3s、保存結果爲1.db文件等命令;
在這裏插入圖片描述
最後通過GUI To Python保存爲可執行的自動化測試腳本。
在這裏插入圖片描述
如下圖,GUI To Python 生成的文件中,用戶在GUI 界面佔用的端口、配置的流量和在Smart Script配置的操作均被保存在.xcfg的配置文件,調用和執行配置文件的代碼也被存爲test.py。這樣用戶就可以直接通過執行test.py來完成自動化測試。
在這裏插入圖片描述
我們運行test.py之後,可以看到,腳本已經測試成功,數據結果01.db的文件也已經在相應目錄下保存,通過ResultAnalyzer可以打開文件查看結果
在這裏插入圖片描述
在這裏插入圖片描述
三、XAT自動化測試軟件

XAT(Xinertel Automated Testing)是信而泰推出的自動化測試軟件。
該軟件旨在通過簡單、快捷的方式實現對自動化腳本的集中測試和管理。可以通過該軟件進行測試儀表和被測設備的連接,佔用測試儀表的端口,將測試端口與測試腳本進行綁定,批量進行腳本測試。
軟件界面會有測試結果的彙總,也會打印測試日誌,便於測試失敗時定位問題,更爲重要的一點,通過該軟件可以將測試記錄一一保存在Excel文件中,包括之前的佔用端口、測試配置、測試日誌、測試結果等信息。節省了人工記錄的時間,同時減少了人爲記錄可能帶來的不必要的誤差。操作方便、使用靈活,測試信息記錄準確,可謂是自動化測試的好幫手。
在這裏插入圖片描述
如下圖,我們先通過XAT配置和佔用IP地址爲192.168.1.180測試儀的port1~8,然後在左下角的列表框中選中需要進行測試的一個或多個端口,選中192.168.0.180/1/4、192.168.0.180/1/6和192.168.0.180/1/8,鼠標右鍵,通過Combine To Group將選中端口組綁定成一個端口組,點擊後在右下列表“端口組合”出現綁定的端口組。
在這裏插入圖片描述
在這裏插入圖片描述
完成配置端口後就可以點擊“設置腳本”來選中需要執行的腳本。先打開腳本所在路徑,在“搜索腳本”窗口會出現腳本文件,選中需要測試的腳本文件,鼠標右鍵,通過Add Script將選中的腳本添加到右下角的設置腳本列表;
在這裏插入圖片描述
再次選中測試腳本,鼠標右鍵,通過Bind PortGroup將選中的腳本和“配置端口”設置好的端口組綁定,點擊後,選中腳本和端口組綁定,並在右上角的測試套件中顯示添加的腳本端口組合簡稱爲“測試套件;
在這裏插入圖片描述
默認測試套件都是勾選中的,套件左邊顯示綠色勾,如果不需要執行該套件可以選中測試腳本之後,鼠標右鍵,通過Unselect執行腳本時不執行選中測試套件.(選擇Unbind Port Group,會在測試套件列表中刪除選中的測試套件;選擇Select,則執行腳本時執行選中測試套件);
在這裏插入圖片描述
在工具欄中點擊“開始 ”按鈕開啓所有測試執行“設置端口”-“測試套件”中選中的測試套件。開始測試後,出現 “執行端口組(1)” 頁面,如下圖,測試結果:顯示每個測試腳本執行完成之後的結果信息;測試步驟:實時顯示每個腳本的測試執行步驟;下方的“執行端口組(1)”:實時顯示執行的log日誌信息;在狀態欄顯示總體執行的狀況
在這裏插入圖片描述
所有測試執行完成之後,工具欄顯示“導出所有測試報告按鈕”, 在導出報告前,可以再菜單欄-測試報告-設置報告導出路徑中設置測試報告導出到執行的路徑下,設置好導出目錄後點擊“ ”導出所有測試報告按鈕,報告導出完畢之後,查看報告文件。在Log文件夾裏有每個腳本測試的詳細log信息,在Report.doc裏是word板的測試報告,在TestResult.xlsx則爲Excel表格測試報告。
在這裏插入圖片描述
如下圖是Excel表格測試報告。
在這裏插入圖片描述

四、智能腳本工具(Smart Script)

智能腳本是無代碼的自動化測試用例編寫和執行的解決方案。在一定程度上爲代碼小白省時省力,結構清晰明瞭,使用靈活,用戶可以輕鬆上手。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章