日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Selenium之Android使用学习

發(fā)布時間:2025/5/22 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Selenium之Android使用学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

20140507

Selenium一般用在web自動化上,為什么Android上也能用呢?

如圖,手機端和DB聯(lián)動:手機端的客戶端給server發(fā)數(shù)據(jù)流,進行增刪改查操作,這種寫數(shù)據(jù)用update更新,更新后計數(shù)器+1,表示手機端對server進行了一次訪問,有了一筆交易;

db(如mysql)會同步到網(wǎng)頁上給大家看,給網(wǎng)頁發(fā)個消息,說已經(jīng)有一筆交易,

網(wǎng)頁顯示完畢后,要反饋給db一個消息,告訴用戶看到了。

db所在的server會通過httpsocket 連接,告訴手機客戶端,同步顯示網(wǎng)頁的東西。

就是說,手機客戶端只是占到其中的三分之一左右,后臺的鍵值對校驗,網(wǎng)頁同步顯示等都要關(guān)注。

?

左邊是Native Driver,右邊是selenium。

Native Driver是google做的簡化版selenium,該工具是webdriver API的一種實現(xiàn),使用原生UI而不是瀏覽器UI的自動化測試框架,用于運行Android應(yīng)用程序的功能測試。Google決定重用WebDriver API 用于原生應(yīng)用而不是創(chuàng)建全新的接口,是應(yīng)為兩者之間有許多相似點--他們都控制相同的UI操作,如點擊、輸入、讀取文本、切換窗口。而且熟悉WebDriver的用戶不需要學習另一種API就可以立即開始使用NativeDriver。它是運行在Android里面的,并入了framework框架。

如果要使用Nativedriver,在編譯版本的時候,比如小米,編譯時要把框架加進去,最后生成兩個jar包,把這兩個jar包加入到project中,就可以引用NativeDriver進行自動化測試了。拿到一個手機如果沒把Native包給你,就做不了自動化測試了。

上面那個圖,Native Driver有兩個東西,黃色部分,一個是server,一個是client,看左邊的圖,APK裝入手機后,通過framework層(具體是Instrumentation framework)與底層進行通信(這不就是佳林老師講的架構(gòu)嘛),server會啟動一個端口叫4444,與APK進行通信,那么端口服務(wù)會把framework的view視圖全部讀出來,讀出來之后判斷是哪個控件,是button呢,還是文本框呢?selenium有三種方法去找控件:1. path 2. id 3. classname。再看右邊的client端,這是要部署在自己的自動化腳本里。

QTP比selenium強大太多了,各種瀏覽器都支持,可以截屏對比,斷言,都是自動的,但是對于人而言,沒有意義。selenium是開源的自動化框架,走到哪里都可以用;且太貴。

Selenium有四個版本,RC是最早的,現(xiàn)在名字叫WebDriver了,腳本優(yōu)美簡潔。

LR 評估性能,大企業(yè)才會用到。

Selenium是ThroughtWorks公司一個強大的開源web功能測試工具系列,本系列現(xiàn)在主要包括以下四款:

1. Selenium Core:支持DHTML(動態(tài)超文本)的測試案例(效果類似數(shù)據(jù)驅(qū)動測試),它是Selenium IDE和Selenium RC的引擎。優(yōu)點是寫測試案例簡單,支持大多數(shù)瀏覽器,缺點是需要遠程安裝,Selenium語言也限制了復雜案例的可能性,并且沒有良好的外部擴展,這都會是致命的問題。因為一款測試工具不可能100%滿足你測試需要的,當它不能滿足你的測試需求時候,它必須有一個擴展機制可以讓你使用其他的方式滿足你需求,否則這款測試軟件即使功能再強大,也請三思神勇,否則當投入大量資源后,才發(fā)現(xiàn)某些問題不能解決,那時候已經(jīng)晚了,這是金老師的切身體會。

2. Selenium IDE:是火狐的插件,只支持火狐。下載下來后直接拖到火狐中,就有錄制器了,很傻瓜地操作。

3. Selenium Server(過去叫Selenium RC Server):是主要的。

4. Selenium Grid:

IDE和HTA不重點講,因為現(xiàn)在360瀏覽器是主流了。中間兩個重點講。

代碼分析workflow:

面試經(jīng)常問的:flick icon格式

服務(wù)器端口?

對比robotium(獲取view視圖 找到控件 再調(diào)用touch)

select 三種方式查找webview 第一種是path 第二種是 className方法 第三種是id

Selenium的api:http://selenium.googcode.com/git/docs/api/java/index.html

?

?

1. 下載TortoiseSVN(小烏龜,好處是想下載到哪里,就在當?shù)卮蜷_,下載,OK),這里的下載地址是:http://selenium/googlecode.com/svn/trunk

2. 下載完畢后有四個文件:thrid-party;selenium-common;server--selenium( 找不見,不知道為什么)

3. 重要的類:位于server--selenium中的DriverServlet服務(wù)器核心類

?位置:server--selenium/src/org/openqa/selenium/remote/server/DriverServlet.java

public class DriverServlet extends HttpServlet{

protected void service xxxx --service端口是4444,面試時經(jīng)常問到

app端口 5037?

}

Dumpsys meminfo 要到linux adb shell里查看內(nèi)存,或者用top查看

total 總內(nèi)存 RSS 物理內(nèi)存 Stack 堆棧內(nèi)存 dalvik 虛擬機內(nèi)存

top命令后,出現(xiàn)的有RSS--物理內(nèi)存;

Flick類-滑動-核心是基于控件

Flick.java: 邏輯

1. 拿到WebElement,然后得到其坐標;拿到后去Flick(滑動),從左滑到右,偏移多少多少

if (elementID !=null){

WebElement element = getKnowElements().get(elementId);

Coordinates elementLocation = ((Locatable) element).getCoordinate

touchSreen.flick(elementLocation,xoffset,yoffset,speed);

}else {

touchSreen.flick(xSpeed,ySpeed);

return ResultType.SUCCESS;

安卓里常用格式:

json的格式[{"name":"ianthe",},]鍵值對

SAX 邊加載邊讀入以前內(nèi)存小常用

?

}?

此處回憶一下robtium:先是getview-把它丟到ArrayList里面,再來判斷是哪一個控件,接下來就是getxxx(x,y,xxx)

轉(zhuǎn)載于:https://www.cnblogs.com/ianthe/p/3715199.html

總結(jié)

以上是生活随笔為你收集整理的Selenium之Android使用学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。