app自動(dòng)化框架詳細(xì)闡述_第1頁(yè)
app自動(dòng)化框架詳細(xì)闡述_第2頁(yè)
app自動(dòng)化框架詳細(xì)闡述_第3頁(yè)
app自動(dòng)化框架詳細(xì)闡述_第4頁(yè)
app自動(dòng)化框架詳細(xì)闡述_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

自動(dòng)化框架串講姓名:王文慧研發(fā)中心用戶產(chǎn)品部導(dǎo)師:趙海洋目錄CONTENTS自動(dòng)化框架引見(jiàn)01TESTNG框架引見(jiàn)02中心流程03工程總結(jié)與規(guī)劃04自動(dòng)化框架引見(jiàn)自動(dòng)化框架引見(jiàn)技術(shù)基于SeleniumWebDriver開(kāi)源技術(shù)開(kāi)發(fā)用Maven進(jìn)展Project管理數(shù)據(jù)管理用CSV文件存儲(chǔ)測(cè)試數(shù)據(jù),實(shí)現(xiàn)測(cè)試數(shù)據(jù)與測(cè)試用例的分別測(cè)試數(shù)據(jù)管理方便,降低自動(dòng)化腳本的維護(hù)本錢(qián),實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)PO方式本身元素(WebElement)

實(shí)現(xiàn)功能(Services)TestNG組織測(cè)試自動(dòng)化框架引見(jiàn)收益在集成測(cè)試階段快速實(shí)現(xiàn)回歸測(cè)試4.10版本開(kāi)場(chǎng)執(zhí)行每個(gè)版本跑3-5次回歸測(cè)試兼容機(jī)型和系統(tǒng)〔本地跑〕,覆蓋外賣(mài)Top5機(jī)型,覆蓋系統(tǒng)4.0-6.定位的bug存在的問(wèn)題版本間測(cè)試用例不兼容,兼容性開(kāi)發(fā)本錢(qián)較高。比如shopdetail左右滑動(dòng)的區(qū)域在4.9時(shí)是大圖下的長(zhǎng)方形區(qū)域的id,4.10版本刪除了這個(gè)區(qū)域,導(dǎo)致這個(gè)元素id獲取不到,case報(bào)錯(cuò)框架代碼目錄引見(jiàn)測(cè)試代碼目錄變量規(guī)范定義Page類(lèi)case測(cè)試相關(guān)的工具類(lèi)TestBase類(lèi)|setup()等源代碼〔core〕目錄所需資源目錄〔報(bào)告相關(guān)的配置和模板、log4j〕Maven的依賴(lài)包,存放在本地默許路勁C:\user\...\.m2工程的主體資源Target是存放工程構(gòu)建后的文件和目錄,jar包,war包,編譯的class文件等,target里面的內(nèi)容都是M2構(gòu)建的時(shí)候生成的Src目錄包含一切工程的源碼文件,配置文件,資源文件等等,它的子目錄普通包含main、testGit運(yùn)用ci.yml進(jìn)展工程配置,包含如何構(gòu)建工程的定義,普通放在根目錄改文件用于管理:源代碼,配置文件,url,工程的依工程的賴(lài)關(guān)系等等TestNG框架引見(jiàn)數(shù)據(jù)管理TESTNG框架引見(jiàn)即Testing,NextGeneration,下一代測(cè)試技術(shù),是根據(jù)JUnit和NUnit思想,采用jdk的annotation技術(shù)來(lái)強(qiáng)化測(cè)試功能并借助XML文件強(qiáng)化測(cè)試組織構(gòu)造而構(gòu)建的測(cè)試框架。運(yùn)用范圍運(yùn)用步驟TESTNG單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試編寫(xiě)測(cè)試業(yè)務(wù)邏輯在配置測(cè)試信息運(yùn)轉(zhuǎn)TestNG配置文件testng.xml數(shù)據(jù)管理TESTNG框架引見(jiàn)TestNG運(yùn)轉(zhuǎn)方式1、Eclipse集成方式TestNG提供Eclipse插件,在runconfigure中進(jìn)展配置2、Maven集成方式3、命令行方式Java

org.testng.TestNGtestng1.xml==右鍵運(yùn)轉(zhuǎn)testNG數(shù)據(jù)管理TESTNG框架引見(jiàn)TestNG的主要特點(diǎn):Annotation依賴(lài)性測(cè)試支持并發(fā)測(cè)試支持錯(cuò)誤重運(yùn)轉(zhuǎn)測(cè)試參數(shù)化測(cè)試支持測(cè)試分組經(jīng)過(guò)testng.xml來(lái)管理測(cè)試詳實(shí)的報(bào)告,可按照本人需求進(jìn)展二次開(kāi)發(fā)不僅僅適用于單元測(cè)試數(shù)據(jù)管理TESTNG框架引見(jiàn)TestNG運(yùn)用annotation的優(yōu)點(diǎn):方法稱(chēng)號(hào)不受任何方式或者格式的束縛;如下是TestNG運(yùn)用的annotation清單:?@BeforeSuite,@BeforeTest,@BeforeClass,@BeforeMethod,@BeforeGroups?@AfterSuite,@AfterTest,@AfterClass,@AfterMethod,@AfterGroups?@DataProvider?@ExpectedExceptions?@Factory?@Test?@Parameterswiki.inwaimai.baidu/pages/viewpage.action?pageId=11546672數(shù)據(jù)管理TESTNG框架引見(jiàn)根本運(yùn)用當(dāng)testNG運(yùn)轉(zhuǎn)的case有失敗的時(shí)候,會(huì)在test-output目錄下生成一個(gè)testng-failed.xml文件,這對(duì)于批量執(zhí)行測(cè)試定位問(wèn)題很有協(xié)助,testng可以單獨(dú)執(zhí)行這些失敗的測(cè)試;運(yùn)用參數(shù)TestNG傳參數(shù)的兩種方式〔xml文件,@DataProvider〕下面這個(gè)方法沒(méi)用到數(shù)據(jù)管理TESTNG框架引見(jiàn)監(jiān)聽(tīng)器雖然名字叫監(jiān)聽(tīng)器,但現(xiàn)實(shí)上它們只是一些預(yù)定義的Java接口。用戶創(chuàng)建這些接口的實(shí)現(xiàn)類(lèi),并把它們參與到TestNG中,TestNG便會(huì)在測(cè)試運(yùn)轉(zhuǎn)的不同時(shí)辰調(diào)用這些類(lèi)中的接口方法監(jiān)聽(tīng)器接口ListenerIExecutionListennerISuiteListenerIInvokedMethodListenerTestListenerAdapterIReporteronExecutionStart()onExecutionFinish()onStart(ISuitesuite)onFinish(ISuitesuite)beforeInvocation()afterInvocation()onStart()onFinish()onTestFailure()onTestSkipped()onTestSuccess()中心流程中心流程Coreutilsworkflowelements……TestSuiteTestCaseTestScriptTestDataCoreDriverHelperCsvFilepropertiesDataDriverParsecsvPageclassloaderListenerappiumDriver自動(dòng)化框架ResultLog4jReportNgMailReportScreenShotsUIAutomatorUIAutomatorIOSAndroidSideH5chromedriverSelenium/AppiumDriverAppiumServerSendOperationCMDtoport4727WebDriverControllerAppiumClientListentoSocketPort4727Bootstrap.jarPCSideSorketJSON自動(dòng)化框架end(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsonExecutionStart()開(kāi)場(chǎng)監(jiān)聽(tīng)測(cè)試,testng啟動(dòng)執(zhí)行之前調(diào)用onExecutionFinish()測(cè)試終了監(jiān)聽(tīng),testng執(zhí)行完一切測(cè)試后調(diào)用ListenerAdapter中心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends中心流程end啟動(dòng)監(jiān)聽(tīng),監(jiān)聽(tīng)器作為守護(hù)進(jìn)程在后臺(tái)運(yùn)轉(zhuǎn)

end(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends初始化Property配置文件,放入系統(tǒng)屬性變量中System.getProperty(“〞);配置文件路勁/resource/config/Cpertis日志設(shè)置〔Log4j輸出〕

ListenerAdapter中心流程中心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends執(zhí)行appDriver類(lèi)的靜態(tài)方法塊,靜態(tài)變量endListenerAdapter1(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends錄屏功能—我們沒(méi)用這個(gè)功能

endListenerAdapter中心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends運(yùn)轉(zhuǎn)子類(lèi)Test的靜態(tài)變量endListenerAdapter中心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends從父類(lèi)到子類(lèi)的靜態(tài)語(yǔ)句塊、靜態(tài)變量運(yùn)轉(zhuǎn)終了,進(jìn)入監(jiān)聽(tīng)ListenerAdapter,開(kāi)場(chǎng)運(yùn)轉(zhuǎn)testNG.xml中的內(nèi)容:套件—測(cè)試集—測(cè)試方法endListenerAdapter中心流程1ListenerAdapter中心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend中心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend1ListenerAdapter測(cè)試集執(zhí)行終了,進(jìn)入TestBase.java中執(zhí)行setup(),啟動(dòng)app〔@BeforeTest〕HtmlReporterListener監(jiān)聽(tīng)2ListenerAdapter(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend1ListenerAdapter進(jìn)入TestBase.java中執(zhí)行setup(),啟動(dòng)app2ListenerAdapter中心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsendListenerAdapter中心流程@BeforeClass初始化page,因ShopMenuTest承繼了TestBase類(lèi),故對(duì)initPage()進(jìn)展實(shí)現(xiàn)改造獲取到csv中的元素,12(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsendListenerAdapter中心流程動(dòng)態(tài)加載和創(chuàng)建class(IndexPage)對(duì)象12(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend@Test運(yùn)轉(zhuǎn)case中心流程ListenerAdapter(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend中心流程ListenerAdapter元素.click(),怎樣獲取元素id的呢?這個(gè)框架已做了封裝AppWebelemt.java(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend中心流程最后一個(gè)case執(zhí)行終了—有始有終onExecutionFinish()執(zhí)行監(jiān)聽(tīng)的終了方法onFinish()等@afterTestteardown()killapp工程總結(jié)與規(guī)劃收獲工程總結(jié)溝通才干跨

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論