Ⅰ 如何搭建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里的保護模式都選上或都勾掉就可以了。
Ⅱ python已經自動化了,大家一般用什麼測試框架
首先我們需要明白自動化測試框架更傾向於一種設計思想 ,這種思想指導工具的使用或者自研開發,並且不是只能使用僅僅一種框架,結合被測系統本身特性一般是選擇多種測試框架的組合,來滿足測試和設計需求(開發、維護角度)。
錄制回放測試框架
錄制回放測試框架所採用的原理是通過錄制應用程序產生的線性腳本進行回放從而達到自動化測試的目的。
優點:對測試人員測試開發能力要求最低,通過錄制就可以得到所需腳本。
缺點:一般不具有邏輯判斷的能力 ,可維護性差 ,效率低。
適應場景:不推薦,傳統的UI自動化測試逐步弱化。關於U自動化,一定要清楚 被測系統是否滿足開展自動化的條件,在被測系統變動頻繁的項目中,開展UI自動化無疑是挖了一個很大的坑,其後期維護工作足以讓大心疲憊,被迫放棄自動化測試。
測試庫構架框架(The Test Library Architecture Framework )
測試庫構架框架的核心思想可以概括為系統功能操作和業務邏輯的解耦。將所有的針對測試系統支持的功能操作封裝在測試庫中,測試腳本調用測試庫的同時傳遞外部的測試數據,測試庫的編寫由自動化測試發工程編寫(可以不懂業務),負責控制項的變更和維護, 測試腳本的編寫可由對業務比較掌握的自動化測試開發工程編寫,負責業務邏輯、測試數據的變更和維護。
優點:被測試系統無論是哪層發生變化(代碼層或業務層等),只需要相應的人員進行變更維護即可。
缺點:變更引起的維護工作同時附加在自動化測試開發工程師與業務測試人員身上,維護代碼建級大。
適應場景:基於各種自動化開展方式(基於工具如Jemet或不基於工具的自研研發+持續集成)一般都會應用該框架。
數據驅動的自動化測試框架( The Data-Driven Testing Framework )
數據驅動的核心思想可以概括為數據(測試數據、配置數據)與代碼解耦。該種框架的原理是採用了數據驅動腳本進行測試,數據驅動腳本是將數據輸入存儲在獨立的數據文件中,腳本只存代碼,運行時腳本的輸入直接從文件中讀取,如此相同的腳本(代碼模版)可以運行於不同的測試用例中,實現了代碼與數據的分離。
優點:對於業務人員由面向代碼的開發轉換為面向配置的設計(參數組合設計), 降低了開發難度與開發成本,同時提高了測試用例的易擴展性,可以快速擴展相似測試,實現了自動化代碼不隨用例的增長而增
缺點:測試腳本的維護由自動化測試開發工程師負責,要求懂自動化編程和業務邏輯,初始測試腳本設計成本較大,具有一定局限性 (針對相同的測試內容並具有相同的測試邏輯).
適用場景:更適應於測試內容測試邏相重復度高,被測對象對測試用例易擴展性、可復用性要求較高的場景。
關鍵字或表驅動的自動化測試框架(The Keyword-Driven or Table-Driven Testing Framework )
關鍵字驅動是對數據驅動的邏相擴展,它的核心思想可以概括為數據代碼流程(邏輯)解耦,同時完成了代碼與測試描述(針對被測對象的測試描述)的映射。該框架的原理是基於數據驅動的基礎上,完成了對被測對象的拆分、抽象、 封裝使之映射成個個「關鍵詞」 (測試描述),編寫測試用例時,僅需要對關鍵詞進行組合 ,即可完成不同場景的測試用例開發。
優點:對於業務手工測試人員,由面向代碼或配置的開發轉化為面向自然語言(測試描述)的開發,最大程度的降低了開發難度與維護成本,同時提高了測試用例的易擴展性、易組織性,實現了自動化代碼不隨用例的增長而增多。
缺點:對測試人員的測試開發能力以及業務了解程度要求很高。
適用場景:被測對象包含復雜業務流程(邏輯),當然復雜的能做簡單的更ok。
了解 更多可以看著這篇文章,希望對你有所幫助,歡迎關注、點贊支持。
https://www.toutiao.com/i6616242076721873416/
Ⅲ 如何搭建python自動化測試框架
1
新建一台Jenkins伺服器,安裝並配置好Jenkins
2
配置一個自動化測試腳本的代碼庫,可以使用Git或者SVN等版本控制工具。然後在Jenkins伺服器上配置一個Job,負責自動的同步最新代碼到Jenkins伺服器上。
3
配置要跑自動化測試的虛擬機VM,推薦干凈環境下安裝需要跑自動化測試的依賴軟體工具或者配置以及自動化測試工具(不提前安裝配置也行,可以在跑自動化之前用另外的腳本自動安裝配置),配置好之後關機並打一個snapshot鏡像快照,並命名為prebuild或其它。
4
新建一個Jenkins Job,用來跑自動化。配置需要連接並使用的自動化測試虛擬機,配置要構建的自動化測試框架xml腳本文件(後面步驟有說明)和target,以及要歸檔的測試報告,郵件發送等等。
5
接下來的重點就是自動化測試框架的xml腳本文件了,首先裡面定義一個target,負責獲取自動化測試對象的安裝包。
6
接著定義一個target(可選),負責從版本庫上獲取自動化測試腳本同步到Jenkins伺服器上(也可以直接使用Jenkins Job本身的插件配置來獲取代碼)。
7
定義一個target,負責連接到虛擬機伺服器,並恢復到虛擬機的原始狀態例如prebuild,然後開機
8
定義一個target,負責拷貝項目產品安裝包和自動化測試源代碼到目標虛擬機上。
9
定義一個target,負責連接到目標測試虛擬機,並打開自動化測試工具,然後運行自動化測試腳本
10
定義一個target,負責處理自動化測試報告文件和日誌文件並把它們從自動化測試虛擬機拷貝到Jenkins伺服器對應的Job工作空間下。
11
最後定義一個主target,按照上面的target流程依次調用。這個主target就是Jenkins伺服器上的自動化測試Job中配置的需要構建的Target。
Ⅳ 基於python的自動化測試框架有哪些
好象python的瀏覽器測試框架,原來只有一個,還是仿ruby的框架做的。似乎在IE上可以比較好的應用。很老的框架。對JS支持不好。
不過python寫個測試框架真是非常容易的事情,隨手就來。 基於瀏覽器測試也容易做。因為你可以使用pyqt,這個庫里有一個基於webkit的瀏覽器。基本上,想做什麼都可以了。
最近聽說有幾個新的BDD的框架正在做。也不知道怎麼樣。
其實對於python這種語言來說,框架的成本太低。所以最好不要做框架。它有一個基本的編程原則則DRY。do not repeat yourself。不要再造輪子的意思。
直接使用現有的python的testsuite結合進程,線程模型,還有QT輕松就組裝出一個測試模塊。
Ⅳ 當前PYTHON常用的測試框架有哪些
從GitHub中整理出的15個最受歡迎的Python開源框架。這些框架包括事件I/O,OLAP,Web開發,高性能網路通信,測試,爬蟲等。 Django: Python Web應用開發框架 Django 應該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。
Ⅵ 怎麼搭建 python 的介面自動化測試框架
1.框架搭建
1.1 將struts2中的jar文件導入到項目中
commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.15.jar,ognl-2.7.3.jar
struts2-core-2.1.8.1.jar,xwork-core-2.1.6.jar
1.2 將struts.xml文件拷貝到項目的src目錄下
1.3 修改web.xml文件
添加:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.action中方法的調用方式
2.1 自動方法調用(只能調用execute)
2.2 指定方法調用(通過設置action標簽中的method屬性)
2.3 動態方法調用(在調用時,在action後加!方法名稱,如:login!deletUser)
注意:<constant name="struts.enable.DynamicMethodInvocation" value="true" />
2.4 通配符調用
3. action接收客戶端參數的方式
3.1 直接在action中定義參數變數,並生成set和get方法
3.2 定義接收參數的類
注意:都要為action的成員變數提供get和set方法
3.3 讓action實現ModelDriven介面,並實現裡面的getModel方法
4.獲取request,session,application的方式
4.1 用ActionContext獲取,實際上獲取到的都是Map對象
4.2 用ServletActionContext獲取,獲取到的是基於Servlet API的對象
Ⅶ python寫的測試框架怎麼使用
安裝
>pipinstall-Upytest#通過pip安裝
>py.test--version#查看pytest版本
Thisispytestversion2.7.2,importedfromC:Python27libsite-packagespytest.pyc
簡單的測試
讓我們創建第一個文件,對個簡單的功能進行測試。
好吧!其實, 我也不理解這段代碼的含義,但是執行它的可運行測試用例了。
pytest/
├──test_case/
│├── test_sample.py
│├──test_class.py
│├── __init__.py
│ └──test_case2/
│ ├── test_main.py
│ ├── test_time.py
│ └──__init__.py
└──runtests.py
執行runtest.py文件。
>python runtest.py
當然,你也可以打開runtests.py 文件運行它。
===================================================================
*最後,pytest是如果識別測試用例的呢?它默認使用檢查以test_ *.py 或*_test.py命名的文件名,在文件內部查找以test_打頭的方法或函數,並執行它們。
pytest還有許多需要討論的地方,做為這個系列的第一節,先介紹到這里。
Ⅷ Python自動化測試框架有哪些
1、Unittest
是python內置的標准類庫,它的API跟java的Junit、.net的NUnit、C++的CppUnit很相似,通過繼承unittest.TestCase來創建一個測試用例。
2、 Doctest
Doctest模塊會搜索那些看起來像互動式會話的python代碼片段,然後嘗試執行並驗證結果,即使從來沒有接觸過Doctest,我們也可以從這個名字中窺到一絲端倪,它看起來就好像代碼里的文檔字元串(docstring)一樣。
3、py.test
是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更加簡潔、效率更高;根據官方介紹,它具有以下特點:非常容易上手、入門簡單、文檔豐富,有很多實例可以參考;能夠支持簡單的單元測試和復雜的功能測試;支持參數化;支持重復執行失敗的case。
4、Nose
Nose是對unittest的擴展,使得python的測試更加簡單,Nose自動發現測試代碼並執行,提供了大量的插件,nose不是python自帶模塊,需要用pip安裝。
5、tox
最大的特色,是自動化測試環境的管理以及使用多個解析器配置進行測試;
6、Unittest2
是Unittest的升級版本,對API進行了改善以及更好的診斷語法。