Selenium原理初步--Android自動化測試學習曆程

來源:互聯網
上載者:User

標籤:

章節:自動化基礎篇——Selenium原理初步(第五講)

 

 

註:其實所有的東西都是應該先去用,但是工具基本都一樣,底層都是用的最基礎的內容實現的,測試應該做的是:

(1)熟練使用工具,瞭解各個工具的利弊,達到工具優選、因時因地制宜的目的

(2)讀源碼,理解原理,能夠對開源的源碼進行二次再創造,改編成適合自身產品的工具;或者自己直接編寫適合測試的工具

(3)能夠對測試過程中發生的異常進行分析和定位,對測試結果進行詳細和系統的綜合評定(需要能夠分析定位問題,必須對自身產品瞭解,但更需要的是對底層代碼和作業系統的深入分析和理解,這才是關鍵)

 

現在的公司把測試開發與測試分的太開,測試開發就只是開發工具,供所謂的測試使用:兩者應該是結合在一起的,測試必須首先深入理解功能,才能根據功能需求和測試需求自我產出更好的測試載入器

 

主要講解內容及筆記:

一、學習Selenium的原因

項目需要

的邏輯理解:

手機app用戶端向資料庫發起請求,資料擷取到內容後,返回到手機app端,同時網頁端也要同步更新,擷取到資料庫端的指令;反之亦然。

網頁展示及app用戶端需要即時同步溝通,網頁展示及測試相關就需要用到Selenium。

 

Native Driver:是google做的一個Selenium的簡化版,即android裡面的Selenium的簡化版,用於測試手機的本地APP,提供webdriver一樣風格的API。這個必須在編譯的時候產生相對的jar包,如果這個Native Driver的jar包的話,就無法使用Native Driver做自動化測試,局限性比較大,但原理跟Selenium是相似的

 

下面介紹基本原理:

 

1、安裝apk到模擬器後,會和Framework架構進行通訊,Server會起一個4444的連接埠,通過這個連接埠跟FrameWork進行通訊,通過這個連接埠就可以擷取到所有的控制項,再根據三中不同的方式(Path、Id以及ClassName)找到控制項。

2、用戶端Client的程式需要部署在自動化指令碼中,然後你可以自己寫一個Test的測試程式,這個程式作用於AndroidDriver的Client端,給它髮指令,然後用戶端就會通過http+jscon的方式訪問模擬器上的Server,進行相應的類比操作。

 

二、Selenium原理初探

 

1、Selenium的簡介:Web端的自動化測試載入器,相容性很好,基於Chrome、Firefox、IE等的瀏覽器均可良好使用,

2、下載:在官網頁面上能夠看到以下四個內容

Selenium IDE:一個Firefox外掛程式(a FireFox Plugin)

Selenium Server(曾用名:Selenium RC Server)

The Internet Explorer Driver Server

Selenium Client & WebDriver Language Bindings(跟特定語言相關的,建議Java、Python)

推薦使用的是Selenium RC

 

看看源碼:

1、Server——DriverServlet(核心)

繼承HttpServlet,能夠拿到http的這個request and response,就可以在service函數中設定response的前序,然後就能夠進行傳輸

(鞏固一下:adb的連接埠是5037,Selenium的Server的連接埠是4444)

註:android裡面的dumpsys meminfo,記憶體分析包含四個:total、Rss(實體記憶體)、Stack記憶體、Virtual記憶體

2、Flick——滑動——核心是基於控制項

與Robotium的很像,擷取Web的所有Element-->得到座標點-->調用flick方法進行滑動,參數為elementlocation,xoffset,yoffset,speed

另:SetJsonParameter,即設定Jason的參數,

網路傳資料的格式:

(1)Json,格式:[{‘xxx‘:xxx, ‘xxx‘:xxx},{...}],其實跟Python的字典比較像,反正就是定義了一個格式,方便你去傳輸和解析,解析的話就是通過一種特殊的格式讓你找到一個欄位,然後再去擷取到這個欄位的value

(2)SAX:動態解析

(3)xml,格式:都是成對出現的,<xxx></xxx>

(4)ini?應該一般用ini的比較少吧,最近在寫的一個項目用的ini,其他的沒做調研,反正ini是沒法換行

3、LongPressElement(跟Robotium的ClickLongOnScreen方法類似):

基本原理都一樣,都是擷取Element,得到座標點,調用LongPress方法

 

如何找Element:(基本原理都類似:傳遞參數,然後找到跟這個參數匹配的,只不過可以通過以下三種方式來擷取到而已)

1、ByXPath

2、ByID

3、ByClassName

4、ByCssSelector

5、ByLinkText

6、ByName

7、ByPartialLinkText

8、ByTagName

 

核心:座標與控制項互動——找控制項,定位座標,通過對座標進行操作

 

三、Selenium示範

寫指令碼:

1、初始化

2、testcase

3、after的teardown裡面selenium.stop()

 

網易雲課堂:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878101&courseId=712011

金陽光測試

新浪微博:金陽光woody

         

          網站地址

1、百度搜:金陽光測試

2、官網:www.goldensunshine.cc

 

 

公眾號

Selenium原理初步--Android自動化測試學習曆程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.