python3測試工具開發快速入門教程13自動化測試簡介

軟件自動化測試的內容

標識測試條件

  • 確定爲什麼測試,以及測試“什麼”並最好定義這些測試需求和測試類型。
  • 測試需求(test requirment)取決於被測試驗證的項目或事例。
  • 確定被當作測試對象的各項需求,例如用例,功能性需求和非功能性需求。
  • 測試有不同的類型,如功能測試,性能測試,安全測試等,配置測試,壓力測試,業務週期測試。數據和數據庫完整性的測試;用戶界面測試,容量測試,故障轉移和恢復測試,安裝測試等。

注意標識測試條件的活動最好與開發活動並行開展。

設計測試用例

  • 確定“怎樣”測試。
  • 測試用例(test case)是按一定順序執行的與測試目標(test object,測試理由或目的)相關的一系列測試。

軟件自動測試的內容

執行測試用例

  • 在被測軟件運行時使用測試用例。
  • 對於手工測試來講,測試者按事先準備好的手工過程進行測試。測試者輸入數據、觀察輸出、記錄發現的問題。
  • 對於自動測試,可能只需啓動測試工具,並告訴工具執行哪些測試用例。
  • 測試執行只能在軟件開發完成後執行。

將測試結果與期望輸出比較

  • 自動測試結合了兩種方法進行比較:信息比較,如可以在執行測試時進行顯示屏幕上的消息;輸出比較,如修改數據庫記錄,只能在測試執行結束後進行。

軟件測試自動化的方法

測試件結構:

測試件是用來描述測試所需的所有“作品”的術語,包括文檔、腳本、數據和期望輸出,還有測試產生的所有產物,包括實際輸出、差異報告和總結報告。

測試件組就是測試產物(腳本,數據文件等)的邏輯集合。

測試集是一個自包含環境,可運行所有選中的測試事例。測試集很簡單,是測試件組的集合。測試集包含所需的測試件組。

測試件庫是所有測試件組的原版本的倉庫,長期存儲了所有測試材料(測試數、腳本、文檔等)必須複製這些材料來運行。

腳本技術:

線性腳本

  • 結構化腳本: 類似於結構化程序設計,結構化腳本中含有控制腳本執行的指令。
  • 共享腳本: 腳本可被多個測試事例使用,這意味着腳本語言允許一個腳本被另一個腳本調用.
  • 數據驅動腳本:將測試輸入存儲在獨立的(數據)文件或數據庫等中,而不是存儲在腳本中。
  • 關鍵字驅動腳本:實際上是較複雜的數據驅動技術的邏輯擴展。

比較技術:

測試驗證是檢驗軟件是否產生了正確輸出的過程,是通過在測試的實際輸出與預期輸出(例如,當軟件正確執行時的輸出)之間完成一次或多次比較來實現的。

對於自動測試而言,這兩組數據指的是測試運行中產生的輸出與預期輸出。這些測試數據會顯示在屏幕上,或者保存在文件或數據庫中,數據可以是各種各樣的格式,包括標準文本。在測試執行工具中嵌入比較器功能的地方,數據很有可能是屏幕圖像。

可以比較的工具取決於比較工具的性能。一些商業比較器具備比較多種不同數據格式的功能。用最簡單的比較器只能比較標準文本文件,但是高級複雜的比較器可以比較更加得複雜和專用的數據格式,包括圖形格式和數據庫內容。比較的原則如下:

  • 保持簡單
  • 編制比較的文檔
  • 儘量標準化
  • 分割和駕御
  • 記住效率
  • 避免比較位圖


自動化測試框架與RobotFramework介紹

測試框架的職責

•定義一種統一的方式來書寫和組織測試用例(測試步驟,測試數據與期待返回值);

• 集成不同的測試驅動技術;

• 控制測試用例的執行過程;

• 生成測試報告和測試日誌;

RobotFramework簡介

Robot Framework 的架構是一個通用的驗收測試和驗收測試驅動開發的自動化測試框架(ATDD)。它具有易於使用的表格來組織測試過程和測試數據。

Nokia Siemens Networks開發並提供支持,開源的框架

易於使用,採用表格式語法,統一測試用例格式;
• 重用性好,可以利用現有關鍵字來組合新關鍵字;
• 支持變量;
• 支持創建基於數據驅動的測試用例。
• 結果報告和日誌採用HTML格式,易於閱讀;
• 提供標籤以分類和選擇將被執行的測試用例;
• 平臺、應用無關;
• 功能全面,支持WEB測試(Selenium)、Java GUI 測試,
啓動線程、終端、SSH等;
• 易於擴展,提供了簡單API,用戶可以自定義的基於Python
或者Java的測試庫;
• 易於集成,提供了命令行接口和基於XML的輸出文件;
• 易於與版本管理集成;

RobotFramework安裝
•安裝Python,並確認python版本

•安裝robotframwork:pip install robotframework

•安裝wxpython: https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1
下載32或64位的版本,注意位數和python的位數一致。

•安裝robotframework-ride: pip install robotframework-ride

•windows命令行運行ride.py

•製作ride的快捷方式(Windows):在C:\Python27\Scripts找到發送快捷方式到桌面

安裝注意: Robotframwork對python3支持不夠好,尤其是robotframework-ride,不支持python3。

RobotFramework安裝
•驗證

打印hello world
點擊File -- New Project,輸入name,Type選擇Directory,Format選擇Robot
右擊選擇新建的工程,選擇New suite,輸入名字,其他默認
右擊新創建的test suite,選擇new test case
在test case中輸入第一個單元格輸入log, 第二個輸入hello world
運行:方式1 點擊Tools,點擊Run Tests;方式2 點擊 Run Tests圖標
查看日誌

RobotFramework的報告展示頁面做得不錯,讓新手可以很快領略到自動化測試的樂趣。但是RobotFramework的庫開發維護把很多簡單的事件搞複雜了。爲此RobotFramework比較適合比較簡單的驗收測試場景。對於比較python的人而言,RobotFramework反而是個負擔。

單元與接口自動化測試

簡介
單元測試基於pytest,junit等框架,本身就可以在命令行執行,生來就是自動化的。

請參考單元測試部分的講義。

接口測試可以用單元測試框架進行封裝,實現自動化。

測試自動化的原則是儘量多從單元的角度考慮,其次接口(集成),儘量少做UI層的自動化。越往上越使測試後置,越難維護。

UI自動化測試

測試框架生成用戶界面的事件,如按鍵和鼠標點擊,並觀察用戶界面的變化結果,以驗證該觀測到的行爲的程序是否正確。許多測試自動化工具提供的記錄和回放功能,讓用戶能夠記錄用戶的交互行動和重播。這種方法的優點是它需要很少或根本沒有軟件開發。但是稍有改變,維護工作就比較大。

web測試是GUI的變種,它是閱讀的HTML不是觀察窗口事件,使用的技術有很大差異。

Windows平臺有大量的UI自動化測試工具,包含Testcomplete,QTP等商業工具。免費或者開源的AutoIT、selenium、Sikuli 等。

Linux有Sikuli 、 selenium 、LDTP 等工具

Android有Appium、 Uiautomator、 espresso等工具

IOS有Appium、 Calabash、MonkeyTalk等工具

  • 參考資料

使用Python學習selenium測試工具

某公司測試平臺介紹

互聯網業務測試現狀:

  • 開發週期短
  • 大量的迴歸測試和擴容測試
  • 應用自動化測試的目的:
  • 提高手工測試的效率
  • 覆蓋手工測試無法測試的領域(運營環境)
  • 自動化測試平臺的功能
  • 迴歸測試(包括日常回歸和版本回歸)
  • 線上驗證
  • 自動化監控

某公司測試平臺需求

  • 用戶權限管理
  • 導航樹
  • 搜索
  • CGI管理
  • 自動化用例管理
  • 格式化解析
  • 參數化
  • 斷言
  • 批量執行
  • 結果展示

參考資料

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