Not stable work of the Ranorex with mobile applications
Posted: Wed Dec 25, 2013 4:06 pm
Hello!
I've encountered with not stable work of the Ranorex, when running the bunch of tests on the mobile devices (both iOs and Android).
In this case appear such errors:
- Cannot perform XML-RPC calls with this endpoint, becasue the underlying network channel is not in the connectd state.
- Device communication timed out. Either no instrumented application is running on the device or the device was not able to process the request within the specified timeout of '00:00:10'. Check that an instrumented application is running on the device or try to increase the timeout.
Additionally, for Android: when we try to find some element in Ranorex, application closes. Looks like, that application is closed each time, when the element, which is searched (using TryFindSingle()), doesn't exist.
Also, instrumented application works too slow in comparison with not instrumented one, no matter who performs some action (Ranorex or human). And the longer we use instrumented application, the bigger is time of responce on user actions.
One more note:
iOs application crashes, when we try to select certain element in the table.
Our develpers team has investigated the crash and came to the conclusion that the Ranorex library does not correctly handle the fullScreen presentation of navigation controllers. Here’s a brief description of the problem:
We’re presenting UINavigationController with animation and UIModalPresentationFullScreen and UIModalTransitionStyleCoverVertical styles.
This results in the infinite recursive loop and stack overflow:
szone_malloc_should_clear
szone_malloc
malloc_zone_malloc
__CFAllocatorSystemAllocate
CFAllocatorAllocate
_CFRuntimeCreateInstance
CFBasicHashCreate
CFSetCreateMutable
CFRunLoopTimerCreate
-[NSCFTimer initWithFireDate:interval:target:selector:userInfo:repeats:]
+[NSTimer(NSTimer) scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]
+[RxAnimationTracker startTimer:]
+[RxAnimationTracker animationStartedWithDuration:]
+[RxAnimationTracker animationStarted]
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
......
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
Investigation of the memory usage of the iOs application (performed using Instruments Activity monitor) shows that the longer we use instrumented application (without its restarting) the more real and virtual memory it uses, and these values are much greater than for not instrumented application. CPU usage and User Load values are also too big, and when application doesn't react on some user actions, these values are about 90 - 100 %.
Do you have some ideas about the reasons of such behaivor? And what can you advise?
Sincerely,
Oksana
I've encountered with not stable work of the Ranorex, when running the bunch of tests on the mobile devices (both iOs and Android).
In this case appear such errors:
- Cannot perform XML-RPC calls with this endpoint, becasue the underlying network channel is not in the connectd state.
- Device communication timed out. Either no instrumented application is running on the device or the device was not able to process the request within the specified timeout of '00:00:10'. Check that an instrumented application is running on the device or try to increase the timeout.
Additionally, for Android: when we try to find some element in Ranorex, application closes. Looks like, that application is closed each time, when the element, which is searched (using TryFindSingle()), doesn't exist.
Also, instrumented application works too slow in comparison with not instrumented one, no matter who performs some action (Ranorex or human). And the longer we use instrumented application, the bigger is time of responce on user actions.
One more note:
iOs application crashes, when we try to select certain element in the table.
Our develpers team has investigated the crash and came to the conclusion that the Ranorex library does not correctly handle the fullScreen presentation of navigation controllers. Here’s a brief description of the problem:
We’re presenting UINavigationController with animation and UIModalPresentationFullScreen and UIModalTransitionStyleCoverVertical styles.
This results in the infinite recursive loop and stack overflow:
szone_malloc_should_clear
szone_malloc
malloc_zone_malloc
__CFAllocatorSystemAllocate
CFAllocatorAllocate
_CFRuntimeCreateInstance
CFBasicHashCreate
CFSetCreateMutable
CFRunLoopTimerCreate
-[NSCFTimer initWithFireDate:interval:target:selector:userInfo:repeats:]
+[NSTimer(NSTimer) scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]
+[RxAnimationTracker startTimer:]
+[RxAnimationTracker animationStartedWithDuration:]
+[RxAnimationTracker animationStarted]
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
......
-[UIViewController(RxAutomation) rxAutomation_viewController_ViewWillAppear:]
-[UINavigationController viewWillAppear:]
Investigation of the memory usage of the iOs application (performed using Instruments Activity monitor) shows that the longer we use instrumented application (without its restarting) the more real and virtual memory it uses, and these values are much greater than for not instrumented application. CPU usage and User Load values are also too big, and when application doesn't react on some user actions, these values are about 90 - 100 %.
Do you have some ideas about the reasons of such behaivor? And what can you advise?
Sincerely,
Oksana