1. 程式人生 > >Macaca初體驗-Android端(Python)

Macaca初體驗-Android端(Python)

前言:

Macaca 是一套面向使用者端軟體的測試解決方案,提供了自動化驅動,周邊工具,整合方案。由阿里巴巴公司開源:http://macacajs.github.io/macaca/

特點:

同時支援PC端和移動端(Android、iOS)自動化測試。

支援JavaScript(Node.js)、Java、Python。

本次教程將介紹如何使用Macaca進行Android端自動化測試。使用程式語言為Python3.5(Macaca只支援Python3.4以上版本)

環境安裝:

1、Macaca環境+Android SDK環境+Java環境+Node環境見:Android環境配置

2、通過macaca doctor可以檢查環境是否配置成功,如下圖所示則表示環境均配置正常,如果有標紅提示,則需要對應處理。

>>macaca doctor

3、安裝Macaca Python Client,支援pip安裝。

>>python3 -m pip install wd

用例編寫:

專案目錄F:\workspace\macaca-android\macaca-test下建立測試用例:macaca-android-sample.test.py,其中macaca-test為測試目錄集。

https://github.com/macaca-sample/sample-python/blob/master/tests/macaca-android-sample.test.py

程式碼如下:

API詳解:

driver.init()  初始化

driver.quit()  退出

driver.back() 返回上一步

driver.element_by_id  根據id來查詢元素

driver.element_by_name 跟據name來查詢元素

driver.elements_by_class_name  跟據class_name來查詢元素

driver.accept_alert()  alert彈框確認

driver.touch('tap', {'x':100,'y':100})  在裝置上應用觸控操作,例如:tap/doubleTap/press/pinch/rotate/drag ,操作後面填寫對應座標x,y值

driver.save_screenshot  儲存截圖

備註:與appium的API極為相似,熟悉appium的同學可以快速上手,定位元素的方法一致。

詳細API見官網:https://macacajs.github.io/wd.py/api.html

執行用例:

1、啟動macaca服務:

>>macaca server --verbose  //加--verbose可以看到詳細的執行過程

2、執行用例:

>>python3 macaca_test\macaca-android-sample.test.py

以上

相關推薦

Macaca體驗-AndroidPython

前言: Macaca 是一套面向使用者端軟體的測試解決方案,提供了自動化驅動,周邊工具,整合方案。由阿里巴巴公司開源:http://macacajs.github.io/macaca/ 特點: 同時支援PC端和移動端(Android、iOS)自動化測試。 支援JavaScript(Node.js)、Java、

前端js密碼加密後傳輸給後python實現方法

js 實現 <script src="js/jsencrypt.min.js"></script> var encrypt = new JSEncrypt();             encr

將keras或tensorflow模型遷移到androidAndroidStudio

經歷了多次採坑,終於是現實了將keras模型遷移到android端上。 網上的一些教程實在太少,而且我也是走了很多彎路,有很多是使用Bazel工具把TensoFlow編譯成.so庫檔案和jar包,再進行Android配置,實現模型移植。但是。。。我可能太笨了沒成功。。放棄了

Flutter體驗-環境搭建

環境搭建(一) 一直開發react-native專案,感覺挺不錯;最近聽說 google 釋出混合開發框架flutter,可以跨三端很強勢,很好奇的來試試,不過坑不少; 英語能力強的兄弟可以去看官網-傳送門,英語能力一般的兄弟可直接去看中文網-傳送門,樓主就

模擬高併發請求服務python gevent

專案背景:對web後端進行高併發的請求,簡單測試服務框架的效能 解決思路:利用python的多執行緒,但python的多執行緒有點“雞肋”, 個人選擇使用簡潔輕便gevent。 解決方案:採用gevent非同步 + requests 進行高併發請求 import time import

Android與服務SSM互動

客戶端 Android在Android Studio平臺,採用OkHttp進行網路請求 服務端 服務端採用了SSM(Spring+SpringMVC+MyBatis)框架 這裡介紹服務端接收並返回json資料的多種方法 方式一:PrintWriter @RequestMa

android開發怎麼少的了後

序言:上一篇中我們講了簡單後端開發所必須的一些工具以及講解,如果你還沒有了解的話,請移步 今天給大家帶來的是客戶端與伺服器端的通訊,話不多說,直接上例子: 今天我們實現一個註冊的功能,客戶端的介面編寫神馬的咱就不在這浪費時間了,我這也直接寫好了,一個最簡單的

微信支付接入完全解析之Android客戶2

前段時間在一個App中接入了微信支付功能,想來也穩定執行快一個月了,回頭想想自己接入微信支付時候踩過的坑,決定寫一篇自己當初想要搜尋的文章,文章準備分3篇完成。 第一篇:微信支付前期準備 第二篇:微信支付接入客戶端部分(以Android為例

手把手教你仿一個知乎日報Android客戶多圖

本文為作者原創,轉載請註明出處@大蘑菇的部落格 圖片託管服務由貼相簿提供 作為一隻網蟲,肯定是經常泡在網路的海洋裡,有一天偶然看到了知乎日報的API,各方面介面都還挺全面,於是本著“不用白不用”的真理,我決定仿一個知乎日報Adnroid客戶端。

手把手教你仿一個知乎日報Android客戶主頁面設計

各位朋友,從本篇文章和開始,手把手教你仿一個Android客戶端就要正式開始探究怎樣實現我們前面的那些需求了。在此開發我們將會使用git作為版本控制工具,並且將程式碼託管到github,好啦,廢話少說,咱們開工。 一、建立專案 怎麼建立專案大家應該都知道

按照字符串中的數組進行排序的方法python

正則表達 mil uil () false 解決 lam font .cn 有時候處理數據時,想要按照字符串中的數字的大小進行排序。 譬如,存在一組記錄文件,分別為‘1.dat’,‘2.dat‘... 當我把該文件夾中的所有記錄文件名讀到一個列表中,這些字符串的排列方式為:

Spark SQL編程指南Python【轉】

res 平臺 per 它的 split 執行 文件的 分組 不同 轉自:http://www.cnblogs.com/yurunmiao/p/4685310.html 前言 Spark SQL允許我們在Spark環境中使用SQL或者Hive SQL執行關系型查詢。它的核

fastclick.js解決移動ipad點擊事件反應慢問題

javascrip tag 區間 spa doc base blog data- ava 參考http://blog.csdn.net/xjun0812/article/details/64919063     http://www.jianshu.com/p/16d3e4

寫個OAuth2.0的請求來測試自己的OAuth2.0服務

邏輯 mat ace png urn img rest avi round 在上一篇文章中,我們介紹了怎麽創建自己的服務器,現在我們開始寫個client端,來測試。 我們創建一個MVC項目,叫TestOAuthClient 1. 代碼開始 1)第一步,我們創建一個Mai

找到第一個只出現一次的字符並返回它的位置Python

出現一次 ret {} baby find highlight int images 返回 s = ‘hellobaby‘ def findchar(s): for i in s: if s.count(i)==1:

android weight權重的詳細分析

關註 一段 sum 比例 .net orien 2個 背景 wid 首先要明確權重分配的是那些空間? 權重是依照比例分配屏幕的剩余空間 對這句話不理解的能夠看下圖 假如我們希望剩余的空間平分給空間1 和空間2 , 我們分別在2個控件的設置and

【leetcode】Word Breakpython

條件 text for -m 是我 tex eas sso false 思路是這種。我們從第一個字符開始向後依次找,直到找到一個斷句的地方,使得當前獲得的子串在dict中,若找到最後都沒找到。那麽就是False了。 在找到第一個後,接下來找下一個斷句處,當然是從第

列表操作之定義,切片取元素Python

fin 元組 括號 all call 切片 python define 表操作 學完列表,元組,字典,集合以後,發現他們長的有些像,傻傻分不清,現在回顧下,以代碼為例進行分析每一種操作的屬性。(英語不佳,錯誤請忽略) 舉栗如下:names = ["hbb",‘tian‘,

Redis連接的客戶connected_clients數過高或者不減的問題解決方案

http lib last 知識庫 nbsp reac nts 關閉連接 comm 最近的項目上使用ServiceStack.Redis上了redis緩存,其中遇到了很多問題。。 比如說 某一天發現redis做的緩存竟然失效了,然後查了下日誌 報錯max number o

數據驅動測試Python

baidu -c 驗證碼 clas case 需要 調用 很多 element 自動化領域的兩種驅動,對象驅動與數據驅動 數據驅動:測試數據的改變引起執行結果的改變 叫 數據驅動 關鍵字驅動:測試對象名字的改變起引起測試結果的改變 叫 關鍵字驅動 1 、讀取文