自動テストツール Appium についての話

目次

序文:

1. 簡単な紹介

(1) テスト対象

(2) 対応プラットフォームと言語

(3) 動作原理

(4) 取り付けツール

2. 環境構築

(1) Android SDKをインストールする

(2) Appiumサーバーのインストール

(3) Pythonクライアントのインストール

3. 申請と運用

(1) appiumプロセスを呼び出す

(2) 最初のステップは、携帯電話デバイスのパラメータを設定することです

(3) 2 番目のステップは、携帯電話に適用されているコントロールをキャプチャすることです。

(4) 3 番目のステップは、コントロールを操作することです。

4. まとめ


序文:

Appium の主な特徴の 1 つは、異なるオペレーティング システム上で実行できるクロスプラットフォーム ツールであることです。つまり、同じテスト スクリプトのセットを使用して、異なるモバイル プラットフォームでテストを実行でき、時間とリソースを節約できます。

1. 簡単な紹介

(1) テスト対象

appium は、iOS および Android プラットフォーム上のネイティブ アプリケーション、Web アプリケーション、およびハイブリッド アプリケーションをサポートする自動テスト用のオープンソース ツールです。
● モバイル ネイティブ アプリケーション: 特定の種類のモバイル デバイス向けに純粋に iOS または Android 開発言語で記述され、デバイスに直接インストールできるアプリケーション。一般に、ゲーム アプリなどのアプリケーション ストアを通じて入手できます。 ; ● モバイル Web アプリケーション
: モバイル ブラウザを使用してアクセスされるアプリケーション (appium は iOS の Safari および Android の Chrome をサポートします)、デバイスにダウンロードする必要はなく、H5 Jiuqu Fengshen ゲームなど、ブラウザを通じて直接アクセスします。 ● 混合アプリケーション:
Web ページ言語とプログラム言語開発の両方を使用し、アプリケーション ストアを介してモバイル オペレーティング システムの配布を差別化します。ユーザーは、携帯電話の淘宝クライアントなどのモバイル アプリケーションをインストールして使用する必要があります。

(2) 対応プラットフォームと言語

● appium はクロスプラットフォームで、OSX、Windows、Linux システムをサポートします。テスターは同じ API セットを使用して、異なるプラットフォーム (iOS、Android) で自動テスト スクリプトを作成できるため、iOS と Android テスト スイート間のコードの再利用性が大幅に向上します Appium は複数の言語をサポートし、C/S 設計モードを採用し
ます、クライアントがサーバーに http リクエストを送信できる限り

(3) 動作原理

以下の画像参考URL: http: //www.testclass.net/appium/appium-base-summary/

図に示すように、appium は主にクライアントエンド、サーバーエンド、モバイルデバイスのテストの 3 つのポイントに分かれています。 クライアントエンド:
さまざまな言語で書かれたテストスクリプト
サーバーエンド: 特別に使用される appium ツールをインストールする部分クライアントからのリクエストをリッスンして受信し、リクエストを転送し、テストを実行するためにモバイル デバイスを制御し、デフォルトでインターフェイス 4723 を有効にして監視します。 ● モバイル デバイス: 3 種類のデバイスをサポートします。最終的な目標は、デバイス上で指定された操作を自動的に実行することです

プロセス全体:
まず、appium ツール(
テスト スクリプトを作成し、サーバーに配置し、テスト スクリプト (以下と同等) 3. モバイルデバイスはサーバー
から送信されたコマンドを受信し、指定された操作を実行します。

(4) 取り付けツール

● Python などのテスト言語
● appium クライアント
● appium サーバー
● モバイル デバイス (仮想マシンを使用する場合は、それをインストールする必要があります)

2. 環境構築

(1) Android SDKをインストールする


1. Android SDK (Software Development Kit、ソフトウェア開発キット) は、Android API ライブラリと、アプリケーションを構築、テスト、デバッグするための開発ツールを提供し、Android アプリケーションを開発および実行するためのソフトウェアとみなすことができます。adb、aapt、uiauTomatorview
3. テスト デバイスは Android エミュレータを使用するため、この手順をスキップしないでください。

(2) Appiumサーバーのインストール

1. appium インストール パッケージをダウンロードします。
2. appium 環境変数をインストールして構成します。

(3) Pythonクライアントのインストール

1. 最初にプログラミング言語 (Python 言語など) をインストールします。
2. Appium-Client をインストールします。Python は pip でインストールできます: pip install Appium-Python-Client

3. 申請と運用

(1) appiumプロセスを呼び出す

1. モバイル デバイスのパラメータを設定し、どのモバイル デバイスに電話をかけたいかをサーバーに伝えます
2. 携帯電話に適用されているコントロールを取得し、操作する対応するコントロールを指定します
3. キャプチャされたコントロール (クリック、フィルなど) を操作しますパラメータなどで

(2) 最初のステップは、携帯電話デバイスのパラメータを設定することです

Appium 的 Desired Capabilities 基本配置如下:
#Android environment
import unittest
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.2'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['app'] = PATH('../../../apps/selendroid-test-app.apk')
desired_caps['appPackage'] = package
desired_caps['appActivity'] = activity

self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

共通パラメータの説明:

● deviceName: Android エミュレータ、iPhone シミュレータなどの起動デバイスを指定します。
● automationName: 自動化エンジンを指定します。デフォルトは appium です。
● platformName: モバイル プラットフォーム、Android または iOS を指定します。
● platformVersion: のシステム バージョンを指定します。プラットホーム。たとえば、Android システムのバージョンを 4.2 と指定します
● appActivity: テストするアプリのアクティビティ。ネイティブ アプリの場合、アクティビティの前に「.」を追加する必要があることに注意してください
● appPackage: パッケージ名 (パッケージ) 情報テストするアプリの

(3) 2 番目のステップは、携帯電話に適用されているコントロールをキャプチャすることです。

Android SDK 組み込みツール uiauTomatorviewer.bat を使用して、モバイル アプリケーションの制御パラメーターを表示します (ツールは /tools/bin/ ディレクトリにあります)。 1.
ID の配置

使用方法:
driver.find_element_by_id('com.android.contacts:id/three')

2. 名前の位置付け

使用方法:
el = self.driver.find_element_by_name('不在着信')
el = self.driver.find_element_by_name('不在着信')

3. クラス名の位置付け

使用方法:
els = self.driver.find_element_by_class_name('android.widget.ImageButton')
els = self.driver.find_elements_by_class_name('android.widget.ImageButton')

4、Accessibility ID 定位

使用方法:
el = self.driver.find_element_by_accessibility_id('三')
el = self.driver.find_elements_by_accessibility_id('三')

5. Android uiautomator の配置

使用方法:
el = self.driver.find_element_by_android_uiautomator('new UiSelector().description(星形符号")')
els = self.driver.find_elements_by_android_uiautomator('new UiSelector().clickable(false)')

(4) 3 番目のステップは、コントロールを操作することです。

1.scroll  
scroll(self, origin_el, destination_el):  
从元素origin_el滚动至元素destination_el  
举例:driver.scroll(el1, el2)  
用法:driver.scroll(el1,el2)

2.tap  
tap(self, positions, duration=None):  
模拟手指点击(最多五个手指),可设置按住时间长度(毫秒)  
举例:driver.tap([(100, 20), (100, 60), (100, 100)], 500)  
用法:driver.tap([(x,y),(x1,y1)],500)

3. swipe
swipe(self, start_x, start_y, end_x, end_y, duration=None):  
从A点滑动至B点,滑动时间为毫秒  
举例:driver.swipe(100, 100, 100, 400)  
用法:driver.swipe(x1,y1,x2,y2,500)

4. keyevent
keyevent(self, keycode, metastate=None):  
发送按键码(安卓仅有),按键码可以上网址中找到  
用法:driver.keyevent(‘4’)

5. press_keycode
press_keycode(self, keycode, metastate=None):  
发送按键码(安卓仅有),按键码可以上网址中找到  
用法:driver.press_ keycode(‘4’)

6.text
text(self):  
返回元素的文本值  
用法:element.text

7.click
click(self):  
点击元素  
用法:element.click()

8.get_attribute
get_attribute(self, name):   
获取某元素的相关值  
用法:element.get_attribute(“name”)

9.size
size(self):  
获取元素的大小(高和宽)  
用法 driver.element.size

10. page_source
page_source(self):    
获取当前页面的源  
用法:driver.page_source

11.quit
quit(self):   
退出脚本运行并关闭每个相关的窗口连接   
举例:driver.quit()

4. まとめ

1. Appium はクロスプラットフォームであり、Android と IOS の自動テストをサポートしています。
2. Appium は、Java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure などの複数の言語をサポートします。
3. ネイティブ アプリケーション、Web アプリケーション、およびハイブリッド アプリケーションをサポートします。
4. UI テストのみをサポートします。

  ここに来た者として、皆さんも寄り道は避けていただきたいと思います。

ここでは、自動テストを進める上で必要なことをいくつか共有し、お役に立てれば幸いです。

(ソフトウェアテスト関連資料、自動テスト関連資料、技術的なQ&Aなど)

そうすることでより良い進歩が見込めると信じています!

下の小さなカードをクリックしてください

おすすめ

転載: blog.csdn.net/Free355/article/details/131764410