Test execution on Mobile so slow

Hi guys, any resolution of slow execution even on real devices in Katalon?

Please try the below:

  1. In desired capabilities add [ automationName = UiAutomator1 ] if using a lesser version of Android and appium. For Higher version you can add UiAutomator2 you can find the same in Project>Settings>Desired Capabilities>Android

  2. Update Node js and Install the compatible version of Appium to the OS.

Let me know if it helps. Solved my Issue.

Hi @tanmaykumarnanda, is there an equivalent of this for iOS? Thank you.

Hello, has anyone resolved this? I am running iOS automation on real device and it takes 10 seconds for each step to be executed. :frowning: On Android, there’s no problem, the execution time is just like on Web.

Same problem here, I am using Katalon Studio 7.0.4 with Appium 1.15.1 and x code 11.1, Get attribute keywords taking 9 seconds to execute.

How do improve this ?

@Chris_Trevarthen @duyluong

Hi @satish1607,

How are you defining the Test Objects? Is it by xpath, type, name, etc.? Having a unique name (which comes from the accessibility id in the Xcode project) should provide the fastest way to get the element.

It is likely that iOS tests are going to be slower than Android tests for a couple of reasons:

  • iOS interactions need to go through the WebDriverAgent to access the device or simulator, which is another app that gets installed on the device. This may not be as efficient as Android.
  • To determine what’s on the screen, Appium gets an XML representation of all of the elements. For Android, only the visible or loaded elements on the screen come back, so the XML can be much smaller than iOS, which returns everything. This makes parsing XML in iOS take longer, hence the need for more targeted xpaths.

– Chris

1 Like

Thanks Chris I understood this, is there any way to get the accessibility id from Katalon?

Hi @satish1607,

You can use Katalon’s Spy Mobile tool to inspect an element. The property that shows as “name” is the same as the accessibility id that’s set in the Xcode project.

—Chris

Thanks Chris for you explanation, still I feel execution is taking more time even though I am using by name.
Highlighted one taken 6 + seconds to tap.

Please help me to improve my execution :

Is there any other way to reduce the execution time? Please help.

@Chris_Trevarthen

Hi @satish1607,

I’ve been trying to find some optimizations online, but without a lot of luck. Here is a thread where people were having an issue with an earlier version of Appium: https://github.com/facebookarchive/WebDriverAgent/issues/739

Some of the suggestions are:

  1. Use a simulator instead of a real device, because on a real device, there is a built-in 1 second delay for commands
  2. Set your Desired Capabilities for useJSONSource to true
  3. Set your Desired Capabilities for waitForQuiescence to false

For more info on setting Desired Capabilities in Katalon: https://docs.katalon.com/katalon-studio/docs/desired_capabilities_in_katalon.html#what-are-desired-capabilities

Also, some suggestions on how to optimize lookups from Facebook/WebDriverAgent: https://github.com/facebookarchive/WebDriverAgent/wiki/How-To-Achieve-The-Best-Lookup-Performance

Hope this helps,

Chris

Thanks Chris for you update, is there any way to switch the application in iOS like from message to chrome or message to camera etc. One more how do I press the Home button in iOS.

thanks

Hi @satish1607,

You should be able to start an existing application like Chrome or the Camera using MobileBuiltInKeywords.startExistingApplication: https://docs.katalon.com/katalon-studio/docs/mobile-keyword-start-existing-apps.html#description

To switch to an already running app, you should be able to use:

AppiumDriver<?> driver = MobileDriverFactory.getDriver()
driver.activateApp(bundle_id)

You’ll just need to find and provide the bundle_id of the other app you want to start.

As for the Home button in iOS, it doesn’t seem like people are having a lot of luck with it, but you could try this: https://appiumpro.com/editions/68 or try putting your current app into the background:

AppiumDriver<?> driver = MobileDriverFactory.getDriver()
driver.runAppInBackground(Duration.ofSeconds(-1));

Hope this helps,

Chris

1 Like

Superb Thanks a lot Chris I am able to switch the application successfully.

Could you please let me know for pressing Home button what I need to import?

driver.executeScript(“mobile: pressButton”, ImmutableMap.of(“name”, “home”));

Thanks

I just tried this and it seems to work with the Home button on iOS:

import io.appium.java_client.AppiumDriver as AppiumDriver
import com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory as MobileDriverFactory
import com.google.common.collect.ImmutableMap

AppiumDriver<?> driver = MobileDriverFactory.getDriver()
driver.executeScript('mobile: pressButton', ImmutableMap.of('name', 'home'));

Note that in Katalon Studio for Mac, if you press CMD+SHIFT+O it will auto-import any libraries in your test if it can find them (if there is more than one match, it might prompt you to choose).

Hope this helps,

Chris

1 Like

Thanks Chris it works for me, I am able to switch the application, I am able to go to home screen.

But one more problem I faced if unable to tap/open any application from Home screen. I capture the icon details but no luck. How do I launch/tap on any application icon going from home screen?

Thanks @Chris_Trevarthen

Hi @satish1607,

All of the icons on the home screen should be visible to Katalon/Appium. They show up as type of XCUIElementTypeIcon with a name that is the text under the icon, e.g. “Photos”, “Maps”, “Settings”, etc. You should be able to Spy Mobile on the home screen to capture an icon you want to tap, or dynamically create a Test Object using the type and name.

Hope this helps,

Chris

Hi @satish1607

Wondering if any of the suggested performance improvements from above ever worked for you. I am finding that entering text in iOS 13 with Katalon 7 is much much slower - takes 2 minutes to do so now! I’m trying to find the root of the problem.

– Chris

Nothing much improved while execution so I conveyed that execution is slow on Mac when compare to Android.

Thanks

This works for me one day later it stopped working don’t know why.

Thanks Chris for the help .