AutoMate alternatives and similar libraries
Based on the "UI Testing" category.
Alternatively, view AutoMate alternatives based on common mentions on social networks and blogs.
-
Cucumber
A home for issues that are common to multiple cucumber repositories -
Bluepill
Bluepill is a reliable iOS testing tool that runs UI tests using multiple simulators on a single machine -
UI Testing Cheat Sheet
How do I test this with UI Testing? -
SwiftMonkey
A framework for doing randomised UI testing of iOS apps -
ViewInspector
Runtime introspection and unit testing of SwiftUI views -
TouchVisualizer
Lightweight touch visualization library in Swift. A single line of code and visualize your touches! -
robotframework-appiumlibrary
AppiumLibrary is an appium testing library for RobotFramework -
ios-driver
Selenium server to test native, hybrid and web apps on IOS. Join us on IRC #ios-driver on freenode -
LayoutTest-iOS
Write unit tests which test the layout of a view in multiple configurations -
appium
Appium is an open source test automation framework for use with native and hybrid mobile apps. -
UITestHelper
UITest helper library for creating readable and maintainable tests -
UI tests without UI Testing experiment
Testing the UI without UI Testing, a Swift experiment. -
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.
Appwrite - The Open Source Firebase alternative introduces iOS support
* 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.