Appium移動端自動化測試–使用IDE編輯並強化腳本

  • 2019 年 12 月 27 日
  • 筆記

文章目錄如下

Appium客戶端安裝安裝Python IDE-PycharmJava IDE 安裝使用隱式等待讓用例更穩定隱式等待啟動Appium非GUI模式:Appium Server

Appium客戶端安裝

上一節錄製完成測試用例腳本,每種語言都有對應的客戶端,如下; 接下來準備安裝客戶端。 Ruby: https://github.com/appium/ruby_lib Python: https://github.com/appium/python-client Java: https://github.com/appium/java-client JavaScript(Node.js): https://github.com/admc/wd Objective C: https://github.com/appium/selenium-objective-c PHP: https://github.com/appium/php-client C#(.NET): https://github.com/appium/appium-dotnet-driver RobotFramework: https://github.com/jollychang/robotframework-appiumlibrary

安裝Python IDE-Pycharm

知識點:

  • 安裝客戶端:python -m pip install –upgrade pip
  • Python多版本隔離工具:venv
  • 測試框架:unittest、pytest、nose,特別推薦pytest

接下來我們安裝IDE工具,此處使用的IDE是Pycharm。 PyCharm社區版足矣:https://www.jetbrains.com/pycharm/download/#section=windows

新建一個項目文件,並將之前錄製好的腳本複製到項目中,由於創建的項目是一個隔離乾淨的Python環境,所以需要安裝Appium-Python-client

打開CMD窗口並cd到虛擬項目的Scripts目錄下 進行安裝 pip install appium-Python-client,安裝完成之紅色報錯消失。

接下來直接運行剛剛的腳本demo.py 可以看到虛擬機啟動了雪球APP,並進行相應的操作。

Java IDE 安裝

  • IDE推薦:Intellij IDEA
  • 配置Manven項目
  • 在src/test下編寫用例
<dependency>      <groupId>io.appium</groupId>      <artifactId>java-client</artifactId>      <version>${version.you.require}</version>      <scope>test</scope>  </dependency>  

在GitHub上面有各個語言版本的用例模板。 https://github.com/appium/appium/tree/master/sample-code

使用隱式等待讓用例更穩定

隱式等待

  • 隱式等待:服務端(Appium)會在特定的超時時間內重試多次尋找空間(全局等待,設置一次,對所有的元素等待都生效);
  • 顯示等待:在客戶端(用例端)根據更靈活的條件循環等待條件滿足(局部等待,只對設定的等待生效,針對某些特殊的元素);
  • 在示例代碼中加入隱式等待,再次運行

Error: 在這裡發現Android 10.0支持driver.implicitly_wait(10) 不是很穩定,卡了兩個小時沒搞定,乾脆換成Android9.0之後就能夠順利運行了

啟動Appium非GUI模式:Appium Server

啟動Appium非GUI模式,看到所有的日誌信息,為了更好的調試,告別desktop桌面模式,更輕量級。 打開CMD窗口,輸入Appium,會出現已經啟動Appium以及版本之類的信息。 打開已經創建的虛擬機 運行之前錄製好的Demo腳本,可以看到CMD界面開始打印所有的日誌。