appium + pythonの自動テストドキュメント
A.認識appium
1. 何がappiumは、
- appium移動端末はオープン自動テストフレームワークです。
- appiumテストネイティブ、混合、およびWebプロジェクトの移動端。
- appiumは、IOS、アンドロイドアプリケーション(もちろん、そこFirefoxのOS)をテストすることができます。
- appiumは、クロスプラットフォームで、OSX、WindowsおよびLinuxのデスクトップで使用することができます
2. appiumの哲学
- 自動化とテストアプリケーションを再コンパイルまたは変更する必要はありません。
- 誰が何を彼らの最も身近な言語で最も快適で、モバイルエンドは、自動テストフレームワークを使用することができることを意味する。言語や特定のフレームワークで定義されたエンド自動テストを動かすことは許されるべきではありません。
- 驚天動地のAPIを再書き込み、エンドテストの自動化と再発明ホイールに移動しないでください、それの外観を改善するために使用十分APIであるwebdriverを契約、。
- エンド・モバイル自動テストは、オープンソースである必要があります。
II。業務プロセスのAppium初期の理解
- そこappium C / Sモード
- appiumのwebdriverをプロトコルは全てwebdriverをモバイルデバイスオートメーションAPIの拡張に基づいており、そのような多言語サポートと同じ機能を有しています。
- webdriverをがHTTPプロトコルに基づいて、最初の接続は、セッションのセッションを確立し、サーバに通知するポストによってJSON関連テスト情報を送信します。
- 4.2が計装フレームワークである前に、Androidの場合、4.2は、UiAutomator噴射イベントを探す達成するための将来の枠組みに基づいており、かつコールとしてパッケージサービスを提供しSelendroid。
- クライアントは、クライアントがマルチ言語サポートであることを意味し、通信を可能にするためにHTTPリクエストを送信する必要があります。
- appium Node.jsのサーバーが書かれているので、プラットフォームのインストールは、NPM -g appium(必要FQ)をインストールし、ノードを設置しています。
III。構築するための環境
ソフトウェアをインストールする必要があります
- JDK:上記のよう1.8.0_221環境変数
- Pythonの:上記3.7.4環境変数、インストールが自動的に終了します。
cmdを実行パイソン
3.node.js:10.16.3
1.インストールが自動的に追加されます
node_global取り付けられた2つの新しいファイルフォルダのパスにインストールした後に2、node_cache
バージョン番号を表示-v 3 / CMD NPM
最新のSDK MANAGER.EXEのダウンロードを使用する4.android-SDK最高
AndroidのSDKツール、AndroidのSDKプラットフォーム・ツール、AndroidのSDK Bulid-ツール
なお、図Path環境解像度と3つのフォルダの設定が必要です
実行adbのバージョンは、バージョン番号が表示さcmdを
cmdを実行アンドロイドは、Android SDK Managerを実行します
5.Appium:1.13.0
appium-installer.exeのをダウンロードしてインストールするには、公式ウェブサイト
6.Appium、医師
インストールNPMは-g appium-医師をインストール
node_modules \ .binファイルで、システム環境変数PATHに追加
実行appium-医師は、次の図に表示されて成功した環境を表し、
7.Appium-のPythonクライアントのインストール手順
PIP-のpython-クライアントは、エポックをインストール
8.お使いの携帯電話のデバイスを接続します
開発者用のUSBデバッグモードを開くことはOK
ADBデバイス、デバイスのステータスを表示し、表示することができ-l:XXX
IV。Appiumクライアントを使用するのは簡単
予備的
「PlatformName」:「アンドロイド」、アンドリューステスト
"PlatformVersion": "7"、Androidのバージョン
「DeviceNameの」:「レオ」、ADBデバイスが使用可能なデバイス名を-l
AAPTダンプバッジ+ xxx.apk appPackage、appActivity 2データを取得してもよいです
次の単語を取得チェック
パッケージ:名= 'cn.gloud.client.mobile'
起動可能-アクティビティ:名= 'cn.gloud.client.mobile.init.InitActivity'
"appPackage": "cn.gloud.client.mobile"、
"appActivity": "cn.gloud.client.mobile.init.InitActivity"
インスタンスをクラウドにゲームグリッドを開始するには、以下:
1 から appium インポートwebdriverを 2つの 3キャップ= {} 4つのキャップ[ " platformName " ] = " アンドロイド" 5つのキャップ[ " platformVersion " ] = " 7 " 6つのキャップ[ " DEVICENAME " ] = " レオ" 7つのキャップ[ " appPackage " ] = " cn.gloud.client.mobile " 8個のキャップを[ "appActivity" ] = " cn.gloud.client.mobile.init.InitActivity " 9 10ドライバ= webdriver.Remote(" のhttp:// localhostを:4723 / WD /ハブ" キャップ) 11 12 EL1 = driver.find_element_by_xpath(" /階層/ android.widget.FrameLayout / android.widget.FrameLayout / android.widget.LinearLayout / android.widget.FrameLayout / android.widget.LinearLayout / android.widget.FrameLayout / android.widget.LinearLayout / android.widget.RelativeLayout / android.widget.RelativeLayout / android.widget.FrameLayout / android.widget.FrameLayout / android.widget.HorizontalScrollView / android.widget.FrameLayout / android.widget.LinearLayout [2] /android.view.View 」) 13 el1.click() 14 EL2 = driver.find_element_by_xpath(" /hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget。でframeLayout / android.widget.LinearLayout / android.widget.RelativeLayout / android.support.v4.view.ViewPager / android.widget.LinearLayout / android.widget.FrameLayout / android.widget.RelativeLayout / android.widget.RelativeLayout [1] /android.widget.RelativeLayout/android.widget.RelativeLayout[1]/android.widget.EditText " ) 15 el2.click() 16 el2.send_keys(" 账号" ) 17 EL3 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout /android.support.v4.view.ViewPager/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout [2] /android.widget.RelativeLayout/android.widget.RelativeLayout [ 1] /android.widget.EditText " ) 18 el3.send_keys(" 密码" ) 19 EL4 = driver.find_element_by_id(" cn.gloud.client.mobile:id/login_btn 」) 20 el4.click() 21EL5 = driver.find_element_by_id(" cn.gloud.client.mobile:id/ad_close_img " ) 22 el5.click() 23 EL6 = driver.find_element_by_id(" cn.gloud.client.mobile:id/ad_close_img " ) 24 EL6。 ()をクリック 25を 26 driver.quit()