Is simultaneous "user testing" possible in QTP? - performance-testing

Could you please let me know if can I test an application simulating multiple users in QTP ?
If yes, how can i do this?
Please illustrate with the right steps or point me to some useful documentation.

You can still use QTP as a GUI handling client with connection to LoadRunner.
Very detailed explanation could be found here:
http://motevich.blogspot.com/2007/11/execute-qtp-script-from-loadrunner.html

simultaneously user testing is possible in QTP ?
No, Only one QTP user can run at a time in one computer. If you try to open other QTP user also in the desktop it will show only one.

More details please - what exactly would you like to do?
If you mean simultaneous user testing with QTP as a proxy for load testing, no, it is not a good tool for that. You will want a real load testing tool (Rational Performance Tester, OpenSTA, JMeter, LoadRunner, et al).
If you are talking about scenarios where you need to have QTP running on 2 machines accessing the same record(s), or something along those lines, then yes, you can do this with QTP. QTP has no special handling for this, but it is fairly straightforward to set up a mechanism to do this.
For example, if you want to create a record with user A and modify the record with user B, you could have a common file that contains the record id. User A would write the record id to this file after creating it, and user B would read the record id from the file before modifying it.

See Graphical Virtual User (GUI Vuser) Licensing for LoadRunner. Essentially you have QTP scripts that you can execute as a part of a performance scenario. This is a well known solution going back to the dawn of LoadRunner, where first it was a bunch of XRunner Sessions on Unix workstations, then came GUI Virtual Users on WinRunner and the latest incarnation of GUI Virtual Users is QTP only with LR 11 and above. Speak to your rep about short term or permanent licensing of GUI Virtual users with your LoadRunner environment.

Related

Execute user script node js (like CodingGame)

I'm currently building a CodingGame like platform for a school project and I wondered how I could handle user script validation.
The goal is to have multiple exercises to solve with an expected response.
For example, there's an error to correct in the exercise and when corrected it should output "hello".
I don't want users to actually do "console.log('hello')" in the IDE on the website if possible :)
The most difficult part is that i don't know how to do execute the actual script given (sent as text to the API).
I just want to start with NodeJS available for the user, no Php or C...
Save the script as localfile wouldn't be a good option I think, that's how we do it for now but I don't know how Coding test platforms actually do it.
The API is hosted on AWS EC2 Amazon Linux instances.
Thank you for your help :)
This is rather an elaborate business requirement and not simply a doubt, but some points that could help you to progress in your project further -
A program is only a program when it is understood by some other program as instruction. Otherwise there's no difference in program.js and program.txt
Validating and running a program are two different things
Running a program on your own system vs allowing anyone to run the same program in your system are entirely different situations in terms of everything. (This is where the web & it's virtues come to play)
There will always be some risk when letting others provide instructions to your systems, as no validation is 100% effective, even if you check for all destructive commands, there will always be more of them. But then again, you'll have to consider this while setting up a virtual machine for the sole purpose of public use. (Like, keeping in mind that this machine can be lost at any moment, so the architecture should be able to handle such losses, either by spinning up a new machine or having a set of replaceable machines for this.)
Isolation & sandboxing of execution is the key in these kind of requirements. So you can have a look at tools like Docker, which could be a bit complex to understand initially, but if it suites your needs then simplicity is just one complexity away.

Script for Online Tasks

I was wondering if there is a way to write a script that could perform online tasks . There are actions a user does that is so repetitive/planed, that make me wonder if there is a way i could write a script that could do that for me. What i mean is, for example, a script that could go online, lets say facebook, write/read a post. It seems such a straight forward action that it has to be possible to be done by a scrip.
The thing is I have no idea how to do, my question here is some guidance, if possible, all i need to know is a good language for this and a good aproach. I can't seem to find anything for this, probably not searching the right terms.
Thanks for your time. :)
If you're looking to mock user behavior in the browser (such as filling out a form), you could use Python, a web driver, and the module Selenium.
Selenium will open the web driver, then allow you to mock user actions, such as selecting a text box, typing data, and then clicking submit. This allows you automate actions such as a search on a website, verifying a website works the way you expect it to when a user takes certain actions, and filling out input elements on a page and submitting a form.
You need to understand concepts like javascript, ajax, servlets plus advance level concepts like in advance java as these all are event associated for bringing dynamisation to your web page and other than this session level concepts to deal if session is active or expired this all adds to automating based on session attribute.
Finally, at database level you can use triggers to event fire changes when needed.

Python curses interface

I have developed a program using curses, everything is cool so far but I was wondering myself if there is a good pattern to split different views/panels of my program into smaller chunks callable by my main loop?
Further informations:
This program is a rather small automation tool/wizard aiming to ease our application for customers requiring the on-premise installation.
This wizard is a 3 steps one and it’s used to grab informations from our customer installation needs depending of it’s chosen architecture.
The first step is requesting the customer to give us its identification informations such has contract number, company name, licence number and preferred contact.
The second step is requesting the customer to give us informations about either he want a standalone installation (All-In-One install) or a N-Tiers installation plus the required informations like the requested custom SSL VHostName or Tiers IP/Credentials.
The third and final step is showing the customer a progress bar and informations of the required services (MySQL/HTTPd/HAProxy/PHP-FPM) and our application.
I know that I do not especially need to use curses library for such a program but our UX Team requested it as it is part of our customer experience with the solution.
You can look at the Forms library. It's a nice extension to ncurses that allows you to better manage input forms like yours. It offers a simple function interface to read the fields, change their properties, etc., as well as many different field types (including regexp-validated fields). In your case, you can simply create three forms, and post/unpost them in succession.
as such way to do things is not really usual, do not expect any framework to be available (like those available for WebUI for instance).
I so decided to create my own "Framework/factory" and so to be able to split every aspect of my app in a logic that would be similar of those used by web applications.
The source-code is dirty and really not pythonic, but it is well working so far and quite easy to maintain.
Thanks everyone for your answers and ideas.

On-Screen Keyboard hide and run within excel instance to use functionality

To give a brief backstory to bring things up to my current position / reason for my question:
I originally wanted to use sendkeys to send keyboard presses to a Citrix Xenapp Remote Terminal Application (VT320 Emulator).
This does not work.
After some investigation it became apparent that this has been a reasonably common issue.
I eventually found a work-around that involved opening the windows 'On-Screen Keyboard' application and sending mouseclicks using VBA to the OSK app itself. The key transmissions would be successfully received in the remote terminal application.
This solution is a rather awkward and not very practical solution as it relies on many factors e.g. screen resolution, co-ordinates / current position of the OSK etc.
With the above in mind, I am looking to achieve a more full proof method and here's my thoughts:
Rather than using simulated mouseclicks I would ideally like to be able to either 'embed' the OSK app into the excel instance and reference each key
or hide the app and find a way to make the application receive the VBA keys requested.
I'm aware that Sendkeys has its limitations so I have also tried using SendInput via a Keyb_Event and this also didn't work.
To any half experienced expert, I'm clearly a beginner so I'm suffering from a lack of knowledge here perhaps.
If anyone can point me in the right direction for solving this issue, I'd really appreciate it!
Many thanks.
EDIT
I've looked into this a little more and found this post:
Finding the class name of the On-Screen Keyboard?
Which would suggest that if I know the class of the on screen keyboard, I could use its commands within excel VBA?
I did try to use the code within the question but couldn't get it to work.
So hopefully my question is a little easier to answer?
Can I use the class name of the on-screen keyboard app / declare an API function that will allow me to send simulated key functions as if it's the OSK app being clicked by the mouse?
Hopefully someone can help!!
Trying to automate apps locally can be quite fiddly. Doing it through a Citrix HDX connection is just painful.
Do you have any say over the Citrix environment? If so I'd try writing an automation app that actually runs on the Citrix server in the same session as the published app you're trying to automate. This has the advantage that you're effectively automating a local app which would make life easier.
Depending on how your automation works you may need to communicate between your automation app running in the Citrix session and your client. You could use WCF to bridge the two together.
So that's how I would try and do, as regarding your specific question I've provided some thoughts below...
OSK automation thoughts
I've done some limited automation of the OSK. There are actually two OSKs if you're using Win8. Osk.exe is the old one which has been around a while. TabTip.exe is the new Win8 specific OSK.
One problem to keep in mind is that both of these processes run as high integrity processes which means normal (medium) integrity processes have very limited abilities to automate them. So while I could automate some stuff, many messages would just get ignored. So this maybe why you are finding the OSK is not responding like you expect.
You can work around this by running your automation app as a high integrity process, but this generally means you need local admin (or local system) privilege to start the high integrity process. I never looked into the specifics of how you create high integrity processes. I know there's a command line tool you can use to force a process to run at a certain level (icacls.exe), e.g.
https://msdn.microsoft.com/en-us/library/bb625960.aspx
I imagine there would be APIs to do this as well.

Run command on client computer from a browser

I was wondering if it was possible, using some client side scripting language, to run a command on a client computer from a remote web server. For example, what could I do to make a web page that returns information about the client's local ip address, currently running processes, and other info by running some command on their machine and then collecting and printing that data? Also, I only intend to use this on clients running Windows. Thanks in advance for any help!
The amount of information you can collect from client computers is deliberately limited in the name of privacy. If you wanted to accomplish your goals, you would have to have the user consent to giving you this information. For example, you could ask them to install and run a small program on their machine, not limited by what the browser can do or see, and use that to collect and return information to you. The act of asking them to run this program/install a plugin would be the consent. For example, this is what NVidia does to scan your computer and determine which drivers you need on their website, as seen here: http://www.nvidia.com/Download/Scan.aspx?lang=en-us
I think Pwn2Own is over for this year. Even with that, I would hope not.
I think that's called hacking. Browser makers go to great length to prevent this kind of activity because it poses a massive security risk to your users. There might be a way to do such a thing, but it's WRONG to try it.

Resources