AutoMate alternatives and similar libraries
Based on the "UI Testing" category.
Alternatively, view AutoMate alternatives based on common mentions on social networks and blogs.
-
Bluepill
Bluepill is a reliable iOS testing tool that runs UI tests using multiple simulators on a single machine -
TouchVisualizer
DISCONTINUED. Lightweight touch visualization library in Swift. A single line of code and visualize your touches! -
ios-driver
Selenium server to test native, hybrid and web apps on IOS. Join us on IRC #ios-driver on freenode -
appium
Appium is an open source test automation framework for use with native and hybrid mobile apps. -
UIAutomation
JavaScript library to write test scripts that exercise your app’s user interface elements while the app runs on a connected device. -
Flawless App
tool for visual quality check of mobile app in a real-time. It compares initial design with the actual implementation right inside iOS simulator.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of AutoMate or a related project?
Popular Comparisons
README
AutoMate • AppBuddy • Templates • ModelGenie
AutoMate
AutoMate
is a Swift framework containing a set of helpful XCTest
extensions for writing UI automation tests.
It provides strongly typed, extensible wrapper around launch arguments and environment variables, which can be used for language, locale and keyboard type configuration on the device.
With the AutoMate-AppBuddy
it can also disable animations in the application and manage events, reminders and contacts.
[AutoMate](assets/AutoMate.gif)
Installation
There are three convinient ways to install AutoMate:
using CocoaPods with Podfile:
pod 'AutoMate'
using Carthage and add a line to
Cartfile.private
:github "PGSSoft/AutoMate"
Cartfile.private
should be used because AutoMate framework will be used by UI Tests target only not by the tested application.using Swift Package Manager, either via Xcode or in
Package.swift
:.package(url: "https://github.com/PGSSoft/AutoMate", from: "1.8.0"),
Usage
Full documentation is available at https://pgssoft.github.io/AutoMate/.
- Create a new UI test case class.
Import
AutoMate
framework to UI tests files:import AutoMate
Use
TestLauncher
in thesetup()
method to configure application settings and launch the application:let app = XCUIApplication() TestLauncher(options: [ SystemLanguages([.English, .German]), SystemLocale(language: .English, country: .Canada), SoftwareKeyboards([.EnglishCanada, .GermanGermany]) ]).configure(app).launch()
Use AutoMate's extensions in your tests. For example:
func testSomething() { let app = XCUIApplication() let button = app.button.element // helper for waiting until element is visible waitForVisibleElement(button, timeout: 20) button.tap() // isVisible - helper to check that element both exists and is hittable XCTAssertFalse(button.isVisible) }
Features (or ToDo)
- [x] Set keyboards
- [x] Set locale
- [x] Set languages
- [x] Custom arguments
- [x] Custom keyboards, locales and languages
- [x]
XCTest
extensions - [x] Added CoreData launch arguments
- [x] Disable UIView animations (with
AutoMate-AppBuddy
) - [x] Strong-typed helpers: locators, page object templates (with
AutoMate-Templates
) - [x] Base XCTestCase template (with
AutoMate-Templates
) - [x] Most permissions alerts (like:
LocationWhenInUseAlert
,CalendarAlert
,PhotosAlert
) (withAutoMate-ModelGenie
) - [x] Managing events, reminders and contacts (with
AutoMate-AppBuddy
) - [x] Companion library for the application (
AutoMate-AppBuddy
) - [x] Improve launch options type safety
- [x] Smart coordinates
- [x] Check if application is running in UI test environment (with
AutoMate-AppBuddy
) - [ ] Stubbing network requests
- [ ] Stubbing contacts, events and reminders
- [ ] Taking screenshots
- [ ] Clearing application data
- [ ] Stubbing notifications
Example application
Repository contains example application under AutoMateExample
directory.
Structure of the application is simple, but the project contains extensive suite of UI tests to showcase capabilities of the library.
Development
Full documentation is available at https://pgssoft.github.io/AutoMate/.
If you want to provide your custom launch argument or launch environment you have to implement LaunchOption
protocol or one of its extensions, such as LaunchArgumentWithSingleValue
:
enum CustomParameter: String, LaunchArgumentWithSingleValue, LaunchArgumentValue {
var key: String {
return "AppParameter"
}
case value1
case value2
}
Then, you can pass it to the TestBuilder
:
let launcher = TestLauncher(options: [
CustomParameter.value1
])
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/PGSSoft/AutoMate.
License
The project is available as open source under the terms of the MIT License.
About
The project maintained by software development agency PGS Software. See our other open-source projects or contact us to develop your product.
Follow us
*Note that all licence references and agreements mentioned in the AutoMate README section above
are relevant to that project's source code only.