Tuesday, January 29, 2019

Dynamics 365 USD Performance Testing (Introduction)

Recently I had to perform some performance testing for a Citrix XenApp environment as part of an upcoming upgrade to our Dynamics 365 Customer Engagement application.  We wanted to ensure that this CE upgrade didn't affect the user density on our Citrix servers.

This workload is for our Customer Service Advisors who use Aspect Unified Agent Desktop (UAD) to receive calls integrated into Microsoft Unified Service Desk (USD) to present caller information and a method of completing workflows through Dynamics 365 CE.

We would usually complete this task with LoginVSI.  It is a tool we have available to us and have used in the past.  We even have a basic custom workload for the above scenario.

We were having a problem with a licence lapsing with the product and also, I wanted a bit more control over the workload and some of it's outputs.

So the next best option was creating a set of PowerShell Scripts to complete these tasks.

At a high level, I had a single launcher Virtual Machine which would run a controller PowerShell Script.  This would set up the XenApp servers to collect data and launch the automated sessions against this XenApp server.

Then I had a separate workload PowerShell script that would execute upon login, prepare the session and complete a repeatable set of actions.  It would also check when the test was finished and gracefully logoff.

The next couple of blogposts will cover how this was achieved in a bit more detail. It will also discuss specific challenges, whether they were workload or controller based and the fixes or workarounds that I used to overcome them.

Controller
-How to start and stop perfmon data collector sets
-How to launch Citrix sessions from command line
-How to auto start workload script
-How to end the workload gracefully
-How to initiate SIP calls from command line without having to RDP to another server

Workload
-How to move the mouse cursor
-How to click the mouse button
-How to type text
-How to click a window button..when you don't know where it will appear
-How to get application focus on a Window
-How to present feedback of the script progress
-How to answer an offered Skype Call
-How to ensure a proper audio/mic device is remoted into ICA session
-How to check whether a step has finished successfully
-How to time how long tasks took to complete

Some of the above challenges are relatively easy to overcome with a bit of Googling (others not so much), but the aim of this is to show you what is possible without having third party testing software like VSI or Selenium etc.

I am also hoping for extra suggestions from those more learned than me in other areas.  My background is Citrix and Infrastructure and if changes can be made in CE or USD configuration to make these scripts work better, that would be awesome.

Here is the next blog in the series

0 comments:

Post a Comment