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


章節:自動化基礎篇——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、火狐、IE等的瀏覽器均可良好使用,

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

Selenium IDE:一個火狐插件(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

 

 

微信公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM