• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Appium的UI自動(dòng)化測(cè)試框架

      2018-05-11 09:50:28李思佳王茜高筱竹
      科技視界 2018年6期

      李思佳 王茜 高筱竹

      【摘 要】通過(guò)編寫(xiě)自動(dòng)化測(cè)試腳本,利用搭建好的自動(dòng)化測(cè)試框架,對(duì)應(yīng)用進(jìn)行自動(dòng)化測(cè)試,并將測(cè)試結(jié)果反饋給測(cè)試人員。研究被測(cè)應(yīng)用程序的UI測(cè)試點(diǎn),進(jìn)行測(cè)試用例的編寫(xiě),使得測(cè)試用例能夠完全覆蓋被測(cè)應(yīng)用,通過(guò)腳本和用例對(duì)一款應(yīng)用進(jìn)行自動(dòng)化UI測(cè)試。

      【關(guān)鍵詞】Appium;UI自動(dòng)化測(cè)試;Maven;TestNG;數(shù)據(jù)驅(qū)動(dòng)測(cè)試;Jenkins

      中圖分類(lèi)號(hào): TP311.52 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2018)06-0141-002

      【Abstract】Through the preparation of programming automated test scripts,and make use of built automated test framework, make automated testing of the application,and give the test results to the testers. Study the UI test points of the tested APP,and write the test cases,making the test cases can completely cover the application under test,through an example of scripts and use cases for automated UI testing.

      【Key words】Appium;UI Automation Testing;Maven;TestNG;Data Driven Testing;Jenkins

      0 引言

      如今移動(dòng)應(yīng)用是一個(gè)很熱的話題,一個(gè)移動(dòng)應(yīng)用離不開(kāi)好的用戶體驗(yàn),所以UI測(cè)試已經(jīng)成為移動(dòng)應(yīng)用測(cè)試的重中之重。 自動(dòng)化 UI測(cè)試創(chuàng)建測(cè)試代碼來(lái)執(zhí)行測(cè)試任務(wù),各種測(cè)試任務(wù)覆蓋不同的使用場(chǎng)景,然后測(cè)試框架來(lái)運(yùn)行測(cè)試任務(wù)。

      Android基于UI層面的自動(dòng)化測(cè)試工具,其主流測(cè)試方法主要有以下兩種。其一是Instrumentation,通過(guò)把測(cè)試代碼和應(yīng)用代碼 ,運(yùn)行在同一個(gè)進(jìn)程中,通過(guò)Java反射機(jī)制,來(lái)獲取當(dāng)前窗口所有視圖,并查找到目標(biāo)控件的屬性信息,計(jì)算出目標(biāo)控件中心點(diǎn)坐標(biāo);再利用Instrument內(nèi)部接口,實(shí)現(xiàn)點(diǎn)擊操作;其代表有Robotium。另一種則是通過(guò)Android提供的各種服務(wù),來(lái)獲取當(dāng)前窗口的視圖信息;其主要特點(diǎn)是:測(cè)試代碼和被測(cè)應(yīng)用各自運(yùn)行在各自的進(jìn)程內(nèi),相互獨(dú)立;其代表有 Ui Automator、Appium。

      通過(guò)Appium搭建的UI自動(dòng)化測(cè)試框架測(cè)試應(yīng)用的范圍更加廣泛,節(jié)約測(cè)試時(shí)間,提高測(cè)試效率。Appium是一款基于UIAutomator和UIAutomation兩者的UI自動(dòng)化測(cè)試框架,能夠?qū)崿F(xiàn)針對(duì)不同平臺(tái)使用同一套API,帶來(lái)極大的便利。

      1 總體技術(shù)方案

      1.1 技術(shù)方案

      針對(duì)各種測(cè)試框架工具的整合以達(dá)到構(gòu)建完整測(cè)試框架的目的。進(jìn)一步研究被測(cè)APP的UI測(cè)試點(diǎn),進(jìn)行測(cè)試用例的編寫(xiě),使得測(cè)試用例能夠完全覆蓋被測(cè)應(yīng)用。達(dá)到只通過(guò)腳本和用例便能夠?qū)σ豢顟?yīng)用進(jìn)行自動(dòng)化UI測(cè)試的目的。用到的工具除了Appium,還有maven、TestNG、Git、Jenkins。

      maven項(xiàng)目對(duì)象模型(POM),通過(guò)一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建、報(bào)告和文檔的軟件項(xiàng)目管理工具。由于maven的缺省構(gòu)建規(guī)則有較高的可重用性,所以常常用兩三行 maven 構(gòu)建腳本構(gòu)建簡(jiǎn)單的項(xiàng)目。在自動(dòng)化項(xiàng)目中的使用maven的主要目的是幫助構(gòu)建自動(dòng)化項(xiàng)目(jar包管理,編譯,執(zhí)行測(cè)試等),非常方便。

      TestNG,即Testing Next Generation,下一代測(cè)試技術(shù),是一套根據(jù)JUnit和NUnit思想而構(gòu)建的利用注釋來(lái)強(qiáng)化測(cè)試功能的一個(gè)測(cè)試框架,即可以用來(lái)做單元測(cè)試,也可以用來(lái)做集成測(cè)試。

      Git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),用以有效、高速的處理從很小到非常大的項(xiàng)目版本管理,并且具有代碼托管的功能。

      Jenkins是基于Java開(kāi)發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作。

      具體的設(shè)計(jì)思路如下圖圖1所示

      1.2 技術(shù)路線

      (1)搭建測(cè)試腳本的代碼框架

      (2)在服務(wù)器上搭建git倉(cāng)庫(kù),并將測(cè)試代碼提交到服務(wù)器。

      (3)在服務(wù)器上進(jìn)行相應(yīng)的環(huán)境配置,安裝Jenkins,安裝郵件通知插件。

      (4)整合git和Jenkins,使其能夠形成一個(gè)整體。

      (5)進(jìn)行被測(cè)APP的篩選,編寫(xiě)測(cè)試腳本,利用測(cè)試框架進(jìn)行測(cè)試。

      2 關(guān)鍵技術(shù)

      2.1 環(huán)境配置

      Java環(huán)境

      Maven環(huán)境配置:將已經(jīng)下載的maven完整jar包版的壓縮包進(jìn)行解壓縮操作,同樣放入到Dev目錄下。將已經(jīng)下載好的maven壓縮包解壓縮并將解壓出來(lái)的文件夾放如d盤(pán)dev目錄下。接下來(lái)需要配置下MAVEN_HOME以及 bin目錄,找到Path變量;%MAVEN_HOME%\bin

      保存之后,打開(kāi)CMD,輸入mvn -v,如果返回以下內(nèi)容,證明maven的環(huán)境變量配置好了:

      Appium: 將已經(jīng)下載的maven完整jar包版的壓縮包進(jìn)行解壓縮操作,同樣放入到Dev目錄下。

      ·Android SDK

      配置ANDROID_HOME

      ;%ANDROID_HOME%\tools

      ; %ANDROID_HOME%\platform-tools

      保存之后,打開(kāi)CMD,輸入adb 返回以下內(nèi)容表示環(huán)境變量配置完成

      2.2 測(cè)試應(yīng)用程序

      maven項(xiàng)目的根目錄下新建res/app目錄,將安卓測(cè)試APP放入此目錄:

      啟動(dòng)Appium Server

      啟動(dòng)Appium Server,用于接收和處理來(lái)自client的請(qǐng)求。雙擊已經(jīng)安裝好的Appium

      如果出現(xiàn):

      > info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457

      bd285c0cc62430d)

      > info: Appium REST http interface listener started on 127.0.0.1:4723

      >info:[debug] Non-default server args: {"address":"127.0.0.1","logNoColors":true,"platformName":

      Android","platformVersion":"19","automationName":"Appium"}

      > info: Console LogLevel: debug

      表明服務(wù)啟動(dòng)成功。

      鼠標(biāo)右鍵執(zhí)行run as TestNG test,用例就開(kāi)始執(zhí)行了

      2.3 Appium實(shí)現(xiàn)思路框架

      Appium 遵循著一種哲學(xué),重點(diǎn)體現(xiàn)于以下4個(gè)需求:

      ·你無(wú)需為了自動(dòng)化,而重新編譯或者修改你的應(yīng)用。

      ·你不必局限于某種語(yǔ)言或者框架或者平臺(tái)來(lái)書(shū)寫(xiě)和運(yùn)行測(cè)試代碼。

      ·一個(gè)移動(dòng)自動(dòng)化的框架不應(yīng)該在接口上重復(fù)造輪子。(移動(dòng)自動(dòng)化的接口應(yīng)該統(tǒng)一)。

      源代碼必須開(kāi)源

      第三方框架封裝成一套API,WebDriver API.WebDriver(也就是"Selenium WebDriver")指定了客戶端到服務(wù)端的協(xié)議(JSON Wire Protocol)。使用這種客戶端-服務(wù)端的架構(gòu),我們可以使用任何語(yǔ)言來(lái)編寫(xiě)客戶端,向服務(wù)端發(fā)送恰當(dāng)?shù)腍TTP請(qǐng)求。目前已經(jīng)實(shí)現(xiàn)了大多數(shù)流行語(yǔ)言版本的客戶端,這意味著你可以使用任何測(cè)試套件或者測(cè)試框架??蛻舳藥?kù)就是簡(jiǎn)單的HTTP客戶,可以以任何你喜歡的方式潛入你的代碼。換句話說(shuō),Appium和WebDriver 客戶端不是技術(shù)意義上的“測(cè)試框架”,而是“自動(dòng)化庫(kù)”。你可以在你的測(cè)試環(huán)境中隨意使用這些自動(dòng)化庫(kù)!

      2.5 數(shù)據(jù)驅(qū)動(dòng)測(cè)試簡(jiǎn)介

      數(shù)據(jù)驅(qū)動(dòng)測(cè)試將測(cè)試腳本與測(cè)試數(shù)據(jù)放在同一個(gè)測(cè)試架構(gòu)中,該測(cè)試架構(gòu)提供可重用的測(cè)試邏輯,目的是減少測(cè)試維護(hù)工作量和改善測(cè)試覆蓋率。測(cè)試輸入數(shù)據(jù)和測(cè)試結(jié)果數(shù)據(jù)都會(huì)被存儲(chǔ)在一個(gè)或者 多個(gè)數(shù)據(jù)源、數(shù)據(jù)庫(kù)中,數(shù)據(jù)存儲(chǔ)格式和數(shù)據(jù)組織方式依賴于具體實(shí)現(xiàn)。測(cè)試數(shù)據(jù)與測(cè)試邏輯分離,當(dāng)測(cè)試數(shù)據(jù)發(fā)生改變時(shí),不會(huì)影響測(cè)試邏輯。同一個(gè)測(cè)試邏輯可以針對(duì)不同數(shù)據(jù)來(lái)進(jìn)行測(cè)試,提高了測(cè)試邏輯的使用效率和可維護(hù)性。

      3 總結(jié)

      3.1 項(xiàng)目成果

      本項(xiàng)目的主要目標(biāo)是通過(guò)編寫(xiě)自動(dòng)化測(cè)試腳本,利用搭建好的自動(dòng)化測(cè)試框架,對(duì)應(yīng)用進(jìn)行自動(dòng)化測(cè)試,并將測(cè)試結(jié)果反饋給測(cè)試人員。由此減少測(cè)試工作人員對(duì)UI測(cè)試的工作量,提高測(cè)試人員的工作效率。

      在本項(xiàng)目中的一個(gè)重要思想是實(shí)現(xiàn)持續(xù)集成。UI自動(dòng)化測(cè)試是自動(dòng)化測(cè)試中的一個(gè)重點(diǎn),也是一個(gè)難點(diǎn),因?yàn)橐豢顟?yīng)用的UI在項(xiàng)目開(kāi)發(fā)階段時(shí)時(shí)刻刻都在進(jìn)行變化。利用持續(xù)集成思想不僅可以很好的應(yīng)對(duì)UI變化,而且有利于團(tuán)隊(duì)的分工合作,提高團(tuán)隊(duì)的工作效率。

      3.2 后期改進(jìn)

      基于Appium的UI自動(dòng)化測(cè)試框架在實(shí)現(xiàn)過(guò)程中電腦運(yùn)行測(cè)試代碼所需要的環(huán)境問(wèn)題有待進(jìn)一步解決,能夠成功運(yùn)行測(cè)試框架的電腦只實(shí)現(xiàn)了一臺(tái),其它會(huì)出現(xiàn)意想不到的問(wèn)題。目前僅僅實(shí)現(xiàn)在控制臺(tái)輸出測(cè)試過(guò)程以及結(jié)果的日志信息,在數(shù)據(jù)驅(qū)動(dòng)方面存在的困難是利用excel表格進(jìn)行存儲(chǔ)數(shù)據(jù)來(lái)讀取以及將測(cè)試結(jié)果等信息輸出保存為excel表格或者輸出html網(wǎng)頁(yè)結(jié)果,這些還需要進(jìn)一步研究實(shí)現(xiàn)。

      3.3 未來(lái)期望

      希望后續(xù)研究人員能實(shí)現(xiàn)如何將數(shù)據(jù)存儲(chǔ)于excel表格中被調(diào)用實(shí)現(xiàn)數(shù)據(jù)與測(cè)試分離,以及如何將結(jié)果存儲(chǔ)在excel表格中實(shí)現(xiàn)結(jié)果清晰明朗化的反饋。

      【參考文獻(xiàn)】

      [1]余盈寬、高守瑋、崔徐佳.基于關(guān)鍵字的安卓UI自動(dòng)化測(cè)試的設(shè)計(jì)[D].工業(yè)控制計(jì)算機(jī)2015.

      [2]徐凱田.UI自動(dòng)化測(cè)試驅(qū)動(dòng)的軟件開(kāi)發(fā)方法研究[J].科技視界2015.

      [3]陳昊.Android手機(jī)自動(dòng)化測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué)2014.

      [4]呂茜.基于WebDriver和TestNG的網(wǎng)頁(yè)自動(dòng)化測(cè)試方法[J]. 軟件2016.

      [5]陳學(xué)亮.基于云的Andriod應(yīng)用自動(dòng)化測(cè)試框架研究[J].中國(guó)電信股份有限公司廣東研究院2017.

      [6]Ashwaq A.Alotaibi、Rizwan J. Qureshi.Novel Framework for Automation Testing of Mobile Applications using Appium[J].MECS Press 2017

      [7]Pressman E、Huberman M.Pithiness in plants:I.The effect of mechanical perturbation and the involvement of ethylene in petiole pithiness in celery.Biology DepartmentWake Forest UniversityWinston-SalemNorth Carolina 1984.

      乌拉特前旗| 安丘市| 宜兰县| 安阳市| 南阳市| 巫溪县| 蒙山县| 遂宁市| 和林格尔县| 建昌县| 库尔勒市| 苍南县| 儋州市| 德安县| 铅山县| 东阳市| 华阴市| 香港 | 南木林县| 茂名市| 乌海市| 马龙县| 大安市| 桃源县| 沁水县| 平安县| 钦州市| 马关县| 长子县| 横峰县| 黄骅市| 塔城市| 乡宁县| 周宁县| 澎湖县| 湛江市| 南安市| 东乡县| 霸州市| 灵璧县| 河南省|