標籤:
章節:自動化基礎篇——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自動化測試學習曆程