This document provides a guide to running Web Platform Tests on Android.
For general instruction for running the Web Platform Tests, you should read Running Web Platform Tests with run_wpt_tests.py.
Please follow the steps at Checking out and building Chromium for Android to setup your local environment. Once that is done, you need to build one of the following targets:
autoninja -C out/Default chrome_public_wpt # For testing with Chrome Android autoninja -C out/Default trichrome_webview_wpt_64 # For testing with WebView
Once you have Chrome Android/WebView and chromedriver built, you can launch run_wpt_tests.py to run WPTs. You can either run the tests on an Android emulator or a real Android device.
Note: You can enable Incremental Install for Chrome Android by setting incremental_install = True in your args.gn file.
This will cause the test harness to use the build directory's incremental installation script instead of the default browser APK.
You will need to follow the steps in Using an Android Emulator to be ready to run the Android Emulator. Passing the --avd-config option to run_wpt_tests.py will launch an emulator that will be shut down after running the tests.
The example below runs external/wpt/badging/badge-success.https.html in Chrome Android on Android 13:
third_party/blink/tools/run_wpt_tests.py \ -t Default \ -p clank \ --avd-config=tools/android/avd/proto/android_33_google_apis_x64.textpb \ external/wpt/badging/badge-success.https.html
-t Default: Use the build in //out/Default/-p clank: Runs the tests using Chrome for Android (clank).--avd-config=tools/.../android_33_google_apis_x64.textpb: Runs the tests on Android 13 emulator (Google API 33).To run the example in WebView:
$ third_party/blink/tools/run_wpt_tests.py \ -t Default \ -p android_webview \ --webview-provider out/Default/apks/TrichromeWebView64.apk \ --additional-apk out/Default/apks/TrichromeLibrary64.apk \ --avd-config=tools/android/avd/proto/android_33_google_apis_x64.textpb \ external/wpt/badging/badge-success.https.html
-p webview: Runs the tests using WebView.--webview-provider out/.../TrichromeWebView64.apk: Specify TrichromeWebView64 as WebView APK.--additional-apk out/.../TrichromeLibrary64.apk: Install TrichromeLibrary64 needed for the WebView APK after Android 10 (see WebView Channels).Alternatively, you can launch the emulator yourself and run_wpt_tests.py will detect and connect to the emulator and run WPTs with it. This can save you the time to repeatedly launch the emulator. The commands below show how this works.
$ tools/android/avd/avd.py start \ --avd-config=tools/android/avd/proto/android_33_google_apis_x64.textpb $ third_party/blink/tools/run_wpt_tests.py \ -t Default \ -p clank \ external/wpt/badging/badge-success.https.html
run_wpt_tests.py should be able to work with a real device as long as the device can be found by adb devices. You will need to make sure the ABI matches and these steps are followed.
To test Android-specific behaviors, the android-chrome-13-x64-wpt-android-specific and android-webview-13-x64-wpt-android-specific builders run the tests in android.filter and webview.filter respectively. Developers can add additional tests to the lists when necessary. A resource request might be needed depending on the case. See below for details.
To satisfy different testing requirements, WPT coverage in CQ/CI is partitioned between suites that target different //content embedders:
| Suite Name | Browser Under Test | Harness | Tests Run |
|---|---|---|---|
android_chrome_wpt_tests | chrome_android | run_wpt_tests.py | Tests listed in android.filter. |
android_webview_wpt_tests | android_webview | run_wpt_tests.py | Tests listed in webview.filter. |
Expected failures on Chrome Android or WebView should be added to the default TestExpectations file with the modifier “Android” or “Webview” respectively.
For baselines:
third_party/blink/web_tests/platform/android, and fall back to third_party/blink/web_tests/platform/linux.third_party/blink/web_tests/platform/webview, and fall back to third_party/blink/web_tests/platform/linux.To update baselines:
android-chrome-13-x64-wpt-android-specificandroid-webview-13-x64-wpt-android-specificA resource request would be needed if running the additional tests increases the total test time by more than one minute. If this is the case, developers can use the bot estimator to estimate the bots needed, then follow the steps at go/i-need-hw to get the resources. The tests can be added to the filter file after the resource is deployed.
Please make sure there is no unexpected failures on the related steps before using the bot estimator, as the bot will retry those tests and that will increase the total test time.
For runner bugs and feature requests, please file an issue against Blink>Infra .