『壹』 web自動化測試
目前越來越多的人想學自動化測試,認為自動化測試好牛逼。經常在測試交流群里看見有HR發招聘廣告說:招初級(功能測試),招中級(性能測試),招高級(自動化測試)......
我不去討論他們這個初中高級的說法對不對,我只是覺得,越來越多的公司都希望把自動化測試做起來了。於是,市場給我們提了個要求,測試如果掌握了自動化,那麼工資會怎麼怎麼樣。
而對於自動化測試,其實又可以分為很多塊。見下圖:
同時根據平台也可以分成,Web自動化測試,App自動化測試等等。
我今天主要概括一下對於Web自動化測試而言,現在最火的一個工具----Selenium的學習思路。
1.首先,對於想學自動化測試的朋友,那麼你得懂一種語言,常用的比如Java或者Python。因為沒有語言基礎,你是寫不出自動化腳本的。
2.有了開發語言的鋪墊,那麼開始入手Selenium。了解它的發展,了解它的組成,了解它的實現原理。
3.當你對Selenium有了整體的了解後,可以開始學習了。實際上,我現在說的Selenium就是Selenium2。
4.(第一層次)首先你得知道:什麼是元素?怎麼去定位一個頁面元素?怎麼去控制元素?怎麼控制瀏覽器?.....學完這些,那麼恭喜你,你可以寫簡單頁面的自動化功能測試了。
5.(第二層次)熟練的編寫頁面自動化腳本:碰到復雜的頁面,比如嵌套很多,知道怎麼去跳轉。復雜元素,怎麼去定位,各種頁面元素的處理,比如表格、下拉框、彈出框等等。
6.(第三層次)熟練掌握上面技巧之後,開始學習怎麼將頁面元素與代碼分離,學習數據驅動(TestNG),以及怎麼樣結合Excel去做自動化測試。
7.(第四層次)學習持續集成的方法,怎麼樣將自動化測試更加「自動化」。同時,開始學習自動化測試框架,能夠根據產品的實際情況來編寫合適的測試框架。
以上,我認為大體就是學習web自動化測試的一個思路。都是個人觀點,而且由於時間原因,寫的不是很詳細,還請大家見諒。
『貳』 如何做自動化測試
這個問題是寫給想要做自動化測試的人,或許你以為軟體測試的門檻很低,低到任何人都可以做,隨便點點就可以了,這個行業太low了,所以你想做自動化測試,提升自己的逼格,我想說手工測試並不low,如果讓一個什麼都不懂,一點業務基礎都沒有的人去做測試,能測出來問題嗎?不要忽略你的業務知識儲備.
你的業務知識儲備的積累能讓你成為不可替代的行業專家,而做自動化的碼農會因為一個時代的更迭被小鮮肉替代。
扯了這么多,究竟什麼什麼樣的人能做自動化測試?
我的理解分一下幾點:
a. 擁有代碼能力
掌握一門開發語言,java、Python、ruby、c#
b. 熟悉被測系統
比如你是web測試,你就得懂js、css、html、xpath
你是移動端測試,你就得具備Android 開發基礎和iOS開發基礎,會debug app
你是 C/S測試你就要很熟悉TCP、IP協議
c. 掌握一套自動化測試框架(工具)
比如 selenium/appium
nunit/testng
robot framework/cucumber
d. 善於學習,達到知其然知其所以然
IT行業變化太快,每隔一段時間就會出現一些新興的東西,也會出現原來很火的東西逐漸沒落,誰也無法預測。
曾經諾基亞還是手機霸主,靠塞班一統天下,然而不思進取,落得個賣身求生存.
曾經qtp很火,曾經selenium也很火,現在appium也很火
軟體行業從桌面軟體到web端,又從web端遷移到移動端,誰也不知道下一個是什麼。而我們作為軟體行業的從業者,不能因為那些很火的東西不火了而讓自己沒落,一個人最為核 心的能力就是學習能力,如果你善於學習,你就不必擔心這些變遷,因為你可以毫無壓力的遷移,selenium的原理你掌握了,學習appium簡直小菜一碟,因為appium使用的是
selenium WebDriver protocol .如果你能做到知其然知其所以然,你也可以造輪子,改造appium,畢竟現在很多功能需要完善。
如果你沒有達到以上的幾點,建議你還是做手工測試吧。
『叄』 怎麼學習自動化測試
首先,想從事自動化測試,必須先了解What/Why/How,也就是常說的去了解什麼是自動化測試、為什麼要進行自動化測試、該如何進行自動化測試,這類的資料在網上有很多,這里就不做重復了; 其次,需要根據項目的特點,選擇合適的自動化測試工具,並了解工具的特性。以QTP為例,該如何去掌握它呢?對於初學者,大多數都是通過錄制的方式來生成腳本,這個階段應該掌握的基礎知識有:1) QTP是如何去識別對象的,對於新手經常會出現錄制的腳本回放的時候報錯的現象,這個時候就應該考慮為什麼呢?如果很了解QTP識別對象的原理啊,我想就能很快定位到原因了2) 去掌握一些QTP對象的方法,如GetROPreperty、GetTOPreperty、ChildObjects等等,對於相似的方法應該去搞清楚到底區別在哪?像GetROPreperty、GetTOPreperty有什麼區別等3) 什麼是Action參數、什麼又是Test參數?兩者有什麼區別,又有什麼聯系,在同一Test和不同Test間這些參數如何工作4) 什麼是環境變數?環境變數是如何建立和使用的,環境變數在參數傳遞中和action參數、test參數有什麼不同5) 了解檢查點的知識,明白什麼是內置檢查點,什麼又是自定義檢查點。並搞清楚在什麼時候該如何使用檢查點6) 掌握對象庫的操作,了解對象庫對於測試的意義,象是否啟用智能識別對測試腳本有何影響、為什麼同一對象識別起來會有_1、_2之類的後綴等都是需要去研究清楚的問題這幾個問題都搞清楚的話,那基本就能夠利用QTP生成正確的腳本了,當然以上只是部分必須掌握的內容,其實還是很多細節的設置,就需要在實際運用中去掌握了。接下來,就可以進一步提升自己的QTP運用水平了,這個階段就需要去學習vbs知識和如何運用描述性編程實現腳本了,同時在這個過程中還需要去學習html知識、DOM、XML、以及像excel、word等的API知識了,總的來說,這個階段應該掌握的內容大體上包括:1) VBscrīpt的基礎知識,熟悉常用的方法和函數,掌握文件對象的操作等2) 熟練掌握XML技術;excel、word等API對象,可以根據需要創建日誌等3) 熟練掌握DOM和HTML知識,能夠結合這些技術對Web頁面進行解析4) 掌握資料庫的基本操作語句,能夠利用ADO對象進行數據操縱5) 熟練掌握正則表達式,很多時候處理對象問題相當方便6) 掌握如何調用dll進行工作7) 能夠利用QTP的自動化對象模型創建出需要的運行模式8) 掌握WMI知識以上只是我考慮到的部分,並不全面,呵呵,供大家參考,當然這些技術主要是針對Web系統運行,因為我們的系統就是B/S的,呵呵。如果這些知識都能夠扎實的掌握的話,個人認為,基本上能夠處理自動化過程中的絕大多數問題了,這個時候你對自動化測試的技術應該是有一定積累了。接下來就需要考慮自動化測試框架問題了。當腳本規模到了一定的程度,就會面臨一些問題,如:1) 如何有效的管理並調度腳本2) 如何實現腳本運行的無人值守,測試過程中能夠自動進行錯誤處理並進行日誌記錄3) 如何生成簡介明確的測試報告4) 如何能夠更加高效的維護測試腳本5) 實現框架代碼和業務代碼的分層、業務腳本和業務數據的分離這個階段主要體現的是測試人員的測試思想,是可以脫離工具獨立存在的過程。當然各個公司項目的實際情況不同,導致設計出來的思想不同,但總體上來說一般包括數據驅動和關鍵字驅動兩種模式。後者實現的技術難度大於前者,大多數公司目前都採用的數據驅動模式。這個階段不應局限於技術運用上,而需要從測試全局考慮,進行分層設計、模塊化實現,減少代碼之間的耦合。如果以上三個方面都能夠做的很好的話,那麼恭喜你,你已經可以獨立負責項目的自動化測試建立工作了,呵呵!總之,學習自動化測試需要在實際項目中進行,這樣提高的會比較快,項目中運用了很多種技術,自動化實施過程會碰見各種各樣的問題,是很好的學習機會,關鍵要善於總結、積累經驗,只要能夠把各個細節做好,那麼你一定能夠成為一名優秀的自動化測試工程師。
『肆』 web測試中對客戶端和伺服器的性能測試都涉及到什麼
這種就類似於雲計算等後端基礎服務的測試,對於一些大的公司,會有一個專門的團隊來開發這種後端基礎服務,這種服務當然也需要測試人員來保證質量。
這類服務一般都是通過HTTP介面的方式提供給剛才講的WEB/APP的後端使用,所以,第一個要做的也就是介面測試,也就是用Postman等工具做手工測試、用TestNG+HttpClient或者Python的Nose框架做自動化測試。
不過,對於這類後端服務來說,介面只是暴露給外用的部分,內部邏輯通常是非常復雜的,所以,除了針對介面做測試之外,測試人員還需要細致地了解這些服務端產品的技術框架及技術實現,需要了解到模塊的級別,對於系統框架圖、時序圖等都有很好的理解。針對這些理解去設計用例,再跟開發一起討論如何實現用例。
如果這種基礎服務用了某一個開源軟體,那通常也需要測試人員能關注社區的進展,並把我們發現的Bug及解決方案等推到社區,為社區做貢獻。
除了介面測試之外,在我們公司,異常測試、穩定性測試、性能測試也是服務端測試必備的測試類型。
異常測試會模擬各種異常情況,比如硬體異常-機器掛掉的情況下能否啟動備機、硬碟掛掉的情況下是否會丟失數據;網路異常-網路忽然斷掉、或者網路流量變小的情況;系統異常-操作系統忽然掛掉的情況。這些極端的情況出現的時候,我們需要驗證數據有沒有丟、能不能盡快啟動備機對外提供服務、系統狀態有沒有異常等。我們會採用各種方式或者工具來模擬這些異常,比如用TrafficControl工具來控制網路流量。
穩定性測試,就是模擬系統在7*24的運行下會不會出問題,一般會用介面測試或者性能測試用例不斷地跑,在運行期間,我們會模擬各種情況,比如說負載的變化、系統的各種干擾等。可以用ChaosMonkey等工具來進行這類測試。
性能測試,其實細分起來會有各種類型,比如負載測試、壓力測試、配置測試、甚至還有線上壓測、容量規劃等。最常規的性能測試,一般是先規定一個系統需要承受的壓力,比如說,某一個系統,1個小時之內會有1W單的單子,那基於這個需求我們分析伺服器後端需要承受的壓力,分析出來以後,就寫性能測試腳本,然後逐漸增加壓測的力度,直到超過這個預定的壓力。通常在這個測試過程中會發現各種問題,比如資料庫索引沒有建、線程池太小、系統異常等。需要解決了之後再加大壓力測試。也是用Grinder/JMeter等工具來進行性能測試,不過難的不是這些工具的使用,而是發現問題以後的定位。
對於這種後端服務的測試人員來說,技術上的要求是挺高的,需要有較好的編程能力,需要對資料庫、操作系統等機制有很好的了解才行。
『伍』 testng自動化測試框架怎麼用
1、前提
安裝好jdk
配置好Java環境變數
安裝Eclips
這些網上都有,就不再詳細介紹。
2、安裝TestNG插件
在線安裝由於網速原因,速度較慢。下面是離線安裝方式。
(1)解壓eclipse-testng離線包.zip
(2)將【eclipse-testng離線包/feature】中的文件夾org.testng.eclipse_6.8.6.20130607_0745復制到【MyEclipse安裝目錄/features】目錄下
(3)將【eclipse-testng離線包/org.testng.eclipse_6.8.6.20130607_0745】文件夾復制到【MyEclipse安裝目錄/plugins】目錄下
(4)重啟MyEclipse,Windows - show view - TestNG
3、安裝Ant
(1)解壓apache-ant-1.9.6-bin.zip到任意目錄下
(2)配置Ant環境變數,在Path變數末尾添加:<Ant目錄>/bin;
二、在Eclipse中創建Java工程
1、Eclipse -> File -> New -> Java Project,如下圖,在彈窗中填入Project name,點擊Finish,即可完成工程的創建。
『陸』 如何完成這個Web自動化測試框架
1. ui自動化是需要極大的腳本維護工作量的,那平台腳本的可維護性一和易用性定要好。
2. junit和testng框架都可以提供很完善的測試報告輸出功能,不要用log4j打報告,log4j用來輸出日誌,增加平台的腳本的可維護性。
3. 增加定時執行功能和郵件發送報告的功能,增加持續集成介面,自動測試應該不需要人手工觸發。
4. 給自己的測試平台再寫一套高覆蓋率的單元及介面測試套件吧測試平台本身吧。
『柒』 如何用testng實現介面自動化測試
下面看看是如何一步步實現的:1、在TestNG的XML中設置參數。下 面的截圖中,我設了兩個參數,一個是testEnv,另一個是browser。參數的值可以直接寫死,也可以由外部傳入。參數有不同的作用域,如直接寫 在<suite>下,那他的作用域就是整個suite。如寫在<test>下,那他的作用域就是所在的test。2、在測試代碼中使用參數。如下所示,我是在beforeClass 方法中,根據傳入的兩個參數來初使化瀏覽器和load 相應環境的測試數據。3、修改pom.xml文件4、Jenkins job 傳入參數並執行mvn命令 在job中,我設置了兩個參數,並給出了默認值。執行job時,可直接使用該默認值或根據實際情況把參數的值改成自己想要的。下面是Maven命令:mvn clean test -DtestEnv=%testEnv% -DxmlFileName=%xmlFileName%執行這條命令時,我們把testEvn及xmlFileName兩個參數的值傳入了pom.xml文件,接著,Maven在調用TestNG時又會把參數傳過去。經過如上四個步驟,我們可以通過參數傳遞,靈活的指定測試環境、測試范圍等,而不需要對測試腳本做任何改動。這邊要講下xmlFileName這個參數。因為考慮到要執行不同的用例集,比如只針對某一模塊進行自動化測試,或對項目所有的功能進行全面回歸,我們可以創建不同的TestNG XML文件,然後在執行mvn命令時指定你想要跑的那個XML文件。該方法適用於所有使用Jenkins + Maven + TestNG的測試場景。
『捌』 自動化測試框架有哪幾種
冒昧的說一句,您這個問題問的可能比較大。
因為從自動化測試角度講的測試框架有很多種;而且並沒有什麼固定的條條框框。全部是根據測試需要及公司產品開發現狀進行搭建的。從通俗的 整體的角度講只要滿足:測試輸入(腳本編寫)-》測試執行-》結果輸出 這種模式的都可稱之為自動化測試框架。
而從不同的角度分析框架又可根據不同篩選條件分為多類:
如:1.腳本語言方面分析,很多種語言提供了多種自動化測試的基礎框架:
1)ruby的Watir開源自動化測試框架、Test::Unit單元測試框架、開源測試框架Ruby on Rails 等等
2)java的junit回歸測試框架、Mockito、TestNG、easyb等等等等
3)Perl的perl Mechanize、Test::Base數據驅動測試等等等等
4)Python的PyUnit、PAMIE等等等等
5)基於Tcl/Tk的swift 自動化測試框架,ATF/VTP自動化測試框架
以上僅列舉自動化測試常用的幾種腳本語言的測試框架,當然不僅僅是這些
2.從測試體系角度分又分為:
1)單元測試框架.
2)系統測試框架
3)集成測試框架
。。。。。
3.基於測試目的的劃分
1)GUI自動化測試框架
2)網路協議自動化測試框架
3)基於web的自動化測試框架
。。。。。
4.從實現深度和角度分類:
1)簡單的錄制回放測試框架(或工具)
2)關鍵字驅動的測試框架
3)關鍵字驅動及結果輸出分析的自動化測試框架
4)智能匹配功能及具備快速腳本生成功能的自動化測試框架
。。。。。。
5.從測試工具角度分:
有些測試工具是許多大型公司結合了很多測試經驗及數據後進行開發的自動化測試軟體或者稱之為測試管理軟體的自動化管理部分及自動化測試部分;也有人稱之為自動化測試框架或自動化測試工具。比如QTP;LoadRunner;Quality Center、selenium等等。都具有一定的自動化測試及管理功能。
所以總的來看,測試框架分為很多種;不知提問者問的是哪個具體方面的。
筆者水平有限,僅能做個基本介紹,希望能有所幫助。也祝願所有從事自動化測試相關工作的同志事業順利。歡迎溝通交流
『玖』 自動化測試工具有哪些
自動化測試工具有如下幾種:
1、WinRunner
Mercury Interactive公司的WinRunner是一種企業級的功能測試工具,用於檢測應用程序是否能夠達到預期的功能及正常運行。
通過自動錄制、檢測和回放用戶的應用操作,WinRunner能夠有效地幫助測試人員對復雜的企業級應用的不同發布版進行測試,提高測試人員的工作效率和質量,確保跨平台的、復雜的企業級應用無故障發布及長期穩定運行。企業級應用可能包括Web應用系統,ERP系統,CRM系統等等。
2、Rational Robot
是業界最頂尖的功能測試工具,它甚至可以在測試人員學習高級腳本技術之前幫助其進行成功的測試。它集成在測試人員的桌面IBM Rational Test Manager上,在這里測試人員可以計劃、組織、執行、管理和報告所有測試活動,包括手動測試報告。
這種測試和管理的雙重功能是自動化測試的理想開始。
3、AdventNet QEngine
AdventNet QEngine是一個應用廣泛且獨立於平台的自動化軟體測試工具,可用於Web功能測試、web性能測試、Java應用功能測試、Java API測試、SOAP測試、回歸測試和Java應用性能測試。
支持對於使用HTML、JSP、ASP、.NET、PHP、JavaScript/VBScript、XML、SOAP、WSDL、e-commerce、傳統客戶端/伺服器等開發的應用程序進行測試。此工具以Java開發,因此便於移植和提供多平台支持。
4、SilkTest
是業界領先的、用於對企業級應用進行功能測試的產品,可用於測試Web、Java或是傳統的C/S結構。SilkTest提供了許多功能,使用戶能夠高效率地進行軟體自動化測試。
這些功能包括:測試的計劃和管理;直接的資料庫訪問及校驗;靈活、強大的4Test腳本語言,內置的恢復系統(Recovery System);以及具有使用同一套腳本進行跨平台、跨瀏覽器和技術進行測試的能力。
5、QA Run
QARun的測試實現方式是通過滑鼠移動、鍵盤點擊操作被測應用,即而得到相應的測試腳本,對該腳本可以進行編輯和調試。在記錄的過程中可針對被測應用中所包含的功能點進行基線值的建立,換句話說就是在插入檢查點的同時建立期望值。
在這里檢查點是目標系統的一個特殊方面在一特定點的期望狀態。通常,檢查點在QARun提示目標系統執行一系列事件之後被執行。檢查點用於確定實際結果與期望結果是否相同
『拾』 怎麼搭建selenium2+eclipse+testng的自動化測試環境
1、 Selenium IDE:selenium-ide-2.2.0.xpi 用來在Firefox上錄制腳本。
2、 Selenium RC:selenium-server-standalone-2.33.0.jar 模擬伺服器端,不可少。
3、 IEDriverServer:DriverServer_Win32_2.33.0.zip IE驅動,Firfox和chorm不用驅動。
4、 Selenium Client Drivers:selenium-java-2.33.0.zip 模擬Selenium客戶端。