999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Appium的UI自動化測試框架

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

李思佳 王茜 高筱竹

【摘 要】通過編寫自動化測試腳本,利用搭建好的自動化測試框架,對應用進行自動化測試,并將測試結果反饋給測試人員。研究被測應用程序的UI測試點,進行測試用例的編寫,使得測試用例能夠完全覆蓋被測應用,通過腳本和用例對一款應用進行自動化UI測試。

【關鍵詞】Appium;UI自動化測試;Maven;TestNG;數據驅動測試;Jenkins

中圖分類號: TP311.52 文獻標識碼: A 文章編號: 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 引言

如今移動應用是一個很熱的話題,一個移動應用離不開好的用戶體驗,所以UI測試已經成為移動應用測試的重中之重。 自動化 UI測試創建測試代碼來執行測試任務,各種測試任務覆蓋不同的使用場景,然后測試框架來運行測試任務。

Android基于UI層面的自動化測試工具,其主流測試方法主要有以下兩種。其一是Instrumentation,通過把測試代碼和應用代碼 ,運行在同一個進程中,通過Java反射機制,來獲取當前窗口所有視圖,并查找到目標控件的屬性信息,計算出目標控件中心點坐標;再利用Instrument內部接口,實現點擊操作;其代表有Robotium。另一種則是通過Android提供的各種服務,來獲取當前窗口的視圖信息;其主要特點是:測試代碼和被測應用各自運行在各自的進程內,相互獨立;其代表有 Ui Automator、Appium。

通過Appium搭建的UI自動化測試框架測試應用的范圍更加廣泛,節約測試時間,提高測試效率。Appium是一款基于UIAutomator和UIAutomation兩者的UI自動化測試框架,能夠實現針對不同平臺使用同一套API,帶來極大的便利。

1 總體技術方案

1.1 技術方案

針對各種測試框架工具的整合以達到構建完整測試框架的目的。進一步研究被測APP的UI測試點,進行測試用例的編寫,使得測試用例能夠完全覆蓋被測應用。達到只通過腳本和用例便能夠對一款應用進行自動化UI測試的目的。用到的工具除了Appium,還有maven、TestNG、Git、Jenkins。

maven項目對象模型(POM),通過一小段描述信息來管理項目的構建、報告和文檔的軟件項目管理工具。由于maven的缺省構建規則有較高的可重用性,所以常常用兩三行 maven 構建腳本構建簡單的項目。在自動化項目中的使用maven的主要目的是幫助構建自動化項目(jar包管理,編譯,執行測試等),非常方便。

TestNG,即Testing Next Generation,下一代測試技術,是一套根據JUnit和NUnit思想而構建的利用注釋來強化測試功能的一個測試框架,即可以用來做單元測試,也可以用來做集成測試。

Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理,并且具有代碼托管的功能。

Jenkins是基于Java開發的一種持續集成工具,用于監控持續重復的工作。

具體的設計思路如下圖圖1所示

1.2 技術路線

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

(2)在服務器上搭建git倉庫,并將測試代碼提交到服務器。

(3)在服務器上進行相應的環境配置,安裝Jenkins,安裝郵件通知插件。

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

(5)進行被測APP的篩選,編寫測試腳本,利用測試框架進行測試。

2 關鍵技術

2.1 環境配置

Java環境

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

保存之后,打開CMD,輸入mvn -v,如果返回以下內容,證明maven的環境變量配置好了:

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

·Android SDK

配置ANDROID_HOME

;%ANDROID_HOME%\tools

; %ANDROID_HOME%\platform-tools

保存之后,打開CMD,輸入adb 返回以下內容表示環境變量配置完成

2.2 測試應用程序

maven項目的根目錄下新建res/app目錄,將安卓測試APP放入此目錄:

啟動Appium Server

啟動Appium Server,用于接收和處理來自client的請求。雙擊已經安裝好的Appium

如果出現:

> 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

表明服務啟動成功。

鼠標右鍵執行run as TestNG test,用例就開始執行了

2.3 Appium實現思路框架

Appium 遵循著一種哲學,重點體現于以下4個需求:

·你無需為了自動化,而重新編譯或者修改你的應用。

·你不必局限于某種語言或者框架或者平臺來書寫和運行測試代碼。

·一個移動自動化的框架不應該在接口上重復造輪子。(移動自動化的接口應該統一)。

源代碼必須開源

第三方框架封裝成一套API,WebDriver API.WebDriver(也就是"Selenium WebDriver")指定了客戶端到服務端的協議(JSON Wire Protocol)。使用這種客戶端-服務端的架構,我們可以使用任何語言來編寫客戶端,向服務端發送恰當的HTTP請求。目前已經實現了大多數流行語言版本的客戶端,這意味著你可以使用任何測試套件或者測試框架。客戶端庫就是簡單的HTTP客戶,可以以任何你喜歡的方式潛入你的代碼。換句話說,Appium和WebDriver 客戶端不是技術意義上的“測試框架”,而是“自動化庫”。你可以在你的測試環境中隨意使用這些自動化庫!

2.5 數據驅動測試簡介

數據驅動測試將測試腳本與測試數據放在同一個測試架構中,該測試架構提供可重用的測試邏輯,目的是減少測試維護工作量和改善測試覆蓋率。測試輸入數據和測試結果數據都會被存儲在一個或者 多個數據源、數據庫中,數據存儲格式和數據組織方式依賴于具體實現。測試數據與測試邏輯分離,當測試數據發生改變時,不會影響測試邏輯。同一個測試邏輯可以針對不同數據來進行測試,提高了測試邏輯的使用效率和可維護性。

3 總結

3.1 項目成果

本項目的主要目標是通過編寫自動化測試腳本,利用搭建好的自動化測試框架,對應用進行自動化測試,并將測試結果反饋給測試人員。由此減少測試工作人員對UI測試的工作量,提高測試人員的工作效率。

在本項目中的一個重要思想是實現持續集成。UI自動化測試是自動化測試中的一個重點,也是一個難點,因為一款應用的UI在項目開發階段時時刻刻都在進行變化。利用持續集成思想不僅可以很好的應對UI變化,而且有利于團隊的分工合作,提高團隊的工作效率。

3.2 后期改進

基于Appium的UI自動化測試框架在實現過程中電腦運行測試代碼所需要的環境問題有待進一步解決,能夠成功運行測試框架的電腦只實現了一臺,其它會出現意想不到的問題。目前僅僅實現在控制臺輸出測試過程以及結果的日志信息,在數據驅動方面存在的困難是利用excel表格進行存儲數據來讀取以及將測試結果等信息輸出保存為excel表格或者輸出html網頁結果,這些還需要進一步研究實現。

3.3 未來期望

希望后續研究人員能實現如何將數據存儲于excel表格中被調用實現數據與測試分離,以及如何將結果存儲在excel表格中實現結果清晰明朗化的反饋。

【參考文獻】

[1]余盈寬、高守瑋、崔徐佳.基于關鍵字的安卓UI自動化測試的設計[D].工業控制計算機2015.

[2]徐凱田.UI自動化測試驅動的軟件開發方法研究[J].科技視界2015.

[3]陳昊.Android手機自動化測試系統的設計與實現[D].西安電子科技大學2014.

[4]呂茜.基于WebDriver和TestNG的網頁自動化測試方法[J]. 軟件2016.

[5]陳學亮.基于云的Andriod應用自動化測試框架研究[J].中國電信股份有限公司廣東研究院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.

主站蜘蛛池模板: 99尹人香蕉国产免费天天拍| 青青草原国产av福利网站| 一级毛片网| 午夜综合网| 国产永久无码观看在线| 热思思久久免费视频| 国产一区二区丝袜高跟鞋| 国产av无码日韩av无码网站| 丰满的熟女一区二区三区l| 亚洲国产天堂在线观看| 一本一道波多野结衣av黑人在线| 国产成人亚洲精品色欲AV| 欧美全免费aaaaaa特黄在线| 福利小视频在线播放| 看你懂的巨臀中文字幕一区二区| 欧美日韩国产高清一区二区三区| 五月婷婷激情四射| 毛片基地美国正在播放亚洲 | 亚洲第一黄色网址| 99热这里只有精品免费国产| 久久一日本道色综合久久| 国产精品国产主播在线观看| 欧美日韩免费观看| 99热免费在线| 免费久久一级欧美特大黄| 色婷婷在线影院| 亚洲精品福利视频| 动漫精品啪啪一区二区三区| 激情综合婷婷丁香五月尤物| 国产精品99r8在线观看| 福利国产在线| 久草热视频在线| 国产精品毛片一区视频播| 久久动漫精品| 欧美丝袜高跟鞋一区二区| 色婷婷电影网| 日韩毛片在线播放| 亚洲另类第一页| 超碰aⅴ人人做人人爽欧美 | 日韩大片免费观看视频播放| 日韩精品免费在线视频| 欧美日韩在线国产| 国产一线在线| 亚洲人成网站18禁动漫无码| 久久a级片| 99热国产在线精品99| 内射人妻无码色AV天堂| 精品欧美一区二区三区久久久| 久草美女视频| 欧美日韩国产高清一区二区三区| 国产特级毛片aaaaaa| 日韩国产黄色网站| 无码日韩人妻精品久久蜜桃| 一级毛片免费观看不卡视频| 国产精品三区四区| 久久这里只精品国产99热8| 黄片一区二区三区| 国产在线观看第二页| 在线欧美a| 又粗又硬又大又爽免费视频播放| 国产福利小视频在线播放观看| 女人一级毛片| 无码又爽又刺激的高潮视频| 国产精品亚洲欧美日韩久久| 亚洲第一中文字幕| 国产欧美高清| 国产精品成人AⅤ在线一二三四| 刘亦菲一区二区在线观看| 毛片久久久| 国产精品亚洲精品爽爽| 久久99蜜桃精品久久久久小说| 亚洲视频免费播放| 久久久久88色偷偷| 漂亮人妻被中出中文字幕久久| 青青操国产视频| 99久久国产综合精品2023| 亚洲中文字幕精品| 手机成人午夜在线视频| 亚洲精品午夜天堂网页| 69综合网| 性色一区| 日本亚洲成高清一区二区三区|