爬虫類----アプリケーションのAppium紹介

Appiumはじめに

Appiumはツール、iOSとAndroidの上のネイティブアプリケーションのサポート、Webアプリケーションやハイブリッドアプリケーションのテスト自動化されたオープンソースです。

いわゆる「モバイルネイティブアプリケーションは、」書き込みへのiOSやAndroidのSDKを使用してそれらのアプリケーションを意味します。いわゆる「モバイルWebアプリケーションは、」モバイル・ブラウザアクセス(iOSのAndroid上でAppiumサポートSafariとChromeを)使用してアプリケーションを意味します。ネイティブコードのWebコンテンツとの相互作用 - ネイティブコードのページビューパッケージを指し、「ハイブリッドアプリケーション」、いわゆる。例えば、PhoneGapのように、ウェブ技術を使用してアプリケーションを開発する開発者を可能にし、その後、混合アプリケーションでネイティブコードを、カプセル化されました。

それは重要である、Appiumは、クロスプラットフォームのツールです:それは、それによって大幅にiOSとAndroidのテストスイートのコード間の再利用性を高め、テスターが異なるプラットフォーム(iOS版、Androidの)上の自動テストスクリプトを作成するためにAPIの同じセットを使用することができます。

、Appiumは、情報プラットフォーム、バージョン、およびサポートの自動化されたフォームの詳細な方法を知りたいプラットフォームのサポートドキュメントを参照してください。
Appiumコンセプト

モバイル自動化のニーズを満たすために、Appiumは哲学は、フォーカスは、次の4つの要件に反映され、次のとおりです。

あなたは、自動化、または変更し、アプリケーションを再コンパイルする必要はありません。
あなたは、書き込み、実行、テストスクリプトに特定の言語やフレームワークに限定されることはありません。
モバイル自動化フレームワークは、インターフェイス上で繰り返しホイールを作成しないでください。(モバイルオートメーションインタフェースが統一されなければならない)
のいずれかの精神的、または名目上、オープンソースでなければなりません。

Appiumデザイン

だから、Appiumアーキテクチャは、この理念を実現する方法ですか?最初に応えるために、Appium実ジョブエンジンは、実際には、サードパーティの自動化フレームワークです。したがって、我々は、インプラントAppiumまたはアプリケーション内の関連するサードパーティのコードは必要ありません。アプリケーションおよびアプリケーションは、あなたがいない別の最終リリースをテストするために使用することをこれが意味。我々は、次のサードパーティのフレームワークを使用します。

iOS版:アップルUIAutomation
アンドロイド4.2 +:UIAutomator Googleの
アンドロイド2.3以降:Googleの計装(計測は、別のプロジェクトのSelendroidでサポートされています)。

第二の点を満たすために、我々は、APIのセットとしてパッケージ化これらのサードパーティ製のフレームワークを入れてwebdriverをAPI.WebDriver(つまり、「セレンwebdriverを」である)サーバーへのクライアントのプロトコルを指定します。
(JSONワイヤプロトコルを参照してください)。このクライアントの使用-サーバアーキテクチャを、我々は、書き込み、クライアントに任意の言語を使用して、サーバーに適切なHTTPリクエストを送信することができます。
それは今あなたが任意のテストスイートまたはテストフレームを使用することができる手段のクライアントの中で最も人気のある言語バージョンを、実現しています。クライアントライブラリは、あなたが好きなようにあなたのコードに潜入することができ、簡単なHTTPクライアントです。言い換えれば、Appiumとwebdriverをクライアント「テストフレームワークは、」技術的な意味ではありませんが、「ライブラリを自動化しました。」テスト環境でこれらの自動化されたライブラリを使用して自由に感じます!

W3Cワーキングドラフト - Webブラウザの自動化標準規格となっていwebdriverを実際には、W3Cの標準となっています。なぜ我々はそれの完全に異なるメイクに移動する必要がありますか?我々はwebdriverを契約を拡大して、また、第三の概念を満たしている元、に基づいて、モバイルオートメーション関連APIのメソッドを追加します。

言うべき条言うまでもなく、Appiumはオープンソースです。
Appiumコンセプト

C / Sアーキテクチャ<BR/>
コアAppiumは、RESTインターフェースを提供するウェブサーバです。これは、コマンドを監視するために、クライアントの接続を受信し、モバイルデバイス、クライアントへのHTTPレスポンスで返された後、実行結果にコマンドを実行します。実際には、このクライアント/サーバアーキテクチャは、多くの可能性を提供します:例えば、我々は我々のテストコードを書くためのクライアントを実装する任意の言語を使用することができます。たとえば、私たちは別のサーバー上に置くことができる
マシン上で。例えば、我々は唯一の書き込みテストコード、その後、コマンドを解釈するためにソースLabsのクラウドサービスとしてこれを使用することができます。

セッション<BR/>
サーバーと対話するために、常にセッションを中心に実施し、自動化、クライアントが開始seesion(セッション)、異なる言語は、リクエストを異なる実装を持っていますが、それらは最終的には、サーバーへのPOSTリクエストに送信されますそれは「希望の機能」と呼ばれ、JSONオブジェクトが含まれています。この場合、サーバは、自動でセッションを開き、セッションIDを返しますが、セッションIDは、後続のユーザーコマンドに送信されます。

能力が望ましい
機能希望は、(例えば、マップやハッシュ)キーと値のペアのコレクションです、クライアントがサーバーに送信されたこれらのキーと値のペアは、サーバーには、テストする方法を私たちに語ったでしょう。例えば、我々は、iOSにplatformName機能、サービス側は、私たちが代わりにアンドロイドのセッションのiOSをしたいAppiumに語ったことができます。我々はまた、trueにsafariAllowPopups機能を設定することができ、Safariの自動化セッションは、我々は新しいウィンドウを開くためにはJavaScriptを使用できることを確認してください。機能の完全なリストについては、ドキュメント機能を参照してください。

サーバーAppium
Appium Node.jsのサーバーが書かれています。私たちは、コンパイルまたはNPMから直接インストールするには、ソースコードを使用することができます。

Appiumサーバー<BR/>

Appiumサーバ多くの言語ライブラリのJava、Rubyの、Pythonの、PHP、存在するのJavaScript とC#は、これらのライブラリは、達成した
合意のAppium webdriverを拡張します。Appiumを使用している場合、あなたはそれだけでこれらのライブラリの代わりに、従来のwebdriverをライブラリを使用する必要があります。
あなたはここにすべてのライブラリのリストを見ることができます。

Appium.app、Appium.exe <BR/>

我々は、すべての依存関係がNode.js.をインストールする方法については心配する必要がなくAppiumサーバーを実行してカプセル化しAppiumサーバーのGUIパッケージのダウンロードを提供します また、アプリケーション・インターフェース、より便利書き込みテストケースのレベルを確認することができますツールが含まれインスペクタ。
はじめに

おめでとうございます!あなたは今Appiumを使用するのに十分な知識を持っています。我々は戻ってドキュメントを始めるに来るより理解するために継続
要件およびガイドラインの詳細を。

自動化された混合アプリケーション

Appium一つのアイデアは、あなたがアプリケーションをテストするために、アプリケーションを変更することはできませんということです。この方法論を満たすために、我々はハイブリッドWebアプリケーション(例えば、iOSアプリケーション、要素「のUIWebView」)をテストするために、従来のWebアプリケーションをテストするために、セレンを使用することができ、それが可能です。ここではいくつかの技術的な複雑さがあるだろう、Appiumは、それがネイティブまたはWebパーツをテストしたいとあなたが一部であることを知っておく必要があります。幸いなことに、我々はwebdriverを契約を観察することができます。

混合iOSアプリケーション
ミックスのAndroidアプリ

自動化された混合iOSアプリ

あなたのテストでAppium、次交渉する手順と、Webページが必要になります。

アクティブな部分を考慮して、Webアプリケーションに移動します。
コールGETセッション/:セッションID / window_handles
これは我々がWebビューにアクセスできるIDのリストを返します。
/ POSTセッションを呼び出し、あなたが引数として訪問したい、このIDのWebビューを使用する:セッションID /ウインドウ
(これは、このモードでは、Appiumセッションのモードにあなたを置く、すべてのコマンドは、自動化されたWebビューとして解釈され、ないネイティブの部分。たとえば、あなたがgetElementByTagNameを実行すると、それは代わりにUIAElementsを返すので、DOMのWebビュー上で動作します。もちろん、この方法だけで、意味のある文脈でwebdriverをできるように、間違った状況であれば、あなた。あなたは)エラーメッセージが表示される
ウェブ層を残す方法:あなたが自動化されたWebビュー、ネイティブのセクションへの復帰を中止したい場合は、単にexecute_scriptコール「leaveWebViewモバイル」を使用することができます。

iOSの上で実行されている実際のマシン

インタラクティブなWebビューを達成し、確立するために、リモートデバッガの接続を使用してappium。シミュレータで、以下の例を実行するとき、私たちは、同じマシン上のシミュレータとappiumサーバーので、直接接続を確立することができます。

実機のユースケースで実行しているとき、我々はUSBケーブルを介して接続を確立する必要があるので、appiumは直接、Webビューにアクセスすることはできません。私たちは、IOS-webkitのデバッガ - プロキシ接続を使用します。

使用して、最新のIOS-のWebKit-デバッグプロキシをインストール醸造しました。ターミナルで次のコマンドを実行します。

#あなたが醸造をインストールしない場合は、醸造インストールします。
> Rubyの-e "$(カール-fsSL https://raw.github.com/mxcl/homebrew/go/install)"
> BREW更新
> BREWは、インストールIOS-のWebKit-デバッグプロキシ

また、gitのクローンを通じて、自分のプロジェクトの最新バージョンをインストールすることができます。

#これは最新のコード(とないタグ付きバージョン)でプロキシがインストールされますのでご注意ください。
> gitのクローンhttps://github.com/google/ios-webkit-debug-proxy.git
> CDのIOS-webkitのデバッグプロキシ
> ./autogen.sh
>は./configure
>作る
>はsudo make installを

インストールしたら、エージェントを起動することができます。

#UDIDは、お使いのデバイスをUDID置き換えられます。必ずポート27753が占有されていないことを確認します
。#リモートデバッガがこのポートを使用します。
> Ios_webkit_debug_proxy -c 0e4b2f612b65e98c1d07d22ee08678130d345429:27753 -d

<b>注:</ b> IOS-webkitのデバッグプロキシが必要です<B> "ウェブインスペクター" < / b>の接続を確立するために開いたまま。<B>で設定>サファリ>高度な </ b>のレーンは、それを開きます。iOS6 </ B>に追加したときに、以前のバージョンはしませんでしたウェブインスペクター<B>がありますのでご注意ください。
Wd.jsコード例

//私たちは`driver`オブジェクトの良い初期化があるとします。
driver.elementByName( 'ウェブ、のUIWebViewの使用 '、機能(ERR、EL){// Web表示開くためのボタンを見つける
のUIWebViewに導かel.click(機能(ERR){//
driver.windowHandles(機能(ERR、ハンドルを){//リストビューへのアクセスを得る。
driver.window(ハンドル[0]、関数(ERR){//ため一つだけなので、最初の選択。
driver.elementsByCss(」。、いくつかのクラス、関数( ERR、ELS){// CSS要素を介して取得する。
els.length.should.be.above(0); //確か要素
ELS [0]の.text(関数(elText){//最初の取得テキスト要素
elText.should.eql( "私の非常に独自のテキスト" ); // コンペアマッチテキスト。
driver.execute( "モバイル:leaveWebView"、機能(ERR){//ウェブ離れビューコンテキスト。
//もしあれば何かにネイティブアプリケーションを行い、欲しい。
driver.quitを(); //終了。

 

 

 

 

 

 

 

 

 Appium键值配置的地址:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

部分摘要自:https://www.cnblogs.com/111testing/p/7503026.html

おすすめ

転載: www.cnblogs.com/superSmall/p/12144379.html