日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

初學(xué)者自動(dòng)化測(cè)試–終極指南

 軟件測(cè)試test 2020-08-04

有人說(shuō),從手動(dòng)測(cè)試人員過(guò)渡到自動(dòng)化開發(fā)人員是一個(gè)自然的過(guò)程,并且是測(cè)試領(lǐng)域的另一個(gè)演進(jìn)部分。我與之交談的許多測(cè)試人員都描述了他們手動(dòng)測(cè)試相同的過(guò)程并一次又一次地查看測(cè)試文檔是多么的不舒服……他們看到自己擔(dān)任自動(dòng)化測(cè)試角色,同時(shí)也增加了薪水(這也很重要)。

盡管從手動(dòng)測(cè)試人員到自動(dòng)化開發(fā)人員的過(guò)渡是顯而易見(jiàn)的,但這并不意味著并不困難,很多時(shí)候我遇到了一個(gè)問(wèn)題–“ 我怎樣才能過(guò)渡到自動(dòng)化測(cè)試?”。

我決定創(chuàng)建一個(gè)指南,解釋如何進(jìn)行這種轉(zhuǎn)換,以及測(cè)試人員應(yīng)該采取哪些步驟來(lái)實(shí)現(xiàn)他或她在自動(dòng)化測(cè)試中的第一份工作。

盡管這兩個(gè)角色(手動(dòng)和自動(dòng)化)都位于同一部門下,并且通常由同一個(gè)人(例如QA經(jīng)理)來(lái)管理,但過(guò)渡仍然需要從頭開始獲得自動(dòng)化知識(shí)。

在下圖中,您將能夠看到手動(dòng)測(cè)試人員要成為自動(dòng)化開發(fā)人員所需要學(xué)習(xí)的所有步驟。我將在本指南中解釋這些步驟中的每個(gè)步驟,同時(shí)提及您在每個(gè)步驟中需要學(xué)習(xí)的確切主題,并包括有助于實(shí)現(xiàn)自動(dòng)化學(xué)習(xí)目標(biāo)的有用資源 ??

*盡管許多自動(dòng)化開發(fā)人員并不熟悉所有這些圖表步驟,但是這是我們?cè)谧詣?dòng)化過(guò)程中應(yīng)始終努力的目標(biāo)。不要害怕需要學(xué)習(xí)的科目數(shù)量。您不需要全部學(xué)習(xí),當(dāng)然也不必同時(shí)全部學(xué)習(xí)。

面向?qū)ο缶幊陶Z(yǔ)言

自動(dòng)化開發(fā)人員實(shí)際上是軟件開發(fā)人員。因此,您首先應(yīng)該學(xué)習(xí)的基本知識(shí)是某種支持面向?qū)ο蠓椒ǖ木幊陶Z(yǔ)言。在自動(dòng)化領(lǐng)域的通用語(yǔ)言中,值得一提的是JavaPython,它們也被認(rèn)為更易于學(xué)習(xí)。此外,自動(dòng)化開發(fā)人員還用C#,JavaScript編寫,還有一些還用Ruby編寫。

無(wú)論您選擇哪種語(yǔ)言,該語(yǔ)言的原理都相同:數(shù)據(jù)類型,變量,運(yùn)算符,語(yǔ)句,OOP(類,對(duì)象,方法,構(gòu)造函數(shù),繼承,抽象類,接口,多態(tài)性),異常和錯(cuò)誤,文件, 常用表達(dá)…

資源:有很多用于學(xué)習(xí)不同語(yǔ)言的教程,涉及獨(dú)立學(xué)習(xí)時(shí),我總是更喜歡從視頻(騰訊課堂/B站)中學(xué)習(xí),而不是從書本中學(xué)習(xí)。

開發(fā)展生態(tài)系統(tǒng) 

開發(fā)生態(tài)系統(tǒng)涉及所有互補(bǔ)的學(xué)科,這些學(xué)科完成了您決定學(xué)習(xí)的編程語(yǔ)言的核心研究。這些是與特定語(yǔ)言無(wú)關(guān)的主題,它們將在編寫高效,干凈和無(wú)錯(cuò)誤的代碼的過(guò)程中為您提供幫助。這是此類別下的(部分)主題列表:數(shù)據(jù)結(jié)構(gòu),算法,干凈代碼,應(yīng)用程序編程接口(API),設(shè)計(jì)模式,版本控制管理(Git),存儲(chǔ)庫(kù),構(gòu)建管理工具(Maven / Gradle / Ivy…), Package Managers (NPM / Composor / Nuget / Pip / Gems…)

單元測(cè)試框架

現(xiàn)在,我們開始接近測(cè)試和測(cè)試自動(dòng)化世界,在這個(gè)世界中,我們有許多用于單元測(cè)試的框架。這些框架使我們能夠使用諸如注釋或?qū)傩灾惖脑獢?shù)據(jù)功能,將編寫的代碼轉(zhuǎn)換為可測(cè)試的代碼。此外,使用這些框架,我們可以插入測(cè)試功能,各種執(zhí)行機(jī)制,報(bào)告等。

有一些流行的框架,例如:

  • Java的JUnitTestNG

  • C#的MSTest,NUnitxUnit

  • 適用于Python的unittestpytest

  • Mocha,JasminChai for JavaScripts

在開始使用單元測(cè)試框架時(shí),您應(yīng)該學(xué)習(xí)以下兩個(gè)主題:注釋/屬性,運(yùn)行程序(具有并行),斷言,測(cè)試套件,CI集成。

服務(wù)器端和客戶端

在這一部分中,我們將深入研究服務(wù)器端和客戶端,并理解為什么我們需要同時(shí)了解兩者:

  • 服務(wù)器端

    • 網(wǎng)頁(yè)服務(wù)

    • 數(shù)據(jù)結(jié)構(gòu)

    • API測(cè)試

    • 數(shù)據(jù)庫(kù)測(cè)試

  • 客戶端

    • HTML,CSS,JS

    • 網(wǎng)頁(yè)

    • 移動(dòng)

    • 桌面

讓我們從服務(wù)器端開始。

服務(wù)器端– Web服務(wù)

在我看來(lái),Web服務(wù)及其各種協(xié)議是自動(dòng)化開發(fā)人員在嘗試專門研究服務(wù)器端測(cè)試時(shí)應(yīng)首先學(xué)習(xí)的內(nèi)容。為一些沉重的名字加上大括號(hào):

  • 簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)

  • 代表性狀態(tài)轉(zhuǎn)移(REST)

  • Web服務(wù)描述語(yǔ)言(WDSL)

  • 通用描述,發(fā)現(xiàn)和集成(UDDI)

服務(wù)器端– 數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是我們?cè)诜?wù)之間傳輸?shù)臄?shù)據(jù)類型,它們是最終由文件表示的不同格式,其中大多數(shù)采用XML和(主要)JSON格式。您應(yīng)該熟悉這些格式,并學(xué)習(xí)可以從中提取信息的語(yǔ)言,例如:Xpath和JSONPath。

服務(wù)器端:API測(cè)試

服務(wù)器端測(cè)試的主要部分以API測(cè)試的形式出現(xiàn)–將API請(qǐng)求發(fā)送到另一端,同時(shí)期望它返回響應(yīng)(我們稍后將對(duì)其進(jìn)行解析,編譯和測(cè)試)。沒(méi)有GUI,也沒(méi)有元素或?qū)ο螅ㄔ诳蛻舳藴y(cè)試中確實(shí)存在,例如:按鈕,文本字段等)。關(guān)于API測(cè)試,我們沒(méi)有“外觀(web界面)”。

同樣,您還必須在這里學(xué)習(xí)如何使用工具和API測(cè)試框架,例如:REST保證,REST Sharp,Http Client。為了編寫API測(cè)試,您必須學(xué)習(xí)的重要主題是:

  • 方法:GET / POST / DELETE / PUT / PATCH

  • 動(dòng)態(tài)有效載荷

  • 連載

  • 反序列化

  • 認(rèn)證方式

服務(wù)器端:數(shù)據(jù)庫(kù)測(cè)試

數(shù)據(jù)庫(kù)測(cè)試在行業(yè)中不那么普遍,但是為了連接到數(shù)據(jù)庫(kù),我們需要學(xué)習(xí)與它們一起工作的所有層,例如:JDBS(Java數(shù)據(jù)庫(kù)連接)– Java API,定義了客戶端可以訪問(wèn)的方式其他數(shù)據(jù)庫(kù)。該API包括不同的接口,例如:Driver,Connection,Statement,ResultSet…甚至在.NET世界中也是如此。框架本身已經(jīng)捆綁了一些API,例如:SQL,OLEDB,OLDB等。

幾乎每個(gè)DB都具有可以與我們的代碼進(jìn)行交互的任何編程語(yǔ)言準(zhǔn)備的框架或API。我們只需要熟悉它們的功能以及如何使用此類框架即可。

客戶端-HTML,CSS,JS

現(xiàn)在出現(xiàn)了一個(gè)問(wèn)題–如果我們只是測(cè)試而不是構(gòu)建,為什么我們甚至需要了解開發(fā)Web應(yīng)用程序背后的技術(shù)?好吧,最明顯的答案是–如果我們使Web應(yīng)用程序自動(dòng)化并且我們的自動(dòng)化引擎知道如何讀取HTML頁(yè)面,那么我們最好也能知道這一點(diǎn)。HTML頁(yè)面還涉及CSS(負(fù)責(zé)應(yīng)用程序的設(shè)計(jì))和JavaScript(負(fù)責(zé)網(wǎng)站的動(dòng)態(tài))。您無(wú)需成為前端開發(fā)人員,但是您一定應(yīng)該熟悉基礎(chǔ)知識(shí),甚至還需要一些知識(shí)。

在HTML級(jí)別上,我們應(yīng)該知道什么是DOM,如何構(gòu)建Web應(yīng)用程序,什么是HTML標(biāo)簽(尤其是常見(jiàn)的HTML標(biāo)簽),屬性,瀏覽器的開發(fā)人員工具(非常重要,尤其是控制臺(tái),元素和網(wǎng)絡(luò)部分) 。

客戶端–網(wǎng)絡(luò)

Web自動(dòng)化是自動(dòng)化測(cè)試行業(yè)中最受歡迎的,并且具有最大的生態(tài)系統(tǒng)。領(lǐng)先的平臺(tái)(目前為止?。┦?/span>硒webdriver的,難怪新一代網(wǎng)絡(luò)的自動(dòng)化工具,如TestProject建立在硒的頂部。盡管最近我們已經(jīng)看到越來(lái)越多的非基于Selenium的Web自動(dòng)化工具,例如:Cypress,Puppeteer,Nightwatch.jsTestCafe

無(wú)論哪種方式,由于其中的許多測(cè)試自動(dòng)化工具和解決方案(不僅用于Web)都基于WebDriver協(xié)議(以前稱為JSON Wire Protocol),因此,我們應(yīng)該徹底了解其生態(tài)系統(tǒng),WebDriver和WebElement接口,什么是RemoteWebDriver以及實(shí)現(xiàn)它們的所有功能:定位器,同步,開關(guān),操作,頁(yè)面對(duì)象,交互瀏覽器,JSExecutor,事件監(jiān)聽(tīng)器。

客戶端–移動(dòng)

大多數(shù)從事移動(dòng)測(cè)試的自動(dòng)化開發(fā)人員通常都使用Appium編寫測(cè)試,但是也有其他平臺(tái)(例如:EarlGray,Esspresso,Robotium,Selendroid,Calabash),盡管它們?cè)诋?dāng)今的自動(dòng)化測(cè)試市場(chǎng)中是少數(shù)。還有諸如TestProject之類的新一代免費(fèi)自動(dòng)化工具,可大大簡(jiǎn)化Appium的框架設(shè)置并提供基于Appium的移動(dòng)錄制和開發(fā)工具。

Appium的最大優(yōu)勢(shì)在于:

  1. 支持兩種最受歡迎的操作系統(tǒng):Android和iOS(哦,甚至支持Firefox OS)。

  2. 支持WebDriver協(xié)議,因此,來(lái)自Selenium Web自動(dòng)化領(lǐng)域的任何人都不會(huì)

    覺(jué)得過(guò)渡到Appium太困難。實(shí)際上,對(duì)于Selenium和Appium,該框架可以(并且應(yīng)該)是相同的,這是一個(gè)巨大的優(yōu)勢(shì),無(wú)需像UFT(也支持移動(dòng)設(shè)備)那

    樣開始編寫新框架。

因此,您需要學(xué)習(xí)的Appium主題通常會(huì)在您熟悉Selenium WebDriver之后出現(xiàn)。Appium的代碼庫(kù)實(shí)際上是Selenium的擴(kuò)展,我們需要集中精力。另外,我們應(yīng)該學(xué)習(xí)Appium的體系結(jié)構(gòu),該體系結(jié)構(gòu)與Selenium不同(這里我們有Appium Server而不是ChromeDriver / GeckoDriver等)。

因此,學(xué)習(xí)完Selenium后,您應(yīng)該專注于以下主題:Appium驅(qū)動(dòng)程序,Appium方法,Appium手勢(shì),Appium環(huán)境(客戶端-服務(wù)器),Android調(diào)試橋(ADB),XCode。

客戶端–桌面

盡管臺(tái)式機(jī)應(yīng)用程序的自動(dòng)化測(cè)試比上述Web和移動(dòng)設(shè)備少見(jiàn),但仍然有一些組織需要它,例如氣源。例如,特別是如果他們有一個(gè)用Winform或WPF編寫的中央后臺(tái)系統(tǒng),并且他們需要對(duì)其進(jìn)行一些繁重的測(cè)試。我必須說(shuō),支持桌面應(yīng)用程序的工具數(shù)量相對(duì)較少,而且大多數(shù)工具并不常見(jiàn)且不那么成熟。

在這個(gè)市場(chǎng)中,我覺(jué)得商業(yè)工具是領(lǐng)先的工具(相對(duì)于Web和移動(dòng)應(yīng)用程序市場(chǎng),后者擁有領(lǐng)先的開源解決方案以及完全免費(fèi)的工具(例如TestProject))。一些流行的商業(yè)工具包括:TestComplete,Ranorex,UFT,Tosca,它們?cè)诖俗烂孀詣?dòng)化領(lǐng)域中做得很好(但需要高額的許可費(fèi)用),而在免費(fèi)和開源方面–我們主要擁有WinAppDriver和Winium(不再維護(hù))和白色。

通常使用WebDriver協(xié)議繼續(xù)使用這些免費(fèi)工具,實(shí)際上操作大致相同,但是對(duì)象的初始化會(huì)有所不同。

測(cè)試自動(dòng)化基礎(chǔ)架構(gòu)

這可能是任何自動(dòng)化開發(fā)人員角色中最重要的部分(以及學(xué)習(xí)編程語(yǔ)言)。

到目前為止,您已經(jīng)學(xué)習(xí)了如何編寫Web,移動(dòng),桌面或服務(wù)器自動(dòng)化測(cè)試,太好了!現(xiàn)在,您需要學(xué)習(xí)如何使用強(qiáng)大,智能,模塊化,防彈(盡可能多)防自動(dòng)化的自動(dòng)化基礎(chǔ)結(jié)構(gòu)很好地編寫它,并且能夠?qū)⑽覀兊捻?xiàng)目保持盡可能長(zhǎng)的時(shí)間可以并且用最少的精力。

對(duì)于任何項(xiàng)目來(lái)說(shuō),對(duì)可靠的測(cè)試自動(dòng)化基礎(chǔ)架構(gòu)的投資是最長(zhǎng),最關(guān)鍵的,并且結(jié)合了模塊化組件(就像做難題或連接樂(lè)高零件一樣)。

這些是編寫自動(dòng)化測(cè)試基礎(chǔ)結(jié)構(gòu)所需要學(xué)習(xí)的主題:對(duì)象存儲(chǔ)庫(kù),故障機(jī)制,恢復(fù),報(bào)告系統(tǒng),屏幕快照,屏幕強(qiáng)制轉(zhuǎn)換,外部配置文件,多個(gè)客戶端支持,并行執(zhí)行,日志記錄系統(tǒng),數(shù)據(jù)庫(kù)支持,數(shù)據(jù)驅(qū)動(dòng)程序測(cè)試,關(guān)鍵字驅(qū)動(dòng)測(cè)試,行為驅(qū)動(dòng)開發(fā),時(shí)間表。

開發(fā)運(yùn)維

好的,因此DevOps世界并不完全是自動(dòng)化測(cè)試的世界。但是,即使在DevOps中,我們也使用自動(dòng)化過(guò)程,盡管不一定要進(jìn)行測(cè)試,這會(huì)使許多人感到困惑。那么,為什么我將DevOps包含在此最終自動(dòng)化測(cè)試指南中???

  1. 因?yàn)槲覀儯ㄗ詣?dòng)化開發(fā)人員)與經(jīng)典的DevOps團(tuán)隊(duì)互動(dòng),所以我們需要知道如何將我們的測(cè)試套件“連接”到版本發(fā)布的自動(dòng)過(guò)程中(換句話說(shuō),就是CI / CD)。

  2. 因?yàn)樵谛⌒统鮿?chuàng)公司中,很可能自動(dòng)化開發(fā)人員也是DevOps成員(他甚至可能負(fù)責(zé)更多任務(wù)-真正的全棧測(cè)試自動(dòng)化)。

我們現(xiàn)在在敏捷環(huán)境中工作(快速軟件開發(fā)),并渴望擁有自動(dòng)CI / CD管道,這一事實(shí)使了解與自動(dòng)化相關(guān)的所有DevOps角色變得非常重要。您應(yīng)該集中精力學(xué)習(xí)以下內(nèi)容:持續(xù)部署,持續(xù)集成,構(gòu)建工具,網(wǎng)格,Git和基于Docker的虛擬化系統(tǒng)。

Git

Git使我們能夠有效地管理代碼。我的意思是,我們無(wú)法將代碼保存在本地計(jì)算機(jī)上,對(duì)嗎?我們通常不是團(tuán)隊(duì)中唯一的開發(fā)人員,這意味著其他開發(fā)人員將需要從事相同的項(xiàng)目,每個(gè)人都向項(xiàng)目貢獻(xiàn)自己的代碼行。因此,我們需要一個(gè)地方來(lái)管理我們正在創(chuàng)建的所有代碼!我們還希望將其保存在某種類型的云存儲(chǔ)庫(kù)中(例如GitHub)。

這是每個(gè)軟件項(xiàng)目的工作方式,我們的軟件自動(dòng)化測(cè)試項(xiàng)目也是如此。

使用Git時(shí),您應(yīng)該學(xué)習(xí)的主題是:推,拉,合并,Github,BitBucket,GitLab,Branch,F(xiàn)ork。

CI工具

在本指南中,我已經(jīng)多次提到此CI術(shù)語(yǔ)- 持續(xù)集成過(guò)程旨在幫助我們更快,更有效地發(fā)布軟件版本。這不是一個(gè)簡(jiǎn)單的任務(wù),尤其是考慮到通常一個(gè)研發(fā)團(tuán)隊(duì)包括幾個(gè)開發(fā)團(tuán)隊(duì),并且自動(dòng)化團(tuán)隊(duì)當(dāng)然也是該過(guò)程不可或缺的一部分-負(fù)責(zé)編寫,維護(hù)和上傳測(cè)試套件。團(tuán)隊(duì)協(xié)作是這里的關(guān)鍵。

有一些CI工具,其中最流行的是Jenkins,還有諸如BambooTeamCity等。

自動(dòng)化開發(fā)人員至少應(yīng)至少知道如何使用此類工具(甚至其中一種),并熟悉如何編寫:作業(yè),調(diào)度程序,管道,參數(shù),依賴項(xiàng),插件,報(bào)告。

結(jié)論

那么,我們從這份(詳盡的)指南中學(xué)到了什么???

首先,我們已經(jīng)了解了每個(gè)手動(dòng)測(cè)試人員要轉(zhuǎn)變?yōu)闇y(cè)試自動(dòng)化開發(fā)人員所需學(xué)習(xí)的確切步驟,這些步驟包括:學(xué)習(xí),學(xué)習(xí)以及更多的學(xué)習(xí)內(nèi)容 ??是的,有很多東西可以學(xué)習(xí)在自動(dòng)化測(cè)試的美好世界中,請(qǐng)不要給人留下錯(cuò)誤的印象-并非所有自動(dòng)化開發(fā)人員都知道所有這些主題。并非所有軟件開發(fā)人員都了解所有開發(fā)技術(shù)(編程語(yǔ)言和框架等)。

自從看了它,我學(xué)會(huì)了Python Web自動(dòng)化測(cè)試
Selenium和Appium Python自動(dòng)化測(cè)試生成HTML測(cè)試報(bào)告
使用TestProject Python SDK創(chuàng)建移動(dòng)Appium測(cè)試
TestProject Python SDK入門
使用Selenium WebDriver,Python和Chrome編寫您的第一個(gè)Web測(cè)試
使用Python和Chrome安裝Selenium WebDriver


    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多