Sunday, 3 July 2016

Citrix ICA Protocol

I am going to highlight some tips that can be helpful to performance test engineers to effectively work on Citrix applications.  By understanding and implementing these points, script debug and test execution will be a lot easier.
            Citrix products deliver applications across networks. Applications reside on the Citrix server; access to those applications is delivered to remote machines (the Citrix clients) via Citrix's ICA protocol. ICA supports a full GUI interface of the server application on the client side.
Citrix Server: Citrix Server works as a remote connection by users and allows multiple users that allow multiple applications at the same time.
 Citrix provides server and desktop virtualization, networking,Software-as-a-services (SaaS) and cloud computing technologies, including Xen open source products

Independent Computing Architecture (ICA) is a proprietary protocol for an application server system, designed by Citrix Systems. The protocol lays down a specification for passing data between server and clients, but is not bound to any one platform.

VuGen records GUI activity on the Citrix client and replays it to the Citrix server.
Currently, events are recorded in analog mode. That is, objects are identified by their coordinate position, and not by a context-sensitive name (e.g."OK_BUTTON"). For example, the parameters of the ctrx_mouse_click function, x_pos and y_pos, specify the pixel coordinates of the mouse click, found, say, within a window dialog's "OK" button.

Load Runner does neatly attempt to get around some of these issues by giving the load tester the ability to install agent processes on each of the Citrix instances (Citrix virtual desktop agent).  This gives visibility to sync on items such as text and object information such as focus, visible, checked and enabled.  This will add 2MB per Citrix client, which is worth paying for the extended object and sync visibility.

            Citrix is an environment, where u can published u r application in Citrix environment to access through globally for secure purpose.
            If the application is deployed in Citrix then we have to use “Citrix ICA “protocol. Before accessing the application we have to connect the Citrix through URL.

Step1:- Access the Citrix environment through URL
Step2:- provide credentials and select your application in Citrix
Step3:- perform the business scenario against the application and logoff            from the server

We have to use web http/html as well as Citrix protocol for completing the above scenario. Why we have to go for web http/html means to launch the Citrix, we have to use web browser so we can go for web http/html.
Further process we can use Citrix protocol.

***Number of vusers per Load Generator Machine:

A Load Generator machine can run only a limited number of Citrix Vusers at the same time. This is due to the graphic limitations of that machine. This limits the performance load that be applied to the application. To solve this problem and increase the number of vusers per machine -
1. Open a terminal server session on that machine.
2. Call this terminal server session as a new Virtual-user injector machine.
3. Connect to this new virtual injector machine from controller. To connect, use respective machine names e.g. Machine_001, Machine_002, etc (Or) respective IP Addresses.
4. Use these additional machines as Load Generators.

***Pre Requisites to use Citrix protocol:

1.      Install ICA agent in Vugen & LG machines
2.      A Citrix VUser’s memory footprint is two to three times a Web VUser’s memory footprint.
3.      Citrix transactions, Citrix windows and bitmap functions in Load Runner take time to stabilize and hence we must not ignore think time when replaying the script.
4.       Use the keyboard as often as possible, avoid using mouse clicks.

The API is divided into the various types of client activity:

***Functions in Citrix Protocol

1.      ctrx_nfuse_connect();
2.      ctrx_sync_on_window ();
3.      ctrx_sync_on_bitmap
4.      ctrx_sync_on_bitmap_change.
5.      ctrx_sync_on_bitmap_change
6.      ctrx_mouse_click ();
7.      ctrx_type ();
8.      ctrx_key();
9.      ctrx_get_window_name

***Most commonly used citrx functions are


1. Ctrx_nfuse_connect ();
2. Ctrx_sync_on_window ();
3. Ctrx_mouse_click ();
4. Ctrx_type ()
5. Ctrx_key ()
6. Ctrx_get_window_name ();
7. Ctrx_sync_on_bitmap ();
8. Ctrx_get_text_location ()
9. Ctrx_get_text ();

 ***Lost in Citrix Error:

Citrix error where expected windows are not appearing where they are supposed to or they are not the right ones.

1. Ctrx_get_window_name
2. Ctrx_get_window_position

--->Solution

At the top of the script initialize the variables

Char window_name[100]; long xpos,ypos,
width,height;

 ctrx_get_window_name(window_name); ctrx_get_window_position(window_name, &xpos, &ypos, &width, &height);
lr_output_message("Window = %s. x= %ld, y= %ld, width= %ld,
height = %ld", window_name, xpos, ypos, width, height);


***Error handling functions and challenges are:

1.   Ctrx_get_text(); Retrieves a text in a rectangle
2.   Synchronization issues
a.   synchronization with bit map
b.   text verification and capture dynamic value from on screen
I. Ctrx_get_text: capture the on screen text & handle the text verification point
II. Ctrx_get_bitmap_value : return a value of a bit map as a string





***JAIN...!!!


3 comments:

  1. I feel happy about and I like learning more about this topic. Keep sharing your information regularly for my future reference. Thank You

    Best Citrix Netscaler Training in India | CNS-205 Citrix NetScaler 11.0
    Citrix XenServer Certification in India

    ReplyDelete
  2. Coin Casino Review - Claim your 100% up to $1000
    Are you looking for Coin Casino bonuses? Look no further than Coin Casino Review by 인카지노 Experts and win up to $1,000 in 온카지노 your first deposit! septcasino

    ReplyDelete

  3. Your post is really amazing with lots of important points Thank you for sharing. I was really enjoying reading this article.


    ac mechanic course
    ac repairing course

    ReplyDelete