selendroid項目實戰教程1


selendroid是國內使用非常少的框架、資料也少。剛好公司項目用到,給大家分享下,技術不太行,有錯誤還望指正。

使用selendroid契機,是公司開發的APP,需要大量捕捉Toast信息。公司的自動化平台已經很成熟,並且WEB自動化已經使用ruby watir-Webdriver。

因此為了加入公司自動化平台,使用ruby是最快的方式,但是資料少這是很頭疼的事情。

使用APPIUM的時候發現指令在移動端執行的速度很慢,而在使用selendroid之后驚喜的發現配置速度很快,快要趕上webdriver的速度了。

特別說明:並非高版本(API>16)就不能使用selendroid作為自動化測試框架,實測API 21也是可以使用selendroid

原始參考資料:http://selendroid.io/

純selendroid環境搭建

具體可參考網站資料,java -jar XXXXXx.jar -app test.apk 即可開啟selendroid服務器。

Appium-selendroid環境:

但作為項目實施 建議使用appium的selendroid模式。

好處:

1、appium已經加入selendroid作為一個啟動模式,日志管理、BUG定位環境搭建等都比較成熟。

2、純selendroid直接使用selenium庫作為驅動,很多輔助動能需要自己去實現,例如中文輸入、unicode輸入等。這些移動端測試能考慮的事情,appium團隊事實上已經幫忙考慮了。

3、啟動appium與默認appium模式並無區別,使用GUI開啟或者 node appium.js即可。

具體的APPIUM環境搭建不在贅述,大家可以參考網上很多的教程應該都不難。

ruby初始化:

貼入代碼:

# encoding utf-8
require 'watir-webdriver'
require 'appium_lib'
_caps={caps:{ app:'E:/APP/app-debug_3.1.3.876.apk',unicodeKeyboard:'True',resetKeyboard:'True',platformVersion:'5.0',automationName:'Selendroid',udid:'LGD857cfd6ea69',deviceName:'1', platformName:'Android', appActivity:'.activity.Anew.Splash.SplashActivity', appPackage:'com.tenda.router.app',newCommandTimeout:3600},appium_lib: { sauce_username: nil, sauce_access_key: nil } }
$b= Appium::Driver.new(_caps).start_driver

事實上與APPIUM初始化並無太多區別:

1、APP路徑必須有,因為每次初始化都要重新安裝APP。(大家不用擔心APP安裝會很麻煩,命令安裝時間很短)

2、UID必須有 就是appium的devices name參數。

關於selendroid元素定位:

可以使用sdk里面的uiautomatorviewer工具進行定位獲取ID等信息,其他用不到的可以參考selendroid官方網站的地位方式。

注意:uiautomatorviewer獲取ID時需要去掉前面的Package名稱/ 后面的才是selendroid的ID,否則定位不到。

並且selendroid雖然直接使用appium類,但是需要使用selennium的語法,因此使用appium的定位語句語法會報錯。

我用到最多的就是

按照全詞匹配查找:driver.find_element(:link_text,'Blog')

按照text的部分進行查找:driver.find_element(:partial_link_text,'Blo')


免責聲明!

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



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