python自動化測試平台
㈠ python能夠做軟體的自動化測試嗎
可以,Python是可以做自動化測試的。
目前,Python自動化測試開始逐漸替代傳統的軟體測試,吸取了功能、性能、介面、自動化等專項測試領域的優勢,以後將在多個領域漸漸成為國內大部分質量控制、質量管理的首選,而且已經有很多公司使用Python自動化測試框架。
㈡ 如何搭建python+selenium自動化測試框架
selenium是一個web的自動化測試工具,不少學習功能自動化的同學開始首選selenium,相因為它相比QTP有諸多有點:
*免費,也不用再為破解QTP而大傷腦筋
*小巧,對於不同的語言它只是一個包而已,而QTP需要下載安裝1個多G的程序。
*這也是最重要的一點,不管你以前更熟悉C、java、ruby、python、或都是C#,你都可以通過selenium完成自動化測試,而QTP只支持VBS
*支持多平台:windows、linux、MAC,支持多瀏覽器:ie、ff、safari、opera、chrome
*支持分布式測試用例的執行,可以把測試用例分布到不同的測試機器的執行,相當於分發機的功能。
關於selenium的基礎知識與java平台的結合,我之前寫過一個《菜鳥學習自動化測試》系列,最近學python,所以想嘗試一下selenium的在python平台如何搭建;還好這方法的文章很容易,在此將搭建步驟整理分享。
搭建平台windows
准備工具如下:
-------------------------------------------------------------
下載python
-------------------------------------------------------------
如果你是新學python,哪果你沒有要用的包是必須依賴於pyhton2.x 的,那麼請毫不猶豫的選擇python3.5吧!
window安裝步驟:
1、下載python安裝。
又報了個錯:
Chromeversionmustbe>=27.0.1453.0 (Driverinfo:chromedriver=2.0,platform=WindowsNT5.1SP3x86)
說我chrome的版本沒有大於27.0.1453.0,這個好辦,更新到最新版本即可。
安裝IEdriver
在新版本的webdriver中,只有安裝了iedriver使用ie進行測試工作。
iedriver的下載地址在這里,記得根據自己機器的操作系統版本來下載相應的driver。
暫時還沒嘗試,應該和chrome的安裝方式類似。
記得配置IE的保護模式
如果要使用webdriver啟動IE的話,那麼就需要配置IE的保護模式了。
把IE里的保護模式都選上或都勾掉就可以了。
㈢ 自動化測試常用工具有哪些
自動化測試的問題我們已經探討了很多次了,所以今天我們就給大家簡單分享了在自動化測試過程中常用的一些測試工具和方法,下面java課程就一起來了解一下吧。希羨雀望通過對本文的閱讀,能夠提高大家對自動化測試的認識和理解。
1.帶RobotFramework的Selenium
Selenium無疑是受歡迎的Web自動化測試工具。其開源的特性是被廣泛使用的原因之一。您可以使用不同的語言在Selenium中實施各種框架,從而為自動化測試提供更多的功能。
Selenium能夠支持多種操作系統(Windows、Mac、Linux)和多種瀏覽器(Chrome、火狐、IE和Headless類型瀏覽器)。我們可以運用多種語言(如Java、Groovy、Python、C#、PHP、Ruby和Perl)來開發出不同的測試腳本。
Selenium內置了許多工具和框架,您可以啟用它們來進行持續測試。RobotFramework是Selenium用來進行持續測試的一種常用的框架。通過Robot,您可以運行各種自動化測試,包括由SeleniumWebdriver所提供的、基於UI元素和API的測試。
Selenium既可以使用關鍵字驅動的方法進行驗收測試,也可以進行驗收測試驅動式的開發(AcceptanceTest-DrivenDevelopment,ATDD)。通過使用Python和Java所實現的附加測試庫,其測試功能得到了進一步擴展。而RobotFramework不僅可以用於Web應用的測試,也可被用來測試Android和iOS的應用。
但是,Selenium本身並不能滿足所有的持續測試需求。它需要與大量的工具相集成,以滿足在軟體開兄磨早發生命周期(SDLC)中的不同目的。此外,Selenium還需要使用者具有高級的編程技能,並願意花費專門的時間與精力,來構建自動化框架,以滿足其特定的測試需求。
2.Testsigma
Testsigma是一個統游指一的、以AI驅動測試的自動化平台。它採用Shift-Left方法,將持續測試集成到了端到端的持續交付生態系統之中。Testsigma通過減少自動化測試技術中的復雜性,為功能和自動化團隊帶來了更多的靈活性。
功能測試人員可以輕松地使用自然語言,編寫出簡化的代碼,來進行自動化測試。Testsigma通過可重用的步驟組合、與集中對象存儲庫(CentralizedObjectRepository)大限度地提高了測試代碼的重用性。同時它通過使用AI,來大幅降低了與測試有關的維護開銷。
Testsigma能夠與各種開源的或三方工具相集成。它支持上千種不同「設備+瀏覽器+操作系統」組合的雲端測試環境,以不斷滿足各種的動態測試需求。
Testsigma能為企業級的自動化測試、和持續測試提供所有必需的功能,其中包括:數據驅動測試、跨瀏覽器測試、可重用性測試套件、測試計劃與數據管理、電子郵件與Slack通知、並行測試執行、集中對象/元素存儲庫、綜合報告、與CI工具的集成、以及自動化Bug報告等。
作為一款基於雲端的自動化測試工具,Testsigma為Web、移動Web、Android、iOS應用、以及RESTful服務提供了各種類型的應用支持。
3.IBMRationalFunctionalTester
RFT是另一種能夠進行功能、API、性能和回歸測試的工具。RationalFunctionalTester使用記錄和回放來創建自動化的功能測試,並將預期結果與執行時系統所產生的實際結果相比較。
IBM支持廣泛的應用程序,並能夠與IBMRationalQualityManager等工具相集成。另外,IBMRationalTestWorkbench還支持在API級別、用戶界面級別、以及整個系統級別進行回歸測試,以實現在DevOps或持續交付生命周期內的各種測試目標。
㈣ python自動化工具:pywinauto
Pywinauto是完全由Python構建的一個模塊,可以用於自動化 Windows 上的 GUI 應用程序。同時,它支持滑鼠、鍵盤操作,在元素控制項樹較復雜的界面,可以輔助我們完成自動化操作。
我在工作中,主要是使用pywinauto來輔助做一些操作,來完成自動化測試。
先要確認本地有python環境,然後可以通過命令行安裝pywinauto:
如果你是使用ide,可以通過ide安裝,比如我習慣使用pycharm,就可以在Project Interpreter中添加pywinauto:
還有一些手動安裝的方法,但是有點繁瑣,不是很推薦,這里就不介紹了。
Pywinauto要操作應用,首先需要訪問應用,主要有兩種訪問技術。WIN32訪問技術支持MFC、VB6、VCL、簡單WinForms控制項開發的應用,MS UI Automation訪問技術支持WinForms、WPS、QT5、WPF、Store apps、browsers等開發的應用。
win32 API的backend為「 win32 」,MS UI Automation的backend為「 uia 」。
Pywinauto中使用的backend默認為win32。可使用spy++或者Inspect工具判斷backend適合選哪種。例如:如果使用py_inspect的uia模式,可見的控制項和屬性更多的話,backend可選uia,反之,backend可選win32。
這里提一下常用的分析工具:
我個人常用的是py_inspect和spy++。
多數情況下都是需要打開應用的,實現方式也很簡單:
backend參數根據實際情況選擇傳uia還是win32。
start方法其實可以傳兩個參數,除了目標應用的啟動程序地址,還可以傳一個timeout,如果不傳,默認是5s。如果你的目標程序啟動、運行都很慢,可以將timeout設置久一點。
如果要操控的應用已經處於啟動狀態,可以直接進行連接,而連接方式有多種可以選擇:
其中Windows的pid可以通過任務管理器進行查看:
但是我在實際操作的時候使用窗口句柄沒有成功過,可能是我使用姿勢不對,不過還是不推薦使用窗口句柄。
title_re參數傳遞的是應用的部分名稱,class_name可以通過py_inspect查詢到。
前面獲取的對象都是應用,但是我們實際操作的是應用窗口,這里就來介紹怎麼獲取窗口和對話框。
最常用的是通過 title定位:
如果不清楚定位工具中的title在哪個位置,顯示的是什麼,可以通過print_control_identifiers()方法將所有的title都列印出來:
通過title定位的時候需要注意一下中英文的影響,如果是中文,可能會有編碼問題,需要轉碼。
title其實只是window()方法中的一種關鍵字參數,window()方法可以接收很多中的關鍵字參數,且這些參數可以組合使用,例如這樣:
主要參數有這些:
通過top_window()也能比較容易地獲取到窗口,但是這個方法獲取的是 程序的頂級窗口,但可能不是Z-Order中的頂級窗口。所以這個方法使用的時候多調試幾次。
窗口的操作主要有最小化、最大化、恢復、關閉窗口:
控制項的定位其實和窗口的定位基本一致,不太清楚為什麼pywinauto在設計的時候會將窗口和控制項作為一類東西。
相對於前面定位窗口的window()方法,定位控制項的時候推薦使用child_window(),因為直接使用windows()的話,如果控制項不是在當前窗口的子控制項,是子子控制項,就會定位不到,而child_window()方法就不會有這個問題,當然相對的缺點就是當控制項深度太深的時候,執行這個方法會比較耗時。
child_window()方法傳遞的參數和window()是一樣的。
控制項自帶了一些操作方法:
當這些不好用的時候,比如你的控制項不支持點擊,但是你又想點擊一下,可以使用滑鼠操作的一些方法:
測試過程中可能會需要截圖作為證據,截圖的方法也比較簡單:
pywinauto也提供了鍵盤操作的方法:
pywinauto有幾個設置等待時間的方式,這里介紹一個:
這里簡單的演示一下用Wireshark自動抓包並保存:
PC端自動化測試使用到的python模塊主要有pywinauto、win32gui、pyautogui。這里介紹的p ywinauto主要使用到Application類,用於應用程序管理(打開與關閉應用等)、窗口管理(最小化、最大化、關閉窗口)、控制項操作。
pywinauto的功能其實挺豐富的,但是真正用到的其實只是其中很小的一塊,感興趣的同學可以多去官網翻一翻。