Perfecto Mobile

A cloud-based test automation platform for mobile and web applications, providing real device testing.
Perfecto Mobile

1) Introduction

Perfecto Mobile is a leading cloud-based mobile testing platform that enables teams to automate testing for mobile applications, ensuring optimal performance, functionality, and user experience. Founded in 2011, Perfecto Mobile has carved a niche for itself by offering a robust set of tools that cater to both manual and automated testing needs for mobile applications.

Perfecto Mobile provides a comprehensive testing solution that covers a wide range of devices and operating systems. By leveraging cloud-based infrastructure, users can access real devices remotely, eliminating the need for extensive in-house hardware. This flexibility allows teams to conduct thorough testing in a fraction of the time it would typically take, making it easier to identify and resolve issues before deployment. With its extensive capabilities, Perfecto Mobile has become a go-to tool for organizations aiming to deliver high-quality mobile applications.

2) Features

Perfecto Mobile offers a rich set of features designed to streamline the mobile testing process. Key features include:

a) Real Device Cloud:
Perfecto Mobile provides access to a vast cloud-based library of real devices across various manufacturers, operating systems, and screen sizes. This allows teams to test their applications on actual devices, ensuring that they behave as expected in real-world scenarios.

b) Automated Testing:
With support for popular automation frameworks such as Appium, Selenium, and Espresso, Perfecto Mobile enables teams to automate functional, performance, and regression testing. This automation capability accelerates testing cycles and enhances the overall quality of applications.

c) Manual Testing Support:
In addition to automated testing, Perfecto Mobile allows for manual testing on real devices. This feature is useful for exploratory testing and scenarios where human interaction is needed to evaluate user experience.

d) Continuous Testing and CI/CD Integration:
Perfecto Mobile integrates seamlessly with popular CI/CD tools such as Jenkins, Azure DevOps, and CircleCI. This integration facilitates continuous testing, allowing teams to run automated tests as part of their build process and receive immediate feedback on application quality.

e) Smart Reporting and Analytics:
Perfecto Mobile offers advanced reporting capabilities, providing detailed insights into test results, execution history, and device performance. Teams can leverage these insights to identify bottlenecks, track trends, and make data-driven decisions to enhance application quality.

f) Support for Different Testing Types:
The platform supports various testing types, including functional testing, performance testing, security testing, and network conditions simulation. This comprehensive approach ensures that applications are thoroughly vetted under various scenarios.

g) Geo-Location Testing:
Perfecto Mobile enables teams to simulate user interactions from different geographic locations. This feature is crucial for testing location-based services and ensuring that applications perform consistently across regions.

h) Integration with Monitoring Tools:
Perfecto Mobile allows integration with performance monitoring tools, enabling teams to analyze app performance metrics in conjunction with testing results. This holistic view helps identify performance issues that may impact user experience.

3) Pros

Perfecto Mobile has several advantages that make it an appealing choice for mobile testing automation:

a) Access to Real Devices:
The cloud-based real device access eliminates the need for physical hardware, making it easy for teams to test on a wide range of devices and OS versions without incurring significant infrastructure costs.

b) Comprehensive Testing Capabilities:
With support for both automated and manual testing, as well as various types of testing (functional, performance, security), Perfecto Mobile provides a one-stop solution for mobile application testing.

c) Continuous Testing:
The integration with CI/CD tools enables teams to adopt continuous testing practices, ensuring that mobile applications are tested thoroughly and frequently throughout the development lifecycle.

d) User-Friendly Interface:
Perfecto Mobile's intuitive user interface simplifies the testing process, allowing users to easily navigate through devices, tests, and results. This ease of use contributes to faster onboarding for new team members.

e) Strong Community and Support:
As a well-established platform, Perfecto Mobile has a robust community and customer support team. Users can access documentation, forums, and dedicated support channels to resolve issues quickly.

4) Cons

Despite its many strengths, Perfecto Mobile does have some drawbacks:

a) Pricing Structure:
Perfecto Mobile's pricing can be a barrier for smaller teams or startups. While it offers extensive features, the cost may not be justifiable for organizations with limited budgets.

b) Complexity in Advanced Features:
While the platform is user-friendly for basic tasks, some advanced features may require a learning curve. Teams may need to invest time in training to fully leverage the platform’s capabilities.

c) Dependency on Internet Connectivity:
As a cloud-based solution, Perfecto Mobile requires a stable internet connection. Any disruptions in connectivity can impact testing activities and results.

d) Device Availability Issues:
While Perfecto Mobile has a vast library of devices, there may be times when specific devices are in high demand and unavailable for testing. This can lead to delays in testing schedules.

Using Perfecto Mobile for mobile testing automation is straightforward. Below is an example illustrating how to set up and run a simple test using the Perfecto Mobile platform.

Example: Testing a Mobile Login Functionality

Imagine you want to test the login functionality of a mobile application. Here’s how you can automate this process using Perfecto Mobile and Appium.

  1. Review Results:
    After running the test, review the console output to see whether the assertions passed or failed. If the test passed, you’ll receive the expected welcome message, indicating that the login functionality works as intended.

Run Your Test:
To execute the test, run the following command in your terminal:

node loginTest.js

Write Your Test Script:
Create a file named loginTest.js and add the following code:

const wd = require('wd');
const assert = require('assert');

const USERNAME = 'YOUR_PERFECTO_USERNAME'; // Your Perfecto username
const PASSWORD = 'YOUR_PERFECTO_PASSWORD'; // Your Perfecto password
const DEVICE_ID = 'YOUR_DEVICE_ID'; // ID of the device you want to test on

const driver = wd.promiseChainRemote('YOUR_PERFECTO_CLOUD_URL'); // e.g., "YOUR_ACCOUNT.perfectomobile.com"

// Desired capabilities for the mobile application
const desiredCaps = {
    'platformName': 'Android', // or 'iOS'
    'deviceName': DEVICE_ID,
    'app': 'YOUR_APPLICATION_ID', // ID of the application to test
    'automationName': 'Appium'
};

// Start the session
driver.init(desiredCaps)
    .then(() => driver.elementByAccessibilityId('usernameInput')) // Find username input
    .then(el => el.sendKeys('test_user')) // Enter username
    .then(() => driver.elementByAccessibilityId('passwordInput')) // Find password input
    .then(el => el.sendKeys('password123')) // Enter password
    .then(() => driver.elementByAccessibilityId('loginButton')) // Find login button
    .then(el => el.click()) // Click the login button
    .then(() => driver.elementByAccessibilityId('welcomeMessage')) // Wait for welcome message
    .then(el => el.text()) // Get the text of the welcome message
    .then(text => {
        assert.strictEqual(text, 'Welcome, test_user'); // Assert that the welcome message is correct
    })
    .finally(() => driver.quit()) // End the session
    .catch(err => console.error(err));

Set Up Your Environment:
Before writing tests, ensure you have the necessary libraries installed. This example uses Node.js with the Appium client.

npm install appium appium-webdriver io.appium.appium

Sample Code Explanation:

  • The code begins by importing the necessary libraries and defining your Perfecto Mobile credentials and device ID.
  • Desired capabilities are set up to specify the target platform and application for testing.
  • The test script automates the login process by locating input fields, entering credentials, clicking the login button, and asserting the presence of a welcome message.
  • Finally, the session is terminated, and any errors encountered during execution are logged.

Useful Links:

6) Pricing

Perfecto Mobile operates on a subscription-based pricing model, with different tiers based on the number of users, devices, and features required. While the specific pricing details may vary, it typically includes the following options:

  • Basic Plan: Suitable for small teams or startups, this plan includes access to essential testing features and a limited number of devices.
  • Pro Plan: Designed for growing teams, the Pro Plan offers advanced testing capabilities, more extensive device access, and integrations with CI/CD tools.
  • Enterprise Plan: Tailored for large organizations, this plan provides comprehensive testing solutions, including custom integrations, dedicated support, and extensive device libraries.

To obtain accurate pricing information tailored to your organization’s needs, it is recommended to contact Perfecto Mobile’s sales team directly for a personalized quote.

Perfecto Mobile is recommended for a variety of users and organizations, particularly:

  • Mobile App Development Teams: Teams developing mobile applications can benefit from Perfecto Mobile’s extensive testing capabilities, ensuring that their apps function seamlessly across various devices and OS versions.
  • QA Engineers and Testers:

Quality assurance professionals seeking a comprehensive solution for mobile testing will find Perfecto Mobile’s features invaluable for automating testing processes and improving application quality.

  • Agile Development Teams: Agile teams can leverage Perfecto Mobile’s integration with CI/CD pipelines to incorporate continuous testing practices, ensuring that applications are thoroughly vetted throughout the development lifecycle.
  • Enterprises with High-Volume Testing Needs: Organizations with extensive mobile application portfolios or high user traffic can benefit from Perfecto Mobile’s real device access and comprehensive testing capabilities.
  • Cross-Functional Teams: Perfecto Mobile’s user-friendly interface and extensive documentation make it suitable for cross-functional teams, allowing collaboration between developers, testers, and product managers.

In conclusion, Perfecto Mobile is a powerful and versatile tool for mobile testing automation. Its cloud-based real device access, robust feature set, and seamless integration capabilities make it an excellent choice for organizations looking to deliver high-quality mobile applications. Whether you are a startup, an established enterprise, or an agile team, Perfecto Mobile provides the tools needed to ensure your mobile applications perform optimally in the hands of users.

About the author
Irfan Ahmad

Irfan Ahmad

Software Quality Leader | Helping software teams to deliver with speed, security and scale.

stay updated with software testing tech, tools and trends.

CheckOps | #1 directory of testing tech. and tools

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to CheckOps | #1 directory of testing tech. and tools.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.