standard automated testing framework provided by mobile platform providers (Translator Note: iOS UIAutomation and Android Instrumentation and Uiautomator). This way, we don't need to compile any appium-related or third-party code or framework into your app. This means "You're testing the app you're going to publish ." We use the framework provided by the mobile platform vendor as follows:
IOS: Apple's UIAutomation
Android 4.2+: Google Co
. Default valuefalse
trueOrfalse
noSign
Skip the steps to check and debug your app. Can only be used when using Uiautomator, using selendroid is not possible. Default valuefalse
trueOrfalse
ignoreUnimportantViews
Call the Uiautomator function setCompressedLayoutHierarchy() . Because the accessibility command performs faster when some elements are ignored, this
tool that allows JUnit 4 to run directly on Android devices.AppiumAppium is an open-source, cross-platform, automated testing tool for testing native and lightweight mobile applications that support IOS, Android and Firefoxos platforms. Appium drives Apple's UIAutomation library and Android's uiautomator framework, using Selenium's Webdriver JSON protocol.Calabash-androidCalabash-android is a functional automated testing framework for Android based o
IntroductionFound a training on Android testing, English, very comprehensive.Android Testing training:http://www.vogella.com/training/android/androidtesting.htmlBody1.AppiumAppium is an open-source, cross-platform, automated testing tool for testing native and lightweight mobile applications that support IOS, Android and Firefoxos platforms. Appium drives Apple's UIAutomation library and Android's uiautomator framework, using Selenium's Webdriver JSON
For example, if there are many test methods available for the Android,google itself. Along the way, Google offers monkey, Monkeyrunner, Instrumentationtest, Robotium (variant of instrumentation Test, tripartite), Uiautomator. Where UI Automator is already a very powerful automated method for simulating human behavior. The author of the department from the birth of Android to follow the pace of Google frequently change a variety of testing
AndroidCommand command) throws JSONException { final Hashtable
The code above is easy to process. First, it gets the parameters in the command, and then initializes a private timeout variable. If the parameter does not contain time, the default time is used. Then call the waitforidle () method in the uidevice object of uiautomator. This method does not perform any other operations on the interface within the timeout time and is idle. This e
IntroducedAppium is an open-source, cross-platform testing framework that can be used to test native and hybrid mobile applications. Appium supports iOS, Android and Firefoxos platform testing. Appium uses Webdriver's JSON wire protocol to drive the UIAutomation Library of the Apple system and the Uiautomator framework of the Android system.Characteristics:
Cross-architecture
Cross-device
Cross-language
Cross App
Do not rely o
Appium interface Running Process:1. Start an HTTP server: 127.0.0.1:47232. Initialize the test Code Setup () to create a Session object on the HTTP server3. Start calling ADB, locate the device on the connection, set the device ID4. Wait for the device to be ready to respond to commands5. Turn on Logcat log monitoring6. Save the generated apk attribute information file Strings.json to the device/data/local/tmp directory7, read the APK installation situation8, port mapping, sent to Appium httpser
. Use the JDK version, ADB location, apk info. This section of the log shows the process of appium finding a phone. This paragraph is to start the log monitoring, and then the mobile phone operation, such as querying the phone version, delete the previous automated legacy information, the need to upload the program to the mobile phone, install the required setting and unlock programs.Second, the control phase Starting with this paragraph is the process of starting the app, shutting down a
Supported platforms1. View Appium v1.7 version official documentationSupported platformsAppium supports app automation across a variety of platforms, like IOS, Android, and Windows. Each platform was supported by one or more "drivers", which know how to automate that particular platform. Choose a driver below for specific information on how this driver works and how to set it up:
Ios
The Xcuitest Driver
(DEPRECATED) The UIAutomation Driver
Android
(BETA) The Espresso Dri
Android Test (eight): UI Automator Automated TestingRelease date December 20, 2017 bug MasterOriginal: https://developer.android.com/training/testing/ui-testing/uiautomator-testing.htmlUser interface (UI) tests that involve user interaction across multiple applications can validate an application's behavior when user traffic crosses other applications or enters the system UI. An example of this user process is a messaging application that allows the
ways.A method that inherits from the Webdriver, which means that the control can be positioned by these 3 features
Find by "class" (i.e, UI component Type,andorid can be Android.widget.TextView)
Find by "XPath" (i.e), an abstract representation of a path to an element, with certain constraints, due to the incomplete XPath library of Appium, This is not very recommended)
Find by "id" (The resource ID of the control on Android)
The method defined in the mobile JSON Wire Prot
beginning to use unit tests in an existing project, except for non-test classes, remove them from the exclusion list as soon as the test code can overwrite the classes. This rule can guarantee the coverage of the new code. Depending on the coverage report, you can discard the build using the jacoco-coverage plugin.Fail early: Ensure code coverage is checked in the CI environment, and if the code coverage is not high enough, abandon the build as soon as possible.6. Functional (UI) testingThat's
consists of two parts: the front part of the slash delimiter "Com.example.android.notepad" is the package name of the Notepad application and is globally unique on the target machine; The next part of the delimiter is the activity's name, which is not shown here, and the full noteslist activity name should be "Com.example.android.notepad.NotesList". We can put the mouse in the name of the control to let hierarchyviewer the activity display complete as follows:Figure 2-2-3 The full activity name
valuefalse
trueOrfalse
noSign
Skip the steps to check and debug your app. Can only be used when using Uiautomator, using selendroid is not possible. Default valuefalse
trueOrfalse
ignoreUnimportantViews
Call the Uiautomator function setCompressedLayoutHierarchy() . Because the accessibility command performs faster when some elements are ignored, this keyword
10:57 svcdrwxr-xr-x 6 xuxu staff 204B 4 2 10:57 Uiautomatordrwxr-xr-x 3 Xuxu staff 102B 4 2 10:57 WMAre there any familiar commands? Am, PM, uiautomator ...Here are some common adb shell commands (where PM, am commands are large and use level four headings)PmPackage Manager, which can be used to get some application information installed on Android devicesPM Source Pm.java, directly run adb shell Pm can get help information to this comman
specific framework to implement and run your tests.(3) When it comes to testing automation APIs, a mobile testing framework should not do things like "reinvent the wheel."(4) A mobile test automation framework should be open source, both mentally, in fact, and nominally!1.3 AppiumDesignSo how does the architecture of the Appium Project meet the requirements of these concepts? In order to achieve the requirements, we are using the standard automated testing framework provided by mobile platform
Uiautomator;
Sauce Labs supports its own open-source framework appium;
The Google Cloud test lab supports espresso,robotium and Robo test;
AWS Device Farm also supports many frameworks, including iOS-enabled Calabash,appium,uiautomation and Xctest, and Android-enabled Calabash,appium,junit,espresso. Robotium and Uiautomator.
Xamarin test cloud,testdroid and sauce labs have their
Location by IDThe ID on Android is Resource-idDriver.findelementbyid ("Com.tencent.mm:id/do")Orwebelement element = Driver.findelement (By.id ("com.tencent.mm:id/do"));Navigate by nameGeneral text is nameWebelement el = driver.findelement (By.name ("nickname"));Positioning via classnameClassName is the class information inside the UiautomatorWebelement el = driver.findelement (By.classname ("Android.widget.TextView"));Positioning via XPathXPath locates elements in Appium, performs slowly, is les
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.