基于Appium、Python的自動化測試環境部署和實踐
該文檔為選用Appium作為移動設備原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。
第一章 導言
1.1 編制目的
該文檔為選用Appium作為移動設備原生(Native)、混合(Hybrid)、移動
Web(Mobile
Web)應用UI
自動化測試的相關
自動化測試人員、
開發人員等提供參考。
1.2 預期讀者
自動化測試人員、測試代表、開發人員等。
第二章 概述
2.1 Appium設計哲學
不需要為了自動化而且重新編譯或修改測試app;
不應該讓移動端自動化測試限定在某種語言和某個具體的框架;也就是說任何人都可以使用自己最熟悉最順手的語言以及框架來做移動端自動化測試;
不要為了移動端的自動化測試而重新發明輪子,重新寫一套驚天動地的api;也就是說
webdriver協議里的api已經夠好了,拿來改進一下就可以了;
移動端自動化測試應該是
開源的;
2.2 Appium技術框架(C/S 框架)
Appium的核心是一個暴露了一系列REST API的Server。這個server的主要功能:監聽一個端口,然后接收由client發送來的命令(command)。解析這些command,把這些command轉成移動設備可以理解的形式發送給移動設備,然后移動設備執行完這些command后把執行結果返回給server, server再把執行結果返回給client。
client就是發起command的設備,一般來說就是我們代碼執行的機器,執行appium測試代碼的機器。狹義點理解,可以把client理解成是代碼,這些代碼可以是
java/ruby/python/js的,只要它實現了webdriver標準協議就可以。
這樣的設計思想帶來了一些好處:
1)多語言的支持;
2)可把server放在任意機器上,支持云測試;
圖1 Appium架構
圖2 Appium Android模型
圖3 AppiumiOS模型
2.3 Appium Server/Client
Appium Server即
服務器,連接Appium客戶端和移動設備。原生的webdriverapi為web端設計,因此擴展到移動端要拓展。Appium官方提供了一套appium client,涵蓋多種語言ruby/java/python等。
2.4 會話Session
在webdriver/appium,所有測試都必須在Appium Server和移動設備之間創建會話(Session)后才可以進行。一般來說,通過POST/session這個URL,然后傳入會話屬性(Desired Capabilities)就可以開啟會話了。開啟會話后,會返回一個全局唯一的會話ID(session id),之后幾乎所有的請求都基于該會話ID,該會話ID代表了你所打開的瀏覽器或者是移動設備的模擬器,連接執行機器和移動設備。由于每個移動設備的連接會話ID是全局唯一的,那么在同一臺機器上啟動多個會話就變成了可能,這使多移動設備的并發測試成為可能。
會話屬性(Desired Capabilities)包含會話配置信息,以key-value形式存在,可以理解成是java里的map,python里的字典,ruby里的hash以及javascript里的json對象(實際上,Appium Server和移動設備之間的會話屬性就是通過json對象傳輸)
第三章 Appium安裝
Appium
Windows版僅支持Android設備(手機),Appium Mac版同時支持Android和iOS設備(手機)。
3.1 Windows版安裝(64位)
3.1.1 軟件列表
1)JDK> 1.6
2)vcredist_x86_c++
3).Net Framework > 4.0
3)
Android Developer Tools(ADT-Bundle-windows-x86-64)
4)Appium for windows(最新版1.4.16.1)
5) Appium client(根據使用的語言安裝一種即可:
Java/Python/Ruby等),對于
Java客戶端,還需要
Selenium包selenium-java-2.46.0.jar , selenium-server-standalone-2.46.0.jar,python的是Appium-python-client(就是一個python類庫)
6)Android手機驅動(for windows),windows必須安裝任意一個Android手機驅動,否則,adb無法檢測無設備。
3.1.2 安裝過程
按照JDK、vcredist_x86_c++、
.NET Framework、Appium的順序安裝好各軟件,ADT直接
下載就可以用無需安裝
1)
JDK安裝:設置系統環境變量JAVA_HOME為JDK安裝路徑:(Java安裝和環境變量配置,自行百度)
原文轉自:http://www.cnblogs.com/baconLiu/p/6735441.html