ios UI自動化テスト学習ノート


一、いくつかの注意事項:


1.オートメーションテストを行うときは、本体であればまず画面をロックしないように設定することに注意してください.
2.自動化テスト中にプログラムのバックグラウンドまたはクラッシュが発生した場合.スクリプトの実行は、プログラムが再びフロントに戻るまで一時停止します.
3.自動テストをオフにすることを明確に指定する必要があります.テストが完了しても中断しても、自動的にテストをオフにすることはありません.
4.テストもビューツリーの要素位置に基づいて要素を取得してテストし、ルートビュー要素はUITArgetである.

二、一部の機能説明:


1.現在のプログラムを取得します(アクティブ化中):
UIATarget.localTarget().frontMostApp();

2.ターゲットプログラムのメインウィンドウを取得する:
UIATarget.localTarget().frontMostApp().mainWindow();

3.cellのテキスト要素を取得します.
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[0].elements()["Chocolate Cake"];

4.ナビゲーションバーの「Add」ボタンをクリックします.
UIATarget.localTarget().frontMostApp().navigationBar().buttons()["Add"].tap();

5.クリック画面上の位置をトリガーする:
UIATarget.localTarget().doubleTap({x:100, y:200});



UIATarget.localTarget().twoFingerTap({x:100, y:200});

6.tabBarを取得してクリック:
appWindow.tabBar().buttons()["Unit Conversion"].tap();

7.拡大:
UIATarget.localTarget().pinchOpenFromToForDuration({x:20, y:200}, {x:300, y:200}, 2);

縮小:
UIATarget.localTarget().pinchCloseFromToForDuration({x:20, y:200}, {x:300, y:200}, 2);

8.ドラッグ&クイックスライド:
UIATarget.localTarget().dragFromToForDuration({x:160, y:200}, {x:160, y:400}, 1);



UIATarget.localTarget().flickFromTo({x:160, y:200}, {x:160, y:400});

9.テキスト・ボックスの内容を入力します.
var recipeName = "Unusually Long Name for a Recipe";

UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0].setValue(recipeName);

10.tabBarでナビゲート
var tabBar = UIATarget.localTarget().frontMostApp().mainWindow().tabBar();



 var selectedTabName = tabBar.selectedButton().name();



 if (selectedTabName != "Unit Conversion") { 



tabBar.buttons()["Unit Conversion"].tap();



}

11.tableview「Turtle Pie.」という名前にスクロール先頭の要素:
nameファジイクエリーコントロール、firstWithPredicate(「name beginswith‘xxx’)、nameによる完全一致、firstWithName(「xxxx」)/key値による一致、firstWithValueForKey(value,key):
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].scrollToElementWithPredicate("name beginswith ‘Turtle Pie’");

予測機能を使用しない:scrollToElementWithNameとscrollToElementWithValueForKey
12.増加時間制御:
//



UIATarget.localTarget().pushTimeout(2);



//



// 



UIATarget.localTarget().popTimeout();

delay方式を採用する方法もあります.
UIATarget.localTarget().delay(2);

2つの方法の違いは、タイムスライス内では、1つ目の方法は、スタックとスタックの間のスクリプトタスクを実行することを試み続け、実行可能になると実行され、タイムスライスの後に実行されるとは限らないが、2つ目の方法は、タイムスライスの後にスクリプトタスクを実行することである.
13.ボタンクリック:
UIATarget.localTarget().frontMostApp().mainWindow().buttons()["xxxxx"].tap();

14スクリーンショット機能は、シミュレータがスクリーンショット機能を使用できることを証明しています.
UIATarget.localTarget().captureScreenWithName("SS001-2_AddedIngredient");

15.検証結果:
var cell = UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells().firstWithPredicate("name beginswith ‘Tarte’");



if (cell.isValid()) {



UIALogger.logPass(testName);



}



else {



UIALogger.logFail(testName);



}

16.処理弾枠は、UIATargetのみを指定する.onAlert:
UIATarget.onAlert = function onAlert(alert) {



 var title = alert.name();



UIALogger.logWarning("Alert with title '" + title + "' encountered.");



if (title == "The Alert We Expected") {



alert.buttons()["Continue"].tap();



return true; //alert handled, so bypass the default handler



}



// return false to use the default handler



 return false;



}

FALSE代表に戻って「キャンセル」をクリックし、TRUE代表は「OK」をクリックします.
17.シミュレーションバックグラウンドの時間:
UIATarget.localTarget().deactivateAppForDuration(10);

携帯電話の方向回転:
UIATarget.localTarget().setDeviceOrientation(UIA_DEVICE_ORIENTATION_PORTRAIT);

18.ドラッグ
window.tableViews()[0].scrollDown();




window.tableViews()[0].scrollUp();




window.tableViews()[0].scrollLeft();




window.tableViews()[0].scrollRight();

19.現在の画面のすべてのスペース情報を印刷する
UIATarget.localTarget().logElementTree();

20.ログの記録
UIALogger.logStart(“start”);




UIALogger.logPass(“pass”);




UIALogger.logWarning(“warning”);




UIALogger.logFail(“fail”);




UIALogger.logMessage(“message”);




UIALogger.logError(“error”);




UIALogger.logDebug(“debug”);




UIALogger.logIssue(“issue”);

 
21.九宮格検索入力ボックス

UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0]

22.キーボード操作をシミュレートし、

UIATarget.localTarget().frontMostApp().keyboard().typeString(“aaa
”);
=

23.入力ボックス入力、

UIATarget.localTarget().frontMostApp().mainWindow().tableViews()["Empty list"].cells()[" :"].textFields()[0].setValue(“abcd”);

24.オブジェクト配列の長さを取得し、
UIATarget.localTarget().frontMostApp().mainWindow().buttons().length;

25.テキスト文字列を取得し、
UIATarget.localTarget().frontMostApp().mainWindow().scrollViews()[0].staticTexts()[0].value();

26.現在の要素のビューツリーを印刷します.
.logElementTree();

27.フィルタボックスのスクロール、
UIATarget.localTarget().frontMostApp().mainWindow().pickers()[0].wheels()[0].dragInsideWithOptions({startOffset:{x:0.38, y:0.66}, endOffset:{x:0.38, y:0.12}, duration:1.6});