Android Studioを使ってUI Automator自動化テストを実行します.
5170 ワード
要約
最近インターネットでUAutomator 2.0のバージョンを見ましたが、使うフレームは全部変わったようですので、今日は暇を見つけて試してみました.
We’re please ed to announce the release of UICAutomator 2.0!This version is a significant udate from the previous release.Most importly、UI Automators is now based on Android Instrumenation and you can build and run tests with the'.gradlew connectedCheck command mand.mand.command mand.
大体の意味はUAutomart 2.0に基づいた枠組みがandroidのinstrument ationの枠組みに変わったということです.そして、gradleで配置することができます.実際には、UiAutomatorの枠組みをなぜinstructionに変えたのかはよく分かりませんが、とりあえず、大体の問題を答える環境を試してみましょう.
私たちはAndroid Studioを通してUiAutomatorの配置を試してみましょう.
UiAutomart 2.0のjarカバンは以前のSDK/plotforms/android-19/下ではありません.今はこうします.は、Android SDK ManagerのAndroid Support Repository項により をインストールします.ダウンロードされたjarパッケージのパスは/extras/android/m 2 repository です.新規Androidプロジェクトを作成し、簡単なアプリケーション を作成します..build.gradleに依存項目を設定します. を新規作成します.
最近インターネットでUAutomator 2.0のバージョンを見ましたが、使うフレームは全部変わったようですので、今日は暇を見つけて試してみました.
We’re please ed to announce the release of UICAutomator 2.0!This version is a significant udate from the previous release.Most importly、UI Automators is now based on Android Instrumenation and you can build and run tests with the'.gradlew connectedCheck command mand.mand.command mand.
大体の意味はUAutomart 2.0に基づいた枠組みがandroidのinstrument ationの枠組みに変わったということです.そして、gradleで配置することができます.実際には、UiAutomatorの枠組みをなぜinstructionに変えたのかはよく分かりませんが、とりあえず、大体の問題を答える環境を試してみましょう.
私たちはAndroid Studioを通してUiAutomatorの配置を試してみましょう.
UiAutomart 2.0のjarカバンは以前のSDK/plotforms/android-19/下ではありません.今はこうします.
dependencies {
androidTestCompile 'com.android.support.test:runner:0.3'
// Set this dependency to use JUnit 4 rules
androidTestCompile 'com.android.support.test:rules:0.3'
// Set this dependency to build and run Espresso tests
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2'
// Set this dependency to build and run UI Automator tests
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}
はAndroid Junnit RunnerをデフォルトとしたtestInstructionation Runner android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
を設置して、あなた自身のテストコードを作成します.android Testディレクトリの下に試験クラス/**
* Created by cvtpc on 2015/9/14.
*/
public class LoginTest extends InstrumentationTestCase {
protected UiDevice device = null;
protected String appName = "magicCard";
public void runApp(String appName) throws UiObjectNotFoundException, RemoteException {
device = UiDevice.getInstance(getInstrumentation());
device.pressHome();
device.waitForWindowUpdate("", 2000);
UiObject2 allAppsButton = device.findObject(By.desc("Apps"));
allAppsButton.click();
device.waitForWindowUpdate("", 2000);
UiScrollable appViews = new UiScrollable(new UiSelector().scrollable(true));
appViews.setAsHorizontalList();
UiObject settingsApp = appViews.getChildByText(new UiSelector().className(TextView.class.getName()), appName);
settingsApp.clickAndWaitForNewWindow();
assertTrue("Unable to detect app", settingsApp != null);
}
@Override
public void setUp() throws RemoteException, UiObjectNotFoundException {
this.runApp(appName);
}
@Override
public void tearDown() throws RemoteException, UiObjectNotFoundException {
//Empty for the moment
}
public void testUS1() {
UiObject2 usernameLabel = device.findObject(By.clazz(TextView.class.getName()).text("Username"));
assertTrue("Username label not found", usernameLabel != null);
}
}
Instruumentベースの便利さは、remote debugを必要としないようにデバッグすることです.そしてパラメータ化なども便利になりました.