It's wrong to assume that VuGen scripts are always written in C. Some virtual user types are only available in other languages, and some give you an option of generating a recorded script in a variety of languages. At current count, LoadRunner supports 8 languages (or 6, if you consider VBA, VBScript and VB to be the same language).
This post shows the list of languages available for LoadRunner/VuGen 9.10, and which vuser types they are available for.
To generate your script in a different language (if available), change the "scripting language" setting under Recording Options.

It should be noted that not all vuser types allow you to generate code from a recording of your application. Template scripts require you to hand-code API calls in your script. This is not recommended unless the interaction between the client and the server is very simple - good examples would be performance testing of DNS or MAPI.
Scripting Language by Vuser Type:
| Protocol | C | VBA | VBScript | JavaScript (JScript) |
VB | VB.NETC | C# | Java | Record/Replay? |
|---|---|---|---|---|---|---|---|---|---|
| Action Message Format (AMF) | Yes | Yes | |||||||
| AJAX (Click and Script) | Yes | Yes | |||||||
| C Vuser | Yes | No | |||||||
| Citrix_ICA | Yes | Yes | |||||||
| COM/DCOM | Yes | Yes | Yes | Yes | Yes | ||||
| DB2 CLI | Yes | Yes | |||||||
| Domain Name Resolution (DNS) | Yes | No | |||||||
| Enterprise Java Beans (EJB) | Yes | No | |||||||
| File Transfer Protocol (FTP) | Yes | Yes | Yes | Yes | Yes | ||||
| Flex | Yes | Yes | |||||||
| i-mode | Yes | Yes | |||||||
| Informix | Yes | Yes | |||||||
| Internet Messaging (IMAP) | Yes | Yes | Yes | Yes | Yes | ||||
| Java Record Replay | Yes | Yes | |||||||
| Java Vuser | Yes | No | |||||||
| JavaScript Vuser | Yes | No | |||||||
| Listing Directory Service (LDAP) | Yes | Yes | Yes | Yes | Yes | ||||
| Media Player (MMS) | Yes | No | |||||||
| Microsoft .NET | Yes | Yes | Yes | ||||||
| Microsoft Remote Desktop Protocol (RDP) | Yes | Yes | |||||||
| MS Exchange (MAPI) | Yes | No | |||||||
| MS SQL Server | Yes | Yes | |||||||
| Multimedia Messaging Service (MMS) | Yes | No | |||||||
| ODBC | Yes | Yes | |||||||
| Oracle (2-Tier) | Yes | Yes | |||||||
| Oracle NCA | Yes | Yes | |||||||
| Oracle Web Applications 11i | Yes | Yes | |||||||
| PeopleSoft Enterprise | Yes | Yes | |||||||
| PeopleSoft-Tuxedo | Yes | Yes | |||||||
| Post Office Protocol (POP3) | Yes | Yes | Yes | Yes | Yes | ||||
| Real | Yes | Yes | |||||||
| SAP - Web | Yes | Yes1 | Yes | ||||||
| SAP (Click and Script) | Yes | Yes | |||||||
| SAPGUI | Yes | Yes | |||||||
| Siebel - DB2 CLI | Yes | Yes | |||||||
| Siebel - MSSQL | Yes | Yes | |||||||
| Siebel - Oracle | Yes | Yes | |||||||
| Siebel - Web | Yes | Yes1 | Yes | ||||||
| Simple Mail Protocol (SMTP) | Yes | Yes | Yes | Yes | Yes | ||||
| Sybase CTlib | Yes | Yes | |||||||
| Sybase DBlib | Yes | Yes | |||||||
| Terminal Emulation (RTE) | Yes | Yes | |||||||
| Tuxedo | Yes | Yes | |||||||
| Tuxedo 6 | Yes | Yes | |||||||
| VB Script Vuser | Yes | No | |||||||
| VB Vuser | No | ||||||||
| VBNet Vuser | Yes | No | |||||||
| VoiceXML | Yes | Yes | |||||||
| WAP | Yes | Yes | |||||||
| Web (Click and Script) | Yes | Yes | |||||||
| Web (HTTP/HTML) | Yes | Yes1 | Yes | ||||||
| Web Services | Yes | Yes | |||||||
| Windows Sockets | Yes | Yes |
1 The Web (HTTP/HTML), SAP - Web, and Siebel - Web virtual user types can all be converted to a Java-based script. However, this requires that you are also licensed for the Java vuser type or the Java Record Replay vuser type. The Click and Script and Web Services vuser types cannot be converted to Java.
Note that the VB vuser type (which is a template virtual user that does not support Record/Replay) has some web functions available to it, such as web.url() and web.submit_data().
Tech tips from JDS
Browser Console
Read More
Glide Variables
Read More
Understanding Database Indexes in ServiceNow
Read More
Fast-track ServiceNow upgrades with Automated Testing Framework (ATF)
Read More
Read More
Splunk .conf18
Read More
ServiceNow Catalog Client Scripts: G_Form Clear Values
Read More
Is DevPerfOps a thing?
Read More
How PagerDuty integrates with AppDynamics, Micro Focus, ServiceNow, and Splunk
Read More
The benefits of performance testing with LoadRunner
Read More
Monitoring Atlassian Suite with AppDynamics
Read More
5 quick tips for customising your SAP data in Splunk
Read More
How to maintain versatility throughout your SAP lifecycle
Read More
How to revitalise your performance testing in SAP
Read More
Reserve and import data through Micro Focus ALM
Read More
How to effectively manage your CMDB in ServiceNow
Read More
ServiceNow and single sign-on
Read More
How to customise the ServiceNow Service Portal
Read More
Integrating a hand-signed signature to an Incident Form in ServiceNow
Read More
Integrating OMi (Operations Manager i) with ServiceNow
Read More
Implementing an electronic signature in ALM
Read More
Service portal simplicity
Read More
Learning from real-world cloud security crises
Read More
What’s new in ServiceNow for 2017?
Read More
Static Variables and Pointers in ServiceNow
Read More
Citrix and web client engagement on an Enterprise system
Read More
Understanding outbound web services in ServiceNow
Read More
How to solve SSL 3 recording issues in HPE VuGen
Read More
How to record Angular JS Single Page Applications (SPA)
Read More
Calculating Pacing for Performance Tests
Read More
Vugen and GitHub Integration
Read More
What’s new in LoadRunner 12.53
Read More
Filtered Reference Fields in ServiceNow
Read More
ServiceNow performance testing tips
Read More
Monitor Dell Foglight Topology Churn with Splunk
Read More
ServiceNow Helsinki – Developer Concepts
Read More
Straight-Through Processing with ServiceNow
Read More
Splunk: Using Regex to Simplify Your Data
Read More
ServiceNow Choice List Dependencies
Read More
Tips for replaying RDP VuGen scripts in BSM or LoadRunner
Read More
Incorporating iSPI metric reports into MyBSM dashboard pages
Read More
Using SV contexts to simulate stored data
Read More
What’s new in LoadRunner 12.02
Read More
Recycle Bin for Quality Center
Read More
LoadRunner Correlation with web_reg_save_param_regexp
Read More
LoadRunner 11.52
Read More
QC for Testers – Quiz
Read More
Agile Performance Tuning with HP Diagnostics
Read More
What’s new in HP Service Virtualization 2.30
Read More
Understanding LoadRunner Virtual User Days (VUDs)
Read More
Problems recording HTTPS with VuGen
Read More
Improving the management and efficiency of QTP execution
Read More
Performance testing Oracle WebCenter with LoadRunner
Read More
Generating custom reports with Quality Center OTA using Python
Read More
Asynchronous Communication: Scripting For Cognos
Read More
How to fix common VuGen recording problems
Read More
Monitoring Active Directory accounts with HP BAC
Read More
URL Attachments in Quality Center
Read More
What’s new in LoadRunner 11.00?
Read More
Restore old License Usage stats after upgrading Quality Center
Read More
Changing LoadRunner/VuGen log options at runtime
Read More
Restricting large attachments in Quality Center
Read More
Retrieving Quality Center user login statistics
Read More
A comparison of open source load testing tools
...
Read More
Worst practices in performance testing
Read More
LoadRunner Sales Questions
Read More
LoadRunner Analysis: Hints and tips
Read More
LoadRunner in Windows 7
HP Loadrunner 11 is now available. This new version now natively supports Windows 7 and Windows Server 2008. I ...
Read More
Using the QuickTest Professional “commuter” license
Read More
Installing HP Diagnostics
Read More
Understanding LoadRunner licensing
Read More
VuGen scripting for YouTube video
Read More
Creating a Web + MMS vuser
Read More
Why you should use backwards dates
Read More
How to get the host’s IP address from within VuGen
Read More
VuGen scripting for BMC Remedy Action Request System 7.1
Read More
Unique usernames for BPM scripts
Read More
Mapping drives for LoadRunner Windows monitoring
Read More
VuGen feature requests
Read More
LoadRunner script completion checklist
Read More
Querying Quality Center user roles
Read More
Querying the Quality Center Database
Read More
HPSU 2009 Presentation – Performance Testing Web 2.0
Read More
Scaling HP Diagnostics
Read More
Global variables aren’t really global in LoadRunner
Read More
Client-side certificates for VuGen
Read More
Detect malicious HTML/JavaScript payloads with WebInspect (e.g. ASPROX, Gumblar, Income Iframe)
Read More
VuGen code snippets
Read More
Integrating QTP with Terminal Emulators
Read More
Why you must add try/catch blocks to Java-based BPM scripts
Read More
Querying a MySQL database with LoadRunner
Read More
ANZTB 2009 Presentation: Performance Testing Web 2.0
Read More
How to make QTP “analog mode” steps more reliable
Read More
Testing multiple browsers in a Standardized Operating Environment (SOE)
Read More
DNS-based load balancing for virtual users
Read More
What’s new in LoadRunner 9.50?
Read More
Calculating the difference between two dates or timestamps
Read More
The “is it done yet” loop
Read More
Think time that cannot be ignored
Read More
Understanding aggregate variance within LoadRunner analysis
Read More
Load balancing vusers without a load balancer
Read More
Harvesting file names with VuGen
Read More
Parameterising Unix/Posix timestamps in VuGen
Read More
HP Software trial license periods
Read More
How to handle HTTP POSTs with a changing number of name-value pairs
Read More
VuGen string comparison behaviour
Read More
Persistent data in VuGen with MySQL
Read More
Monitoring Tomcat with LoadRunner
Read More
How to write a Performance Test Plan
Read More
Unable to add virtual machine
To get ...
Read More
LoadRunner scripting languages
Read More
WDiff replacement for VuGen
Read More
Testing web services with a standard Web Vuser
Read More
Why your BPM scripts should use Download Filters
Read More
Querying your web server logs
Read More
Importing IIS Logs into SQL Server
Read More
QTP “Uninstall was not completed” problem
Read More
VuGen correlation for SAP Web Dynpro
Read More
How to save $500 on your HP software license
Read More
Testing and monitoring acronyms
Read More
Solving VuGen script generation errors
Read More
An introduction to SiteScope EMS Topology
Read More
Using the BAC JMX Console
Read More









Thanks for sharing such a great blog Keep posting..
Hi, are there new scripting languages I can use with Loadrunner?
Does LoadRunner supports progressive web app using java scripting?
does loadrunner supports progressive web app stress testing using java scripting?
Hi. In our company, we have two applications one is developed in Dot Net & MSSQL (DB) and another one is on JAVA & DB2 (DB).
Both are webbased applications.
1. What kind of protocols I have to select in HP Load Runner. Just Web(HTTP/HTML) ??
2. What language I have to use. Just C language or can I use VB Scripting.
3. How can I identify what kind of protocols need to be selected before recording a script in HP Load Runner.
Thanks in advance for all your valuable time.
Hi,
On what basis do we select the Scripting language, is it Application dependent?
Also I see the above comparison, which says we cannot Record/Replay when applications are based on EJB/CVuser etc are used.
a) What does it mean?
b) As per my understanding Load Runner is used to Record/Replay with little manual interference for instances like Correlation/Parameterization. Could please help me to understand the usage of Load Runner better? Do we manually write scripts as per the above scenario?
Thanks.
Regards,
Sonia
I am trying to suppress a call to a url which is making my script fail. There should be a function which suppresses the call to a URL that I can put in the script but I cannot find it. I know I can comment out the url if I record the script in the URL mode but I can’t use that mode for all my scripts. In Silk Performer there is a way to suppress the call to a url, is there same in LR? Also tell me how can i start new post.
this is the good info ,which clearly tell the information about the protocol.
good information regarding various protocols.
[…] though LoadRunner supports a variety of languages (depending on the vuser type), just covering C (and maybe Java) should be enough for most of the […]