軟件測(cè)試在大部分的軟件開發(fā)項(xiàng)目中都是非常重要的組成部分,而隨著互聯(lián)網(wǎng)的不斷發(fā)展,自動(dòng)化的測(cè)試方法被更多的程序員掌握。
為高平等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及高平網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、高平網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
下面我們就一起來了解一下,自動(dòng)化單元測(cè)試的基本原理。
越是在底層的測(cè)試類型,其測(cè)試的成本越低,反饋越及時(shí)。
在單元測(cè)試階段能發(fā)現(xiàn)的一個(gè)缺陷,假設(shè)修復(fù)它的成本是10塊錢,那如果它沒有在這個(gè)階段被發(fā)現(xiàn),而是推遲到了組件測(cè)試階段,那修復(fù)它的成本是100元,以此類推,每晚一個(gè)階段發(fā)現(xiàn),其修復(fù)成本都會(huì)增加一個(gè)數(shù)量級(jí)——想一想那高昂的溝通和回歸成本吧。
如果在線上才發(fā)現(xiàn)這些缺陷,那成本和損失就更難以估量。
基于上面的原理,專業(yè)的開發(fā)團(tuán)隊(duì)?wèi)?yīng)該選擇一個(gè)合理的測(cè)試策略。
先是測(cè)試覆蓋率的要求不一樣。
單元測(cè)試的覆蓋率終極目標(biāo)可以追求100%,但系統(tǒng)測(cè)試能做到10%就已經(jīng)很昂貴了。
其次,是每種測(cè)試類型的關(guān)注內(nèi)容應(yīng)該不一樣。
單元測(cè)試關(guān)心代碼層面的正確性,大多數(shù)的異常路徑都是由單元測(cè)試來覆蓋的,單元測(cè)試應(yīng)該由開發(fā)者自己來做,組件測(cè)試更多的關(guān)心成功路徑的情況,以及一些明顯的極端情況、邊界狀態(tài)和可選路徑,組件測(cè)試可以由QA和業(yè)務(wù)人員來負(fù)責(zé)。
軟件在其生命周期內(nèi)會(huì)頻繁地變更,這和建筑物、飛機(jī)汽車等非常不同,充分體現(xiàn)了軟件”軟“的一面。
在這種高度變化的環(huán)境下,要每次做到這么高的測(cè)試覆蓋率,成本是巨大的。
幸好,也正是由于軟件”軟“的一面,自動(dòng)化的測(cè)試在軟件領(lǐng)域更容易實(shí)現(xiàn)。
什么是自動(dòng)化單元測(cè)試1.自動(dòng)化單元測(cè)試=自動(dòng)化+單元+測(cè)試近,我調(diào)研了一些自動(dòng)化單元測(cè)試覆蓋率是個(gè)位數(shù)的應(yīng)用,下面寧夏電腦培訓(xùn)用實(shí)例來說明什么不是自動(dòng)化單元測(cè)試,然后大概就清楚了為什么對(duì)很多開發(fā)者來說自動(dòng)化單元測(cè)試那么難。
個(gè)別的Java開發(fā)者還在寫main方法,通過System.out.println()的方式來做單元測(cè)試,main方法很難被自動(dòng)執(zhí)行,println的結(jié)果也需要人眼去盯著判斷,顯然這種單元測(cè)試不是自動(dòng)化的。
自動(dòng)化測(cè)試的問題我們?cè)谇皫灼诘奈恼轮幸呀?jīng)給大家分析過很多了,而且就不同的運(yùn)行環(huán)境下的自動(dòng)化測(cè)試方法也做了歸類,下面IT培訓(xùn)就一起來了解一下,目前比較常見的幾種自動(dòng)化測(cè)試形式都有哪些。
物聯(lián)網(wǎng)測(cè)試物聯(lián)網(wǎng)(InternetofThings,IoT)正對(duì)測(cè)試領(lǐng)域產(chǎn)生顯著的影響。
像Selenium這樣的傳統(tǒng)自動(dòng)化方法在嵌入式環(huán)境中變得毫無用處。
我們已經(jīng)看到越來越多的基于Python和C/C++的測(cè)試框架執(zhí)行單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試。
大多數(shù)測(cè)試框架都是測(cè)試由這些嵌入式庫導(dǎo)出的API,其中相當(dāng)多的框架調(diào)用嵌入式代碼來執(zhí)行單元測(cè)試。
這需要具有重要軟件開發(fā)經(jīng)驗(yàn)的專業(yè)測(cè)試工程師,但我們看到更多的軟件開發(fā)人員將被部署到自動(dòng)化測(cè)試的角色。
Python可能是物聯(lián)網(wǎng)測(cè)試框架開發(fā)的選語言,因?yàn)樗軌蛑苯邮褂胏types包來調(diào)用C代碼。
另一個(gè)新趨勢(shì)就是物聯(lián)網(wǎng)的DevOps環(huán)境開始標(biāo)準(zhǔn)化。
到目前為止,我們看到的大多是CI環(huán)境的Ad-hoc實(shí)現(xiàn)。
我們已經(jīng)預(yù)先構(gòu)建了解決方案,用于構(gòu)建管理、測(cè)試管理、鏡像加載、物聯(lián)網(wǎng)鏡像在不同設(shè)備上的部署、不同構(gòu)建物聯(lián)網(wǎng)設(shè)備的A/B測(cè)試等。
持續(xù)測(cè)試持續(xù)測(cè)試是從去年至今仍在繼續(xù)的另一個(gè)趨勢(shì)。
我們?cè)谶^去已經(jīng)看到了DevOps和CI/CD框架的爆炸式增長(zhǎng),而今年這種趨勢(shì),將隨著新的框架(如Nevercode和Codefresh)的出現(xiàn)而繼續(xù)。
持續(xù)測(cè)試的另一個(gè)趨勢(shì)是對(duì)每個(gè)版本進(jìn)行基于人工智能的風(fēng)險(xiǎn)評(píng)估。
以前,這種操作是手工執(zhí)行的,以確定能為應(yīng)用程序部署哪些版本。
我們已經(jīng)實(shí)現(xiàn)了幾個(gè)CI/CD平臺(tái),它們執(zhí)行應(yīng)用程序基于人工智能的自動(dòng)A/B部署。
基于人工智能的測(cè)試基于人工智能的測(cè)試方法已不僅僅是時(shí)髦語,現(xiàn)在已經(jīng)進(jìn)入了主流測(cè)試實(shí)踐。
人工智能和自動(dòng)化是測(cè)試的兩個(gè)并行方面:自動(dòng)化用于功能測(cè)試,而人工智能則用于視覺測(cè)試。
基于人工智能的視覺測(cè)試,包括視覺測(cè)試和感覺測(cè)試,并快速瀏覽每個(gè)構(gòu)建版本的視覺變更,是一個(gè)非常有用的發(fā)布驗(yàn)證方法。
我們已經(jīng)在Denver的不同客戶中實(shí)施了基于Applitools的視覺測(cè)試解決方案。
自動(dòng)化測(cè)試的問題我們已經(jīng)探討了很多次了,所以今天我們就給大家簡(jiǎn)單分享了在自動(dòng)化測(cè)試過程中常用的一些測(cè)試工具和方法,下面java課程就一起來了解一下吧。希望通過對(duì)本文的閱讀,能夠提高大家對(duì)自動(dòng)化測(cè)試的認(rèn)識(shí)和理解。
1.帶RobotFramework的Selenium
Selenium無疑是受歡迎的Web自動(dòng)化測(cè)試工具。其開源的特性是被廣泛使用的原因之一。您可以使用不同的語言在Selenium中實(shí)施各種框架,從而為自動(dòng)化測(cè)試提供更多的功能。
Selenium能夠支持多種操作系統(tǒng)(Windows、Mac、Linux)和多種瀏覽器(Chrome、火狐、IE和Headless類型瀏覽器)。我們可以運(yùn)用多種語言(如Java、Groovy、Python、C#、PHP、Ruby和Perl)來開發(fā)出不同的測(cè)試腳本。
Selenium內(nèi)置了許多工具和框架,您可以啟用它們來進(jìn)行持續(xù)測(cè)試。RobotFramework是Selenium用來進(jìn)行持續(xù)測(cè)試的一種常用的框架。通過Robot,您可以運(yùn)行各種自動(dòng)化測(cè)試,包括由SeleniumWebdriver所提供的、基于UI元素和API的測(cè)試。
Selenium既可以使用關(guān)鍵字驅(qū)動(dòng)的方法進(jìn)行驗(yàn)收測(cè)試,也可以進(jìn)行驗(yàn)收測(cè)試驅(qū)動(dòng)式的開發(fā)(AcceptanceTest-DrivenDevelopment,ATDD)。通過使用Python和Java所實(shí)現(xiàn)的附加測(cè)試庫,其測(cè)試功能得到了進(jìn)一步擴(kuò)展。而RobotFramework不僅可以用于Web應(yīng)用的測(cè)試,也可被用來測(cè)試Android和iOS的應(yīng)用。
但是,Selenium本身并不能滿足所有的持續(xù)測(cè)試需求。它需要與大量的工具相集成,以滿足在軟件開發(fā)生命周期(SDLC)中的不同目的。此外,Selenium還需要使用者具有高級(jí)的編程技能,并愿意花費(fèi)專門的時(shí)間與精力,來構(gòu)建自動(dòng)化框架,以滿足其特定的測(cè)試需求。
2.Testsigma
Testsigma是一個(gè)統(tǒng)一的、以AI驅(qū)動(dòng)測(cè)試的自動(dòng)化平臺(tái)。它采用Shift-Left方法,將持續(xù)測(cè)試集成到了端到端的持續(xù)交付生態(tài)系統(tǒng)之中。Testsigma通過減少自動(dòng)化測(cè)試技術(shù)中的復(fù)雜性,為功能和自動(dòng)化團(tuán)隊(duì)帶來了更多的靈活性。
功能測(cè)試人員可以輕松地使用自然語言,編寫出簡(jiǎn)化的代碼,來進(jìn)行自動(dòng)化測(cè)試。Testsigma通過可重用的步驟組合、與集中對(duì)象存儲(chǔ)庫(CentralizedObjectRepository)大限度地提高了測(cè)試代碼的重用性。同時(shí)它通過使用AI,來大幅降低了與測(cè)試有關(guān)的維護(hù)開銷。
Testsigma能夠與各種開源的或三方工具相集成。它支持上千種不同“設(shè)備+瀏覽器+操作系統(tǒng)”組合的云端測(cè)試環(huán)境,以不斷滿足各種的動(dòng)態(tài)測(cè)試需求。
Testsigma能為企業(yè)級(jí)的自動(dòng)化測(cè)試、和持續(xù)測(cè)試提供所有必需的功能,其中包括:數(shù)據(jù)驅(qū)動(dòng)測(cè)試、跨瀏覽器測(cè)試、可重用性測(cè)試套件、測(cè)試計(jì)劃與數(shù)據(jù)管理、電子郵件與Slack通知、并行測(cè)試執(zhí)行、集中對(duì)象/元素存儲(chǔ)庫、綜合報(bào)告、與CI工具的集成、以及自動(dòng)化Bug報(bào)告等。
作為一款基于云端的自動(dòng)化測(cè)試工具,Testsigma為Web、移動(dòng)Web、Android、iOS應(yīng)用、以及RESTful服務(wù)提供了各種類型的應(yīng)用支持。
3.IBMRationalFunctionalTester
RFT是另一種能夠進(jìn)行功能、API、性能和回歸測(cè)試的工具。RationalFunctionalTester使用記錄和回放來創(chuàng)建自動(dòng)化的功能測(cè)試,并將預(yù)期結(jié)果與執(zhí)行時(shí)系統(tǒng)所產(chǎn)生的實(shí)際結(jié)果相比較。
IBM支持廣泛的應(yīng)用程序,并能夠與IBMRationalQualityManager等工具相集成。另外,IBMRationalTestWorkbench還支持在API級(jí)別、用戶界面級(jí)別、以及整個(gè)系統(tǒng)級(jí)別進(jìn)行回歸測(cè)試,以實(shí)現(xiàn)在DevOps或持續(xù)交付生命周期內(nèi)的各種測(cè)試目標(biāo)。
Sikuli使用圖像識(shí)別方法來識(shí)別GUI元素,將你在屏幕上看到的一切自動(dòng)化。Sikuli腳本允許用戶使用屏幕截圖來自動(dòng)化GUI交互。
1. 運(yùn)行unit test腳本的時(shí)候,不能使用默認(rèn)的方式,應(yīng)該使用下面的代碼來運(yùn)行:
unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromTestCase(YOUR_TEST_CLASS))否則,unit test框架默認(rèn)會(huì)在執(zhí)行完所有case后退出程序,會(huì)導(dǎo)致sikuli報(bào)錯(cuò)。
2. 考慮關(guān)閉Sikuli的輸出。否則當(dāng)輸出太多時(shí),會(huì)把一些unit test的測(cè)試結(jié)果給刷掉,另外Sikuli的輸入太多,大部分是沒用的信息。筆者暫時(shí)沒有找到關(guān)閉輸出的方法,不過有另外一個(gè)方式,Sikuli在執(zhí)行時(shí)提供一個(gè)命令,可以配置Sikuli的log輸出文件。這樣可以讓Sikuli把自己的log輸出到單獨(dú)的文件中,這樣在命令行中運(yùn)行Sikuli腳本的時(shí)候,只會(huì)看到unit test的輸出,不會(huì)看到Sikuli的輸出了。
3.將sikuli-script.jar包添加到eclipse中。
4.編寫自動(dòng)化測(cè)試腳本: package com.mypro.sikuli; import org.sikuli.script.*; public class STest { public static void main(String[] args) throws FindFailed, InterruptedException { Screen s = new Screen(); //定義圖片存放路徑 String imgpath = "D:/java/sikuli/img/"; //雙擊桌面chrome瀏覽器圖標(biāo) s.doubleClick(imgpath+"chrome.png"); //輸入url s.type(imgpath+"url.png",""); s.click(imgpath+"lianxiang.png"); Thread.sleep(2000); //在bing輸入框輸入搜索關(guān)鍵字:sikuli,并點(diǎn)擊搜索按鈕 s.type(imgpath+"sreach_input.jpg","sikuli"); s.click(imgpath+"sreach_button.png"); System.out.println("end"); } }
當(dāng)前題目:java代碼自動(dòng)化測(cè)試 java自動(dòng)化測(cè)試selenium
本文來源:http://vcdvsql.cn/article32/ddojgsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、關(guān)鍵詞優(yōu)化、網(wǎng)站策劃、外貿(mào)建站、手機(jī)網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)