For every test case is it mandatory to include the “Mobile device connection” activity, or is there is any way I could configure it so that I could use the existing mobile device connection for all the test cases?
Because I notice the app gets installed for every test case execution.
You can create an empty Mobile Device Connection and set the OutputConnection property to some variable. If you set the first Mobile Device Connection Close property to Never then at the end of the execution of that activity, the connection will not close, so it can be reused further.
If you create another connection and you set the InputConnection to the saved variable, that connection will be reused.
Now in order to do this across workflows, you need to have arguments to those workflows in which to pass the common connection and you can use the Invoke workflow activity to invoke those other workflows with the reused connection.
So the main workflow will look like in the image below:
Hello! We’ve just published version 21.3.0-preview on the official feed that contains the newly added properties InputConnection and OutputConnection. Can you update the package and check if it works? Thank you.
Yeah for tests it probably isn’t possible. I tested with SauceLabs and the session remains open even after a test finishes, so if the connection is serialized and deserialized in some way it should be reusable. I tried some quick things but I didn’t get very far.
but if there are multiple test case in run then sauce reset device connection in next test case run how to preserve app state like logged in - during next test case run?
Right now you can’t unless you execute everything in a single big TestCase and then rely on asserts to split your test cases. So your testcase becomes a big container for invoke workflow activity and in each workflow you can start with a verify expression activity that has the title “Test Login started”, and it’s always true, so it gets reported in orchestrator. At the end you can finish with another always true assert with a title like “Test Login ended”. So when your big test fails, you can identify relatively fast, what workflow failed.
I know what I’m proposing isn’t ideal, but it might be an acceptable workaround.
Can you please help me, How to make it work using Browserstack real devices, I have a multiple test cases with same login steps, So I am trying to invoke my login script but every time it is installing the app showing Login window
In the main.xaml there is a Mobile Device Connection activity that starts the connection, taps on Login and saves the connection to mobileConnection variable.
After this the variable mobileConnection is sent to LoginSample.xaml to execute the “fake” login sequence
Then again in the main.xaml there is another Mobile Device Connection that returns to main screen. This Mobile Device Connection activity has the Close option to Always to close the connection at the end. All the others have the Close option set to Never.
I hope this clarifies things but if not, please show me what you’re doing now, what you expect and what you get?
hello @phaserescu my test case is passing through given when and then section. i have used same connection in when and then section. i want to close the application after executing then section. how can we do so
If you want to close the current Application you can try to use the Manage Other App Activity with the Terminate command.
If you want to close the session, then you have a Close option on the Mobile Device Connection that you can set to Always and at the end of the execution it should close the session.
If you reuse the Mobile Device Connection activity and previously you set Close to Never, then you can add another empty one at the end which re-uses the previous connection and that has Close set to Always and after that empty activity executes it should close the session.
in “given” section i have a outconnection variable from outputconnection and thus used the same variable in “when” “Then” and close property set to never
in “then” section i have used two connection the second will close the connection with close property set to always
i am testing a simple login flow in android application… when i am login manually no message box is getting displayed but while same trying with UiPath tool it is displaying above message box… i don’t want the message box while automating with uipath