Mobile Center Architecture
Mobile Center is a standalone server that provides mobile device access to different test applications. Mobile Center supports a distributed architecture where different test clients can all interact with the same Mobile Center server instance.
In the diagram below, you can see the individual components of Mobile Center and the relationship between them.
The Mobile Center environment consists of the following components:
|Mobile Center Server||
This is a single web server that:
When you install the Mobile Center server, both the server and a connector are installed. The connector is designed as a lightweight piece of software for connecting devices to Mobile Center that can also be installed as a standalone component. You can install the connector on multiple machines in distributed locations, or on your testing-tool machine. The connector can be installed on a Windows, Linux, or Mac machine. For more details, see Install the connector on a Windows machine, Install the connector on a Linux machine, or Install the connector on a Mac Machine.
The connector manages the physical USB connection to the device, and the logical state machine on top of it. It maps the ports to connect to the device over USB and manages the remote screen viewer stream from the device to the tool. It receives lifecycle events from the USB library such as device connected or device disconnected, agent finished installing, and agent started. It transfers these events to the Mobile Center server for adding the device to the pool. The connector is also responsible for installing and uninstalling apps on the device.
Test devices accessed via connectors
These are the devices (smartphones/tablets) on which the tests are run. The following applications are copied to the test devices:
NV Test Manager
Network Virtualization is an optional component for testing apps running under different network conditions. Network virtualization emulates real-world conditions by imposing impairments and constraints in your testing environment during the software testing process, thereby improving software testing accuracy.
Read more about deployment options in Choosing the Right Mobile Center Deployment Approach for your Organization.
The connector is a lightweight piece of software that is installed on the Mobile Center server machine as part of the installation process, and is automatically configured to work with the local server. The connector can also be installed as a standalone component on a different machine, such as that of a developer or testing engineer. Usually, a combination of the following scenarios is used:
|Central device hub||A central lab of devices connected to the connector on the Mobile Center server machine.||Efficiency. Avoids duplication of tasks for setting up and managing devices.|
|Distributed device hubs||Connectors installed on machines in multiple locations (on-site/off-site/globally dispersed).||
Scalable. New labs can be added as needed.
|Bring your own device||Connector installed on a developer's/testing engineer's machine.||
Supports hands-on testing of the app on the device.
In the diagram below you can see a more drilled-down view, with a focus on the physical deployment of a Mobile Center server. The different protocols and the ports used are also shown.
Note: For Mac Connectors, the reverse proxy component, Nginx, is not included in the Mobile Center deployment. To allow communication, you must open the following range of ports: 5900-5999 (ingress). You can, however, manually install the reverse proxy component for a Mac.
Client tools and Mobile Center server connectivity
Common client tools are UFT, LoadRunner, Sprinter, BPM, LeanFT, and Appium scripts.
Testing-tool clients connect to the Mobile Center server for the following:
- A user interface (UI) for managing devices and uploading apps over HTTP/HTTPS.
- API (JSON commands) for tests and management, sent over WebSocket (WS).
- The remote screen viewer client.
Mobile Center server and connector connectivity
The connector establishes a WebSocket (WS) connection with the Mobile Center server, allowing two-way asynchronous communication from the connector to the server, and vice versa, on the same socket. API calls and files are passed over WS.
Testing tool, connector, and device connectivity
The connector maps a port forward to the mobile device for communication of API traffic using mobile libraries (Android Debug Bridge (ADB), Mobile Device Library). It also opens a Windows Sockets connection to the agent. The connector maps a port forward for the remote screen viewer. The connector exposes the remote screen viewer directly to the tool for minimum latency when operating the device remotely. The Mobile Center Agent on the device listens on a Windows Sockets port.
Mobile Center allows you to work with the cloud-based Amazon Device Farm to run tests on a large variety of devices.
Note: AWS Device Farm integration is not supported for iOS due to ADF iOS connection restrictions. For a list of all the limitations, see the Readme.
In the diagram below you can see a how the Mobile Center connector interfaces with the AWS Device Farm, with an off-premises AWS server.
Mobile Center is also available from the AWS marketplace as an image that you can use on demand or continuously.
Since Mobile Center in AWS is accessible from the Internet, it can be reached from:
1. Testing tools running on-premises
2. Connectors running on-premises
3. Cloud connectors running in AWS, manipulating devices from the Amazon Device Farm with on-demand or ad-hoc mobile automated replay.
Mobile Center can manage devices from all of these locations.
In the following diagram, you can see a how the Mobile Center connector interfaces with the AWS Device Farm, with an on-premises Mobile Center server.
For details on how to set up Mobile Center for this integration, see AWS Device Farm integration.