LoadRunner and Performance Center
cancel
Showing results for 
Search instead for 
Did you mean: 

Re: The New Virtual Table Server (VTS) in LoadRunner 11.52

NaveenKumar N

Thanks for the insight article about VTS. New VTS is rocking. Thanks to HP RnD!

0 Kudos
About the Author

NaveenKumar N

Comments
NaveenKumar N

Thanks for the insight article about VTS. New VTS is rocking. Thanks to HP RnD!

Lionel Giavelli

You're referencing a restricted internal KB into a public post...

SilviaS

To get more tips, you can also go to How to setup Virtual Table Server (VTS), download the previous VTS and document (it will require a HP passport account). All the old VTS APIs are supported by the new version, therefore, the API usage doc still applies.

sivaGelli

Hi,

 

I would like to know the maximum no. of connections that would be supported.

 

I am looking for testing an application which has 4000 concurrent users. Please let me know if new VTS can support these many connections.

 

Appreciate your suggestions!

 

Thanks,

Siva

neil_clegg

this is a good step forward HP well done - always thought vts would be good integrated into LR

Bill Desjarlais

Can the VTS functions only be called from "C" scripts?

 

i.e. A .net script that generates C# can/cannot use the VTS?

Sachin Ohal

Hi Jason

 

Greetings for the day!

 

As discussed in a status call. Below article have information that ALM PC 11.52 is supported or compatible with all old VTS version. However, it is not true.

 

http://h30499.www3.hp.com/t5/HP-LoadRunner-and-Performance/The-New-Virtual-Table-Server-VTS-in-LoadRunner-11-52/ba-p/6069435#.UbjQYJyE58E

 

 

We have faced lot of issue with ALM PC 11.52 and VTS 2.12. Finally when we have upgrade the VTS to ALM VTS 11.52 all issue resolved. We request you please give your valuable time and read the article and below information

 

 

  

Error While running load test: This error clearly indicate the VTS version issue

 

 

 VTS Error

 

 

 

 

Need to make the changes in Script for below function for VTS 11.52

 

 

  1. Comment out the linelr_load_dll("vtclient.dll"); in your script. Also, there is no need to include the header file vts2.h in your script

 

  1. To connect to the VTS server, please use the below code snippet:

 

PVCI2  ppp;

ppp = lrvtc_connect("24.40.76.116",8888,VTOPT_KEEP_ALIVE);//OLd VTS Server - 24.40.76.31
        lr_log_message("ppp=%d\n", ppp);
        
        if (ppp!=0) {
            lr_error_message("Not Able to connect to VTS Server = %d",rc);
           <Abort/Exit the Vuser>

        }

else {

<Your Logic>

}

 

  1. To disconnect from the VTS server, please use the below code snippet:

 

    lrvtc_disconnect(ppp);

 

 

  1. To Retrieve the value of a column use the below code snippet

int rc;

if ( (rc =  lrvtc_query_column("<VTS Table Column Name>",1))!=0)
            {
                lr_output_message("Error Querying the column. Status =%d", rc);
            }
            else
        {
                lr_output_message("Old Value is = = %s",lr_eval_string("{<VTS Table Column Name>}"));
        
        }
        

 

 

  1. To increment the value of a column use the below code snippet

int newValue;

newValue=lrvtc_increment("<VTS Table Column Name>",1,1);

 lr_output_message("New Incremented Value is = %d",newValue);

 

 

 

 

Also AJAX Protocol issue and user is unable to

 

 

The below snippet was used (in globals section) for connecting to the new VTS; however, it was successful only for Web HTTP protocol, but failed for Ajax Click and SCript protocol.

 

Ajax Click and SCript throws the follwoing error while compilation: "Syntax error; found 'con' expecting ';'"

 

code snippet:

#include "as_web.h"

//--------------------------------------------------------------------

// Global Variables

 

#endif // _GLOBALS_H

 

int flagloop=0;

long fd;

char *a;

 

char **Address=NULL;

unsigned short status;

 

PVCI2 con=0;

int rc=0;

int           colSize;

 

char *VtsServer = "VTS Server Name Or IP ";

 

Regards,

Sachin Ohal

jasonjing

Regarding the question of how many vusers one machine can support, we have tested running 5000 vusers against one VTS instance hosted on a VM machine, and it works. So the number of TCP connections is not a problem. The actual load to the VTS server depends on how frequent you make VTS API calls to the server.

jasonjing

The VTS currently only support "C" scripts and TruClient. It does not support NET protocol now.

jasonjing

I verified Ajax Click & Script on 11.52, and it can work with new VTS. For the issue you encountered, which is "Syntax error; found 'con' expecting ';'". I guess it may because the 11.52 (SP2) is not applied successfully? Because when you declare a variable with a type that is undefined, you will get this error. PVCI2 type is only defined after SP2 is applied.

jasonjing

Some may have problem connecting to old VTS from 11.52. This is because there is a problem in 11.52 that causes script to hang on vtc_connect when connecting to old VTS. It will be fixed in the next available patch. To work around this, please call lrvtc_noop() or vtc_noop(0) before calling lrvtc_connect, like the following:

 

        lrvtc_noop(  );

        lrvtc_connect( "<vts_server>", 8888, VTOPT_KEEP_ALIVE );

 

The lrvtc_noop operation does nothing in new vts mode, therefore calling it first won’t have any negative impact. After this API call, the initialization is done and then calling connect API will behave correctly.

Gnanasek

Hi all,

 

Could anyone please provide me the link fot VTS server for LR11.52

Pete Mill

It's good to see the value of VTS being recognised and supported now.  It has been essential to our load testing for many years.

 

Is it possible to run multiple VTS servers on one machine using multiple port numbers using the new VTS?  If so, how is this done?  Under the old VTS I just ran multiple copies of vtconsole.exe but with different port numbers specified on the command line.  Can I do the same thing with NODE.EXE?  Can it be done on the command line or do I need to have multiple copies of configure.json?

 

I would give up running VTS as a service if that was what it took. I don't want to have to run a service for every instance of VTS that I need.  Under the old VTS we just run a command file for each VTS instance needed.

 

Thanks

 

Pete

jasonjing

You can download from the following:

 

http://h30499.www3.hp.com/t5/LoadRunner-Information-and-News/LoadRunner-11-52-Service-Pack-Released/m-p/6063823#M81

 

Click "LoadRunner 11.52 Additional Components" link under the bottom. so the VTS Server is one of the component in the package.

 

jasonjing

Regarding running multiple instances of VTS on one machine, the new VTS only enables one port per machine. We will support multiple instances in the future release. For the current release, please considering:

 

  •  Import all data to a single VTS if possible. There is no specific data size limit in the new VTS table, therefore importing all data should be able to work as long there is no conflicting columns.

  • The second workaround is relative complex, and descripted in the following steps:

 

1. Go to C:\Program Files\hp\VTS\web folder, copy the engine folder as another folder and put in the same folder. Copy it as engine1 folder.

 

2. Open engine1 -> configure.json file in notepad, and modify the following two keys to different value:

  • "dbPath": "C:/ProgramData/HP/VTS/db/data1",
  • "adminPort": 4001,

Notice that I changed the values above by appending “1” in each of them.

 

3. Open a command line, change directory to C:\Program Files\HP\VTS\web\engine1, and type command “..\node main.js”. now you run another instance of new VTS on admin port 4001, you can browse to it by typing, http://localhost:4001. And it runs side by side with your default instance http://localhost:4000.

 

 

Pete Mill

Thanks for your quick response and actions to consider.

 

I'm sure you'll agree both have their drawbacks compared with the original VTS solution.  Unfortunately I am experiencing the hang on vtc_connect to the old VTS server and the lrvtc_noop does not cure the problem so using 11.52 with old VTS is not possible.  We might continue using LR11.0 with the old VTS but that clearly won't be practical for too long.

 

We have had over a dozen scripts running in a scenario, each with its own data requirements.  To combine all these in  a single data file would be cumbersome.  

 

I expect that duplicating the engine folder will be our preferred option, so many thanks for the detailed description of how to do that. That will save a lot of trial and error in getting it working and with a bit of effort I can make it happen with command files.

 

I'm glad to hear that multiple instances is on the feature enhancement list for a future release

 

 

 

 

 

 

jasonjing

Hi Pete,

 

I hear from others that call lrvtc_noop before any connect will solve the hang problem, so not sure you still encounter it. Suggest you to raise a support ticket, so that we can trouble-shoot it for you.

jasonjing

One above mentioned problem in VTS 11.52, which hangs when connecting to old VTS, has been solved in Patch 1 and released. Check out the downloading page:

http://support.openview.hp.com/selfsolve/document/LID/LR_03187

PadPill

 

I have installed VTS 11.52.

 

The send message is giving error.

 

vtc_send_message( ppp,"Timestamp",lr_eval_string("{timestamp}"),&status );

 

Replay

 

RVC_Book.c(97): Error: vtc_send_message: Server error -

 

 

 

jasonjing

Hi PadPill,

 

Please make sure you are using new VTS syntax to when pointing to new VTS server, and use old VTS syntax to connect to old VTS server. There syntax differences are not so obvious, but important. E.g. including “vts2.h” header and load vtclient.dll is for old VTS. They are not needed for new VTS.

 

If you ensure the syntax is correct and pointing to the right server, you can trouble-shoot by studying the server side log, which is under %temp%\VTS, you can also view it by go to URL http://<server>:4000/data/diag/logs.

shankar_123

HI Silvia ,

 

Had a look on the new VTS ,Great work!

 

From the admin perspective it seems like VTS Supports basic authentication ,But as I see all the users are able to see each others data and can even delete if they want to .

 

Am I missing something here or is it the way it was built

 

Regards

Shankar

Thomas Johnson

I really like the new VTS and so glad to see that it is now a fully supported application. I did read it only works with the C based scripts. I want positive confirmation that that means I will NOT be able to use it with a Java script. If that is correct, as I assume, is there any forcast on when it will be functional with the other protocols, including Java?

 

Tom Johnson

jasonjing

Hi Tom,

 

The new VTS does not support Java script yet. We may add support in some future release, but not in the recent LoadRunner 12.0 release. However, the communication between the LoadRunner script and VTS server is based on HTTP & JSON. Therefore, it will be not difficult for users to implement their own client in any languges they want. We have the VTS Communication Spec that describes the JSON format of the communication. You can check out the link below:

 

HP LoadRunner and HP Performance Center > Other Files > VTS3 Communication Specification

 

Jason

 

 

vini05200

Hi

 

Can you let us know how VTS would be configured to work along with performance centre/application lifecycle managment.

vineetkhattar

Great article, helped me resolve VTS issue with LR 11.52 and i'm able to work with new UI.

Also the 11.52(SP2) pack im assuming it is 11.52 service pack 1 mentioned on the Support site since it help me solve issue with PVCI2 being unrecognised.

vineetkhattar

Great article, helped me resolve VTS issue with LR 11.52 and i'm able to work with new UI.

 

Also i could not find 11.52(SP2) pack and applied 11.52 service pack 1 mentioned on the Support site and it help me resolve issue with PVCI2 being unrecognised (Syntax error; found 'pvci' expecting ';')

Subrata Biswas

Only one comment. why do not have LDAP like authentication available? VTS is having basic authentication. Issue, to follow this is - if need to provide access to new member need to restart the service. where as easily it also could have implemented LDAP like authentication. Hope it will get included soonner. As per my requirement i needed to integrate it on top of VTS 11.5, Only I needed to spend more time to understand the architecture for integration where as for development it took marely 5 hours including testing. Hope HP will ingrate it sooner. I am ready to share the architecture the way I implemented it.

jasonjing

To answer vini05200:

You can use VTS with Performance Center, in similar way you did with LoadRunner, because it just provides a list of APIs to access the shared parameter data. If you have specific problems that you cannot solve with Performance Center, please let us know.

 

To vineetkhattar:

Yes, 11.52 Patch 1 is the expected client version

 

To Subrata Biswas:

We are still collecting requests on authentication part, to understand the common pattern of authentication in this component. The authentication in theory can be applied to either UI or API, or both. And currently, even though Admin UI can be configured to use basic authentication, the API can be used by any user to access the data. So the current authentication is not a complete protecting solution. Besides, all users authenticated (with basic authentication) can see the same data on UI. If you can provide detailed information on your usage scenario and how you expect authentication behave like, it will help us design the functionality in this area.

vini052000

There are 2 ways of retrieving column (vtc_query_column and lrvtc_query_column).

We are able to populate data but not able to retrieve it using rvtc_query_column

 

VTCERR/VTCERR2 is not called explicitly how do we make the change

vini052000

There are 2 ways of retrieving column (vtc_query_column and lrvtc_query_column).
We are able to populate data but not able to retrieve it using rvtc_query_column

 

It was mentioned make VTCERR to VTCERR2 since VTCERR is not called explicitly, any other way to ensure this change gets reflected.

P_Tester

does VTS work with RTE protocol?

Ylena

Great feature, glad to see it is now officially supported by LR R&D

Currently, there is only one VTS table. For my performance test framework, I need to have multiple tables to be used by different scripts/Vusers

I can implement virtual tables within the same VTS table, but I would like to know if there is perhaps some build in way to implement multiple VTS tables in LR/PC

If not, is this planned in the future releases?

 

Thank you,

Lena

 

lenav

Hi Jason,

 

As a response to one of the comments, you provide a workaround to create multiple instances of VTS "

2. Open engine1 -> configure.json ... you can browse to it by typing,http://localhost:4001. "

 

How do I access those other instances of VTS via LR API?

 

Thank you,

Lena

ADQA

Hi, When I'm trying to run my VTS script (old verion) ; some how Aafter the server is connected and the data is imported from XL (saved as CSV) ; the script is not abe to read the toaal row count from the VTS input table.

will appriciate a quick resposne.

 

jasonjing

VTS has an API to query total row count for a particular column, which is vtc_column_size (or lrvtc_column_size). Are you using this one, and what's the problem calling it? If you need some more prompt response, please submit a ticket so that we can help you directly.

rbnaveenkumar

Hi All,

 

Greetings!

 

We are using LoadRunner 11.52 for load testing. We implemeted VTS server to store key values.

 

Here, The script which connects to VTS server is working fine under localhost machine i.e where controller & VTS server is installed.

 

But, if we run the script in load generators getting an error as following.

 

vuser_init.c(15): Error: lrvtc_connect: Failed to connect server. Please check the server name, port number, network connectivity or whether server above 11.52 version is started. 

 

Load Generator is outside the network and connected through MI Listener.

 

Observation: http://localhost:4000/ is working when we accessed using browser. (replace localhost with controller or VTS server machine ip address) 

 

Note: Disabled Windows Firewall in all th machines. (controller, mi listener, load generator)

 

Please help us in resolving this issue.

 

Thanks,

Naveen

jasonjing

For the connectivity problem, there is a list of things to check, for example:

 

  1. Whether you have enabled the API access from the web UI.
  2. Whether the firewall of the API port (e.g. 8888) has been disabled, to allow connecting from LG
  3. http://localhost:4000/ is the web UI port, API access VTS using a different port(default is 8888), please check you are using the correct port in script
  4. Whether you have replaced "localhost“ with the real server name

 

Try to access the API port in browser of the LG machine, for example http://<server>:8888/, you should see something like "Hello from Connect", which indicate the port is listened by VTS. If you cannot return a valid HTTP response, you should trouble-shoot the server side.

 

If still doesn't work, please try HP support.

 

theja p

hi i wanted to prepare a script for 

 

  • Connect to a VTS server (any mechine name)
  • Write at least 2 entries to a new or existing column in VTS
  • Read at least 1 entry from this column
  • Disconnect from the VTS server

 

can any one please help me out in this

 

Thanks in ADV

 

XB0001

Is this VTS useful for SAP Application Performance Test? I think this is even more complicated compare to existing parameters functionality - As of now tester identify uniquness and dependance of data in SAP application him/her self. How VTS can be useful to identify unique data and data dependancy? If I am executing a test which has 2-3 interdependant transaction, Can this VTS handle it?

PerfCrazy

How to apply the  parameter settings using VTS such as Sequential-Each iteration , Random -.Each iteration ,Unique->Once ,Uique->each iteration etc.. ?  do we have a API to use these parameter settings ? if so could you please help me to get this implemented with different settings ?

 

 

Archana2000

Hi HP expert

 

I am trying to implement VTS in one of my web services scripts and i was successful. 

 

Later i was trying to implement VTS into a java protocol but i couldnt .

 

Does HP support VTS now in any of it recent releases

 

Please help me if there is any documentation to implement VTS in JAVA protocol

Events
June 6 - 8, 2017
Las Vegas, Nevada
Discover 2017 Las Vegas
Join us for HPE Discover 2017 in Las Vegas. The event will be held at the Venetian | Palazzo from June 6-8, 2017.
Read more
Each Month in 2017
Online
Software Expert Days - 2017
Join us online to talk directly with our Software experts during online Expert Days. Find information here about past, current, and upcoming Expert Da...
Read more
View all