從0到1開發自動化測試框架

2021-01-08 CSDN

一、序言

隨著項目版本的快速迭代、APP測試有以下幾個特點:

首先,功能點多且細,測試工作量大,容易遺漏;

其次,代碼模塊常改動,回歸測試很頻繁,測試重複低效;

最後,數據環境多樣,用戶場景複雜,功能回歸覆蓋難全面。

為節省成本,保證高效及高質量迭代,我們需採用更高效的測試方式,App自動化測試是較高效的手段。

之前自動測試實踐過程中遇到的諸多問題(代碼復用率低,Case開發及數據構造繁瑣,問題定位困難,學習成本高等),為解決相關痛點問題,我們重新實現了一套APP自動測試框架。本文將著重介紹技術選型、設計思路及百度外賣App的具體實踐。

二、自動化測試框架技術選型

一個項目中自動化測試是否能有效的展開,自動化測試框架是關鍵所在。因此,如何如何構建穩定的、易擴展的自動化的測試項目對于敏捷測試有重要的意義。在設計框架的時候應該儘可能的沿用自動化測試工具已提供的功能,避免重複開發,以減少開發成本。

通過對現有自動化測試工具的原理進行深入分析及優缺點比較,並基於Appium和TestNG兩類自動化測試框架解決上述自動化測試中遇到的問題。

首先,通過利用TestNG結合csv的使用,將測試用例數據轉化為測試代碼中的數據,減少了測試人員錄入數據和準備數據的工具;

再次,通過對appium的封裝,按照面向對象的思想將測試中用到的頁面元素封裝成對象,增強測試代碼的復用率,並減輕測試人員對底層代碼實現的負擔,提高測試代碼編寫效率;

最後,引入失敗重跑、失敗截屏,並通過reportng生成測試報告的方式,逐步完善測試過程,提高定位問題的速度;

TestNG

Testng是一個開源自動化測試框架,引入了許多新的創新功能,如依賴測試,分組概念,使測試更強大,更容易做到。 旨在涵蓋所有類別的測試:單元,功能,端到端,集成等。TestNG框架可以很好地幫我們完成WebDriver+java的頁面自動化工作,通過各種注釋的靈活運行,可以使你的測試用例更加完美,定製符合要求的測試用例

1. TestNG是一個設計用來簡化廣泛的測試需求的測試框架,從單元測試到集成測試。 這個是TestNG設計的出發點,不僅僅是單元測試,而且可以用於集成測試。設計目標的不同,對比junit的只適合用於單元測試,TestNG無疑走的更遠。可以用於集成測試,這個特性是我選擇TestNG的最重要的原因。

測試的過程的三個典型步驟,和junit(4.0)相比,多了一個將測試信息添加到testng.xml文件。 測試信息尤其是測試數據不再寫死在測試代碼中,好處就是修改測試數據時不需要修改代碼/編譯了,從而有助於將測試人員引入單元測試/集成測試。

基本概念,相比junit的TestCase/TestSuite,TestNG有suite/test/test method三個級別,即將test/test method明確區分開了。

Appium

Appium一個開源、跨平臺的測試框架,可以用來測試原生及混合的移動端應用。Appium支持iOS、Android及FirefoxOS平臺測試。Appium使用WebDriver的json wire協議,來驅動Apple系統的UIAutomation庫、Android系統的UIAutomator框架。相比其他的移動自動化測試工具,Appium測試由於調用了Selenium的client庫使其可以使用任意的語言,包括Python、Ruby、Node.js、Objective-C等。

三、自動化測試框架的設計思路

測試設計過程和測試自動化框架必須作為兩個單獨的實體來開發。

測試框架應該獨立於應用程式;

測試框架應該易於擴展 、維護和增強;

測試策略/設計應該對測試者隱藏測試框架的複雜性。

四、自動化框架介紹

該框架基於Selenium WebDriver開源技術開發。本框架使用Maven工具進行Project管理,採用TestNG工具組織測試,應用CSV文件存儲測試數據,實現測試數據與測試用例的分離,方便測試數據管理,降低自動化腳本的維護成本,實現數據驅動。此外,該框架還封裝了豐富的Selenium方法關鍵字,借鑑了QTP語法結構,實現了直觀清晰的結構化代碼語法,如:Page.Item.Operate,降低自動化代碼的冗餘與重複。藉助Jenkins 進行CI測試,實現測試任務的Schedule 和Report功能,通過Jenkins Master/Slave模式管理虛擬機節點,實現多任務多機器分布式並發的執行管理,從而提高測試效率。 該框架的好處在於: 1、構建可復用的、穩定的代碼集。通過封裝appium實現用例執行與數據調用分離,參數化配置常用信息,並提供統一接口; 2、模塊化管理自動化測試用例。主要根據TestNG工具的支持參數測試和依賴測試的特點實現; 3、測試結果分析和統計。利用jenkins工具建立持續集成,定期運行自動化測試項目,並將測試結果以定製化的形式展現。

測試框架分層

基於UI測試,我們希望除了支持web測試,還能支持app的測試,可能還需要接口測試,我們就需要考慮分層問題,將測試框架分為三層。上層是管理整個自動化測試的開發,執行以及維護,在比較龐大的項目中,它體現重要的作用,它可以管理整個自動測試,包括自動化測試用例執行的次序、測試腳本的維護、以及集中管理測試用例、測試報告和測試任務等。下層主要是測試腳本的開發,充分的使用相關的測試工具,構建測試驅動,並完成測試業務邏輯。

第一層:數據層

即執行用例時所需要的測試數據,如商戶名、空間名、URL等,這些數據用來支撐整個腳本的執行。針對數據層,這裡採了用數據驅動的方式。

第二層:驅動層

這一層主要封裝各種driver。比如我們針對網頁測試,使用selenium-webdriver開發包,針對app測試,我們使用appium開發包。我們在這一層進行封裝,通過調用selenium-webdriver,appium提供的原生方法,封裝成可讀性很強的方法且加上容錯機制。以後就算我們要換用其他的第三方包,我們的測試案例層和支持層的方法也不需要做任何的修改。只需要修改driver層實現的方式就可以了。在一層,我們主要實現兩個方面的封裝,一個是driver的封裝,一個是基於基類自然語言函數的封裝。

driver封裝

我們需要封裝,根據參數確實是基於web測試還是基於app測試。比如:

基類封裝

主要是封裝各種可讀性很很強的方法以及將元素定位標識及driver也封裝進去。為了支持網頁測試和app測試,我們需要兩個基類,一個是針對網頁操作基類,一個是針對app操作基類。同時為了web和app操作的一致性,我們要求對外提供的方法,必須要將常用的方法保持一致的名字和一樣的參數類型及參數個數。

APP基類示例如下:

通過對driver和基類的封裝,driver層實現了對網頁測試和app測試的支持,並且針對兩種測試,都提供了統一的方法,能夠方便使用者,使用相同的方法,測試app和web。

第三層:測試案例層

該層是測試案例的具體實現,就像上面寫的case那樣,用接近自然語言的方式,來實現測試案例。

第四層:支持層

該層主要提供workflow,通用工具,元素庫的支持,便於測試案例層直接調用。 Workflow:主要封裝測試項目中需要經常使用的針對項目的公用方法,供測試案例層直接調用。比如用戶登錄,註冊一個用戶,搜索出用戶等等經常使用的動作; 通用工具:提供一些通用方法,比如生成指定Page類,文件讀取操作,DB操作,http操作支持等等; 元素庫:每一個頁面元素的定位表達式(xpath,id,name,css,link_text等等表達式)。 我們的測試案例,都是針對一個個元素進行操作的。將每一個頁面的每一個元素,都看成一個繼承了基類的特定類。所以,我們的第一步,就需要找到這個元素,定位到這個元素。測試項目的所有元素都放到這裡。

第五層:結果保存層

將測試腳本的日誌和結果以自定義的方式展示,這裡使用了ReportNG,它可以豐富測試結果的展現形式,幫助團隊更快定位和解決問題。

五、框架技術要點解析

5.1、PO模式

5.1.1、遇到的問題

使用webdriver做過一段時間的測試就會發現一個對某一個頁面的元素進行定位的時候,程序行間充斥著id()、name()、xpath()等方法,這樣會造成測試程序的可讀性較差,不便於後期的維護以及修改。 雖然我們可以通過添加注釋的方法使程序便於理解,但是還是不可以從根本上解決這種問題。我們可以通過對這些方法進行二次封裝來避免每次對這些方法的直接調用,通過方法的封裝雖然可以實現復用。但是我們發現通過封裝無法實現頁面元素的邏輯處理和測試數據的獨立。

5.1.2、問題的解決辦法:引入PO

Page Object模式是Selenium中的一種測試設計模式,是指UI界面上用於與用戶進行交互的對象。主要是將每一個頁面設計為一個Class,其中包含頁面中需要測試的元素(按鈕,輸入框,標題 等),這樣在Selenium測試頁面中可以通過調用頁面類來獲取頁面元素,這樣巧妙的避免了當頁面元素id或者位置變化時,需要改測試頁面代碼的情況。 當頁面元素id變化時,只需要更改測試頁Class中頁面的屬性即可。通過對界面元素的封裝減少冗餘代碼,提高測試用例的可維護性。 一般情況下,對於一個Page Objects對象,它有兩個方面的特徵: 1. 自身元素(WebElement) 2. 實現功能 (Services) 仔細分析測試場景,抽出UI測試的核心行為,無非就是:

1、檢查點:

頁面元素是否存在;

頁面元素顯示內容是否正確;

頁面元素是否可用;

……

2、輔助功能:

等待元素出現;

點擊某頁面元素;

給元素輸入內容;

分析抽出來的核心行為,發現這些行為基本都是針對一個個頁面元素進行的操作。那麼我們就可以做如下的動作: 將頁面元素看成一個對象,封裝成一個類; 將上面分析得到的核心行為都封裝成基類方法。然後確保,任何一個頁面元素都繼承該基類; 該基類提供類似於自然語言的方法名字,調用這些方法,就能很明確的知道測試案例在做什檢查,在做什麼行為,這樣就能極大的提高測試案例的可讀性。 該基類主要目的是在UI測試中,對元素共性的檢查點和輔助方法進行抽取,將它們封裝成一個個非常容易讀懂的方法,且具有異常處理能力。 經過上述思路的整理,測試用例可以改寫成如下: 在實際的使用過程中,可以讓不太熟悉代碼的QA專門負責測試案例的實現,底層的方法包裝可以由經驗豐富一些的同學做。

5.2、數據驅動

數據驅動的自動化測試框架是這樣的一個框架,從某個數據文件(例如ODBC源文件、Excel文件、Csv文件、ADO對象文件等)中讀取輸入、輸出的測試數據,然後通過變量傳入事先錄製好的或手工編寫的測試腳本中。其中,這些變量被用作傳遞(輸入/輸出)用來驗證應用程式的測試數據。在這個過程中,數據文件的讀取、測試狀態和所有測試信息都被編寫進測試腳本裡;測試數據只包含在數據文件中,而不是腳本裡,測試腳本只是一個「驅動」,或者說是一個傳送數據的機制。

在數據文件中填寫測試數據:

生成Page類:

Page類中初始化頁面元素:

基於數據驅動的好處在於:

在應用程式開發的同時就可以同步建立測試腳本,而且當應用功能變動時,只需要修改業務功能部分的腳本;

利用模型化的設計,避免重複的腳本,減少建立或維護腳本的成本。

5.3、失敗重跑與失敗截圖機制

自動化測試過程中,常常由於網絡、伺服器響應過慢、JS特效及頁面渲染時間較長,導致自動化測試失敗。針對此類場景,本框架設計了一套NRetry機制,即某個case運行失敗後,重跑N次,N可自定義。N次中有一次成功,則繼續運行,若N次均失敗,則截圖、拋錯,停止運行。NRetry機制,一定程度上可以降低由於網絡、伺服器響應過慢導致的自動化執行的不穩定性。

5.3.1、失敗自動截圖

新建一個Java類繼承TestListenerAdapter:

重寫onTestFailure、onTestSkipped等方法,在這些方法中加入截圖操作:

在testng.xml文件中配置自己編寫的監聽器類:

5.3.2、失敗自動重跑

在運行自動化測試用例的時候,經常會出現一些異常的情況的情況導致用例失敗的問題。所以我們可能會希望對於失敗的測試用例再重新運行一次,框架中我們結合TestNG來實現這個功能。

新建TestNGRetry類,實現用例失敗自動重跑邏輯:

添加用例重跑監聽器RetryListener,用例失敗自動重跑功能:

在testng.xml文件中配置自己編寫的監聽器:

5.4、ReportNG

TestNG默認的HTML報表,其默認的報表雖然信息全面,但不易於理解。因此,我們利用ReportNG來替代TestNG默認的report。 ReportNG提供了一種簡單的方式來查看測試結果,並能夠對結果代碼進行著色。還可以通過修改CSS文件來替換默認的輸出樣式。此外ReportNG還能夠生成Junit格式的XML輸出。 由於我們使用的是maven,所以我們主要來看看pom.xml的情況: maven-surefire-plugin 這個插件主要是用於testng的。我們通過該插件,在對應的目錄下./target/${timestamp}生成我們的測試報告目錄。我們可以看到這個目錄的結構。 這裡實際上就是reportng的測試報告的生成路徑。但是我們想要通過郵件發送會很難,因為html的內容需要加在額外的css,以及js文件。而郵件實際上是不支持外部的css以及js文件的。

HTML的生成

1、定義HTML模版

查看indexMain.html.vm:

在使用ReportNG替換TestNG自帶報告時如果報告中含中文,由於ReportNG 裡面Log 是不支持中文的,所以通過修改ReportNG.jar源碼來支持報告內中文展示。

5.5、日誌收集

日誌是軟體開發的重要組成部分。自動化執行過程的日誌信息,對於失敗用例的分析定位以及全過程的跟蹤記錄是十分重要的。 相對於簡單的輸出列印,本框架集成了主流的日誌收集工具log4j。Log4j是高度可配置的,並可通過在運行時的外部文件配置。通過配置log4j.properties文件,定義日誌級別內容及日誌輸出路徑收集日誌信息(諸如:資料庫,文件,控制臺,UNIX系統日誌等),提供快速的調試,維護方便,以及應用程式的運行時信息結構化存儲。

配置文件

Log4j可以通過java程序動態設置,該方式明顯缺點是:如果需要修改日誌輸出級別等信息,則必須修改java文件,然後重新編譯,很是麻煩;log4j也可以通過配置文件的方式進行設置,目前支持兩種格式的配置文件:

xml文件;

properties文件(推薦)。

5.6、郵件發送

測試報告的發送可以結合Jenkins來實現,通過簡單的配置即可實現。可是如果團隊沒有搭建jenkins或者有時jenkins不可用,我們應該如何去處理這部分的內容呢? 既然郵件不能夠依賴jenkins,那肯定得自己去實現這部分的內容了。所以我們還是得依賴一些第三方的jar包。我們在pom.xml配置。

六、後續TODO

在後續的版本演進中,將把自動化測試、代碼安全掃描、多機並行測試、持續發布都加入了整體過程,真正的做到全過程持續交付。

6.1、夜間構建加入自動化測試

夜間構建會按計劃定期觸發自動化構建過程,但這種構建只是簡單的代碼編譯,沒有可靠的或可重複的功能測試。後續考慮Appium結合Jenkins來實現構建後自動化測試工作。 無論任何時候,只要代碼更新提交到git中,構建伺服器就會觸發一個構建,構建運行腳本去編譯應用程式並且運行一系列的自動化單元測試和/或集成測試。通過自動化測試結果能夠清晰的展示出那些功能特性是通過的,哪些是失敗的。不管是有改動提交,還是定期在夜間觸發構建,應用程式都會被自動部署到測試環境當中以便QA團隊進行測試。

6.2、Jenkins與STF結合,實現多機並行測試

Jenkins構建腳本完成後,將沒有安裝stf組件電腦上連接的android設備,添加映射到裝有stf平臺服務的機器上,將集成測試用例push到STF平臺,再由STF分發到可運行設備上,進行多機並行測試。

STF執行APPIUM測試帶來的優勢

第一、可以在真機上執行並行的Appium測試。由於最初的Appium使用對象是模擬器上或只是以每次一臺設備的測試方法執行測試,而STF在原有的基礎上擴展了Appium,最多可在數百臺真機上同時執行測試的能力。 第二,不需要配置任何設備的Desired Capabilities。這種方式既簡便,且減少了因為編輯腳本而產生的不同類型的錯誤。 第三,在STF上執行測試可以讓用戶即時瀏覽測試狀況。也就是說,可以查看到測試執行的進度,即時的錯誤反饋,以及保留和查閱所有測試項目,測試腳本和測試結果(測試截圖,測試日誌,性能數據等)

6.3、代碼質量度量

6.3.1、為什麼要分析代碼

對代碼質量關注時,安排人工進行code review是需要的,但100%的code review卻需要投入人員,消耗大量的工作量,而工具自動檢查只需少量人工配置。 最主要的原因就是提高代碼質量,了解RD在編碼過程中犯過的錯誤可能對功能邏輯產生的影響,同時也推動RD讓自己的代碼更具有可讀性和維護性,所以我們借鑑持續改進的流程,希望能夠在這個過程中有所收穫。

6.3.2、Jenkins引入Sonarqube進行代碼持續審查

Sonar是一個用於代碼質量管理的開源平臺,用於管理Java原始碼的質量。通過插件機制,Sonar 可以集成不同的測試工具,代碼分析工具,以及持續集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通過不同的插件對這些結果進行再加工處理,通過量化的方式度量代碼質量的變化,從而可以方便地對不同規模和種類的工程進行代碼質量管理。

6.4、email-ext實現Jenkins郵件通知功能

在Jenkins中配置實現郵件通知,Jenkins提供了兩種方式的配置。 一種是Jenkins內置默認的郵件通知,但是它本身有很多局限性,比如它的郵件通知無法提供詳細的郵件內容、無法定義發送郵件的格式、無法定義靈活的郵件接收配置等等。 在這樣的情況下,後續考慮可以通過Email Extension Plugin來實現自定義郵件通知的方方面面,比如在發送郵件的同時可以自定義發送給誰,發送具體什麼內容等等。

本文為雲棲社區原創內容,未經允許不得轉載,如需轉載請發送郵件至yqeditor@list.alibaba-inc.com

相關焦點

  • ZenTaoATF 1.0 發布,禪道自動化測試框架
    大家好,我們非常自豪的向大家推出我們禪道開發團隊開發的自動化測試框架——ZenTaoATF(zentao auto testing framework)。
  • 五大自動化測試的Python框架
    隨著該程式語言的廣泛使用,基於Python的自動化測試框架也應運而生,且不斷發展與豐富。因此,開發與測試人員在為手頭的項目選擇測試框架時,需要考慮許多方面的因素,其中包括:框架的腳本質量,測試用例的簡單性,以及運行模塊可能存在的技術弱點。為了避免出現「選擇困難症」,我在此為大家準備了五種Python類型的自動化測試框架,以供比較和討論。
  • Selenium自動化測試——框架設計
    本章節將以ECShop用戶註冊、登陸、退出三個業務的巡檢腳本開發、執行為例,介紹如何利用Selenium+Python開展自動化測試。巡檢腳本,可用於冒煙測試,每輪測試開展時,測試工程師可執行巡檢腳本,驗證被測對象常用功能是否正確,如果常用功能存在問題,則無須開展深度測試。
  • 帶你全面了解自動化測試框架—從理論到工具
    因此,為了能夠獲得這些好處,建議開發人員使用一個或多個自動化測試框架。此外,當有一群開發人員在同一個應用程式的不同模塊上工作時,以及當我們希望避免每個開發人員實現自己的自動化方法的情況下,需要一個統一的標準測試自動化框架。
  • Selenium自動化測試框架入門整理
    關注嘉為科技,獲取運維新知本文主要針對Selenium自動化測試框架入門整理,只涉及總體功能及框架要點介紹說明,以及使用前提技術基礎要求整理說明。作為開發人員、測試人員入門參考。本文參考:Selenium框架最新技術規範及相關資料簡介Selenium也是一款同樣使用Apache License 2.0協議發布的開源框架。
  • 自動化測試常用的Python框架有哪些?
    自動化測試常用的Python框架有哪些?常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。推薦使用Python 3.6.4,以確保適當的注釋能夠被添加到代碼段中,並能夠跟蹤程序的更改。同時還需要安裝Python包管理器--pip。二、Pytest適用於多種軟體測試的Pytest,是另一個Python類型的自動化測試框架。
  • 2019年最流行的五大JavaScript 自動化測試框架
    我們正在邁向自動化時代。每一家公司,無論是初創企業還是大型企業,都在努力儘可能高效地將自動化測試納入其發布周期。原因很簡單,因為自動化測試大大減少了驗證重複測試場景的工作量。而JavaScript不再被稱為只面向開發人員的程式語言。隨著自動化測試需求的增加,JavaScript測試框架已經開始廣泛使用,一些用於單元測試,而另一些是為E2E(端到端)測試而設計的。
  • Android常用6種自動化測試框架對比?
    App的回歸測試用例數量也越來越多,全量回歸也越來越消耗時間。為了擺脫這些,需要引進一些自動化測試來協助我們。趁現在有空我來總結下,Android常用的幾種自動化測試框架的異同,使測試人員在選擇自動化框架時有所參考!
  • 一些可用的Python自動化測試框架,分享給需要的人
    對於開發團隊來說,終於不需要開發者自己開發測試框架是一件非常開心的事情。在之前,開發團隊開始一個項目並開始開發之前,除了項目模塊的實際開發之外,都需要為這個項目構建一個自動化測試框架。隨著技術的進步,市面上出現了一些自動化測試框架。今天千鋒武漢Python培訓小編就來分享一些可用的Python自動化測試框架。
  • 9個開源自動化測試框架,質量保證測試工程師用起來
    自動化測試框架由一組最佳實踐,通用工具和庫組成,可幫助測試人員評估多個Web和移動應用的功能,安全性,可用性和可訪問性。而在,軟體開發世界中有很多的自動化測試框架,該如何選擇?雖然技術團隊可以構建複雜的自動化測試框架,但是當可以選擇現有的開源工具,庫和測試框架獲時,則可以選擇適合自己的框架,來節省開發成本和時間。
  • Android自動化測試,5個必備的測試框架
    它將這些供應商框架封裝到Selenium WebDriver中,這使得使用Appium的開發者可以編寫各種類型語言的測試:Java、Objective-C、JavaScript、PHP、Ruby、Python等等。這也使得編寫Appium測試與編寫Selenium測試非常相似。
  • 5分鐘了解自動化測試,自動化優勢、劣勢、工具和框架選擇全剖析
    5、測試結果分析:分析哪些是Bug,哪些是測試框架本身的問題。6、維護:自動化測試腳本維護是一個難以解決又必須要解決的問題。7、總結:在自動化測試過程中總結自動化實踐的投入產出比。自動化測試的層次劃分1、越往上,越接近QA、業務/最終用戶,越往下,越接近開發。2、越往上,測試執行越慢;越往下,測試執行越快。
  • 乾貨 | 一文搞定 pytest 自動化測試框架(一)
    它與 Python 自帶的 Unittest 測試框架類似,但 pytest 使用起來更簡潔和高效,並且兼容 unittest 框架。pytest 有以下實用特性:pytest 能夠支持簡單的單元測試和複雜的功能測試;pytest 本身支持單元測試;可以結合 Requests 實現接口測試;結合 Selenium、Appium 實現自動化功能測試;使用 pytest 結合 Allure 集成到 Jenkins 中可以實現持續集成。
  • 實戰 | UI 自動化測試框架設計與 PageObject 改造
    本文節選自霍格沃茲《測試開發實戰進階》課程教學內容。在 UI 自動化測試過程中,面對複雜的業務場景,經常會遇到這樣的挑戰:簡單的錄製/回放速度快,但無法適應複雜場景;編寫自動化測試腳本比較靈活,但工作量大且可維護性差;以往的封裝技術(PageObject)可以適應各種 UI 場景,但結構鬆散,無法在多項目中遷移;因此,測試團隊通常還需要一種定製測試框架
  • 4個不錯的Python自動化測試框架,Robot Framework有哪些優勢?
    隨著技術的進步和自動化技術的出現,市面上出現了一些自動化測試框架。只需要進行一些適用性和效率參數的調整,這些自動化測試框架就能夠開箱即用,大大節省了測試時間。而且由於這些框架被廣泛使用,他們具有很好的健壯性,並且具有廣泛多樣的用例集和技術來輕易發現微小的缺陷。以前,測試團隊接手一個項目,他們不得不為這個項目構建一個自動化測試框架。
  • 蝸牛學院圖書出版之《自動化測試開發全程實戰》詳解
    ,測試主管,測試架構師和對自動化測試開發有濃厚興趣的愛好者。(比如開發CI框架代替Jenkins,開發性能測試框架代替JMeter,開發KDT框架代替Robot Framework,開發APP測試框架代替Appium,開發Monkey測試框架,開發圖像識別框架解決UI層對象無法識別等問題,甚至開發測試平臺代替禪道等等)
  • 手把手教你寫出自己的自動化測試框架-python
    現在這段時間開發也在努力寫代碼當中,我倒是一下沒有空做了,就趁這個時間段,把自已手動寫自動化測試框架這個文章寫出來吧,先寫web版的,後續app自動化測試python+appium這一方面的教程,看情況而定。寫教程的目的,一個是為記錄自己的工程經歷,一個也是積累自己的技術吧,當然也可以把文筆先好一點。
  • 從0開始學習自動化框架Airtest
    現在市面上做UI自動化的框架很多,包括我們常用的Web自動化框架Selenium,移動端自動化框架Appium。剛剛前面講了,Airtest Project主要還是用來做UI自動化,其實UI層自動化從很早之前的商業方案到現在的開源方案,算是自動化測試領域發展比較久的一個方向,但是基於UI層的自動化測試框架要複雜很多,從平臺種類上來講,有Windows Client,Linux圖形化Client,Web UI,Android UI,iOS UI,還有現在比較新的小程序等,這些都是對於UI層自動化框架的挑戰
  • Dodo Framework v1.1.1 發布,Java Web 自動化開發框架
    本次更新: 兼容idea下編譯後classes目錄無配置文件,導致無法加載配置文件的問題 解決同一個資料庫實例下不同的資料庫,導致無法生成表和欄位comment及默認值的問題Dodo Framework一個基於代碼生成引擎的Java Web自動化開發框架
  • Java自動化測試框架(TestNG)——基本註解與實例
    TestNG是開源的Java自動化測試框架,框架的設計靈感來源於JUnit其消除了大部分的舊框架的限制,使測試開發人員能夠編寫更加靈活和強大的測試。註解 Annotation 是從JDK1.5 開始引入到Java語言中,TestNG 借鑑了Java註解來定義測試。