Best network practices

This article summarizes Perfecto’s cloud lab requirements and best practices for the Perfecto UI. Perfecto cloud labs use streaming services to give users access to devices from anywhere in the world (similar to Remote Desktop). Streaming services are more sensitive to latency and bandwidth limitations than other types of internet use, such as web browsing. When you interact with a device in your cloud lab, a short delay of 1 to 1.5 seconds is expected. To prevent greater latency, planning is required.

This article covers optimizing your Perfecto UI experience when accessing your cloud located at: <your_cloud>.app.perfectomobile.com

Requirements

Make sure your cloud lab meets the requirements listed in this section.

TCP ports

Your firewall and other security appliances must allow HTTPS access (TCP port 443) and HTTP (TCP port 80) to the cloud.

Bandwidth

For one device, it requires 1.5 megabits per second of bandwidth, per user. For example, if three users connect to the cloud and each opens a single device, the necessary bandwidth would be three devices times the minimum bandwidth.

Example

1 user and 1 device = 1.5 megabits per second of bandwidth usage 

3 users and 1 device each (3 devices total) = 4.5 megabits per second of bandwidth of usage (3x 1.5 megabits = 4.5 megabits)

If a single user opens more than one device, it takes an additional 256 kilobits of bandwidth per additional device, in the same session.

Example

1 user and 1 device =

  • 1.5 megabits per second of bandwidth usage

1 user and 3 devices in the same session =

  • 1.5 megabits of bandwidth for the first device (1x 1.5 megabits = 1.5 megabits)
  • 0.5 megabits of bandwidth for the second and third device (2x 256 kilobits = 512 kilobits OR 0.5 megabits)
  • 1 megabits plus 0.5 megabits = 2 megabits per second total usage

2 users and 2 devices (two separate sessions) =

  • 3 megabits per second of bandwidth usage (2 x 1.5 megabits = 3 megabits)

2 users and 6 devices (two sessions, 3 devices each session) = 4 megabits per second of bandwidth usage

  • 1.5 megabits of bandwidth for the first device of each session (2 x 1.5 megabits = 3 megabits)
  • 0.5 megabits of bandwidth for the additional 4 devices in the sessions (4 x 256 kilobits = 1 megabit)
  • 3 megabits plus 1 megabits = 4 megabits per second total usage 

Important bandwidth considerations

While your site may have enough bandwidth, if many users share the same internet connection as those who need cloud access, this can greatly affect the latency of the video stream. Bandwidth spikes from activities such as large downloads may cause intermittent problems. Many companies throttle bandwidth especially for RTMP video traffic to discourage employees from impacting available bandwidth as well as viewing sites with video, such as YouTube, news, and other content that may not be work-related. Your IT department may not know that you need video streaming to use Perfecto clouds. This can cause your cloud to be treated as unwanted video streaming.

Connectivity

This is a process performed by your Infra/Security teams to allow the Perfecto Lab services to work with your company security. This involves rules and policies put in place to allow connectivity. Perfecto uses the streaming services listed in the following table to deliver the content of a mobile device or desktop VM from the cloud lab to your workstation. These streaming services need to be allowed.

Note

With on-premise HSS/cradles in the latest Perfecto UI, Appium initializes a session. This requires that an Appium connection be opened through a separate port for each cradle. For example, if the HSS is connected to 10 cradles, you would need to configure ports 11601 to 11610.

Streaming Servers (STS) list

Data center Mobile devices Desktop web devices
Australia
UK and Germany
US and Canada
Note
  • These streaming services use port 443, not port 1935. These are not flash-enabled services.
  • Replace <cloudname> with the actual cloud name you use. For example: mobilecloud.web.us.perfectomobile.com.

Video streaming

Video playback with Perfecto's most advanced video solution (WebRTC) is enabled by default. It requires that port 443 be enabled for the following IP addresses:

Device location

DNS

Static IP

US or Canada

ams-01.perfectomobile.com

turn-01.perfectomobile.com

wowza-01.perfectomobile.com

3.232.106.230 (port 443)

52.7.145.118 (port 443)

34.199.7.232 (ports 443 and 1935)

Europe (Frankfurt)

ams-12.perfectomobile.com

turn-12.perfectomobile.com

wowza-12.perfectomobile.com

3.75.33.227 (port 443)

3.121.1.172 (port 443)

18.195.140.116 (ports 443 and 1935)

Sydney

ams-24.perfectomobile.com

turn-24.perfectomobile.com

wowza-24.perfectomobile.com

13.237.97.147 (port 443)

52.65.177.125 (port 443)

13.210.211.0 (port 443 and 1935)

If you still work with the legacy Perfecto UI, you need to connect the Wowza server on the IPs listed in the table and with one of the following ports:

  • 1935 for the RTMP protocol

  • 443 for the RTMPS protocol

If, for any reason, this video solution is not available, Perfecto falls back to a secondary solution.

Hybrid cloud customers: For hybrid clouds, you need to open access from the handset server (HSS) to a specific IP address on port 1935. Work with Perfecto Support to find out which IP address to use.

Reasons for slowness, latency, delays

Streaming services can be slowed down by network appliances and rules or policies. This causes unpleasant delays, sometimes upward of 10 seconds or more, for manual testing.

Strategies and practices to improve connectivity

Here are some suggestions on how to improve your connectivity to the cloud lab:

  • Isolate project teams in each location to their own VLANs. This allows bandwidth to be more easily controlled and measured.
  • Have your IT team assign a higher Quality of Service (QoS) priority to traffic from the cloud lab services, to your project team's VLANs.
  • Ensure that your IT department is not throttling bandwidth for the project team.
  • Consider a separate internet connection for the project teams that will not be impacted by other users. Some customers use dedicated gateways for their testing team on an isolated network as a workaround.

Problems and solutions

This section describes common problems and their solutions.

Problem 1 | Devices are slow with high response times during manual testing

This happens when the streaming servers are being blocked, redirected, or are under traffic interception/scanning. The root causes can be blocked ports, SSL interception, deep packet scanning, and IDS/IPS.

If you see a delay between a manual click (such as on a number button in the calculator) during manual testing, and a response of:

  • Less than 2 seconds: Good performance. Remember, this device may be thousands of miles away. Do not expect performance to be the same as though it's sitting in your hand. Nothing in this article will help you improve interactive latency below 2 seconds.
  • 2 to 3 seconds: Fair performance. You will notice that it is a remote device, but you are able to get your work done. It may be possible to improve the performance slightly by applying best practices found in this article.
  • 3 to 4 seconds: Less than optimal. Waiting to see responses is beginning to impact your productivity. Definitely have your IT team look at this article.
  • Greater than 4 seconds: Unacceptable performance. Your network configuration is having a significant impact on your use of the Perfecto platform. Your IT team must provide a solution.

Solution #1: Allow connectivity to the Streaming Services

The best approach is to place the Perfecto domain on your allow list. This can be done by your Infra and Security teams by allowing *.perfectomobile.com . This allows for minimal changes on the customer side, as we improve or add capacity to our services.

Solution #2: Allow STS traffic without extra scanning

This solution ties in with Solution #1. Add a rule to allow the *.perfectomobile.com traffic, to bypass SSL interception, deep packet inspection, and IDS/IPS. Removing these additional security layers will help improve overall manual cloud testing.

Solution #3: Verify Solution #1 is carried across your VPNs

Many customers use a VPN to access the cloud labs. This can be in the form of Citrix or other related VPN applications. VPNs need to be explicitly configured by your IT Team to allow Solution #1 (allow-listing of the *.perfectomobile.com domain). If this is not done, you will not resolve the issue at hand.

Solution #4: Verify Solution #1 is carried across your VDIs/Virtual Desktop Machines

Many customers and testing companies now implement virtual desktop machines, or VDIs, to have their offshore testing teams run automated testing against the cloud. In other instances, these same companies have their testers use the VDIs to do manual testing. This absolutely causes performance problems. To solve this, network connectivity across the VDIs/VDMs, must allow Solution #1 (allow-listing of the *.perfectomobile.com domain). If this is not done, you will not resolve the issue at hand.

Problem 2 | Automated testing appears to be slow

This tends to happen when a user first opens a device in session sharing and then runs a test against the device while it is open in the Manual Testing view.

Solution #1: Run automation without a lab device open in the Manual Testing view

To run true automation, first, do not open a device in the lab and do not share the session. Tests should run without any use of session sharing or the device lab being open. Check your open device configuration capabilities and adjust as needed.

Solution #2: Check scripts for commands that loop or are unnecessary

We see that in many tests, there are looping commands. For instance, having a find element command loop several times over and over when it is successful each time can add delays to your tests. Perform debugging for script optimization.

Problem 3 | Desktop Web VMs do not open

This tends to happen when a company policy/firewall/rule is partially blocking Perfecto services. In particular, it may be preventing connections to <cloudname>.web.us.perfectomobile.com.

Solution: Allow connectivity to Perfecto services

The best approach is to place the Perfecto domain on your allow list. This can be done by your Infra and Security teams by allowing *.perfectomobile.com. This allows for minimal changes on the customer side as we improve or add capacity to our services.

Additional support

If you need additional support, contact Perfecto Support. The Perfecto Support team will be glad to assist with any questions or concerns that you may have in regards to delays, latency, and so on.