How to set up a load test based on virtual users using individual specific virtual machine names - performance-testing

I have a load test that I need to create. This load testing has to simulate 300+ virtual users login into a web app and performing some different functionalities. Now the issue at hand is the login for the web app is configured using a users machine name and there credentials. The main problem that exist is simulating the virtual user's machine.
ie ...If virtual user 001 logs into the web app. The web app on the back end will look to see what machine is set up with virtual user 001. That machine name is tied to there credentials.
I know currently when we create a load test in Microsoft and set up the number of virtual user we want the agent to run and create, but the issue is even though we can run it using ip switching to simulate calls from different IP addresses it doesnt adress the issue with physical machine name its just based on request i believe. I dont know if there is a way to ensure that there is a 1 to 1 between virtual users and machine name and how to get the machine name that, the virtual user will be using to run the test.
I've also read about deploying our load agents using ARM template? I don't know how that would look or could be done. I would like the solution to use Microsoft existing technology whether its on prem or in cloud. We would like to stay on Microsoft path so we can get the report that gets generated after running the load test that tells us response time and all other included information.
The solution has to include a way for us to create a relationship between
1. Virtual User and a machine name.
2. We would like to create a format for naming the virtual machine name like exampl. vmagt-0001 .... vmagt-1000 . That way we can set up these virtual machines on the web app config so when the
agents run the virtual users it will use the associated virtual machines.

Related

Share Azure Virtual Machine

Is it possible to setup a virtual machine on Azure and have that same instance of the virtual machine visible to multiple users?
We are an ISV. Our users are scattered globally. We would like to use an Azure virtual machine to guide users though setup of our software. Ideally our helpdesk would demonstrate our software on the VM while the new user looked on.
The software is ultimately installed on the users local machine. The virtual machine is just for offering support.
We see this as a potential alternative to a product that allows the helpdesk to remote into the user's machine.
Yes. You can just use the users and groups dialog in Windows Server to create multiple users, and then give those users Remote Desktop access. This isn't specific to Azure though, it's just the capability of Windows Server.
See: https://technet.microsoft.com/en-us/library/cc732336.aspx
On the other hand there is a limit for user quantity by default. See
https://serverfault.com/questions/549297/how-to-enable-the-2-concurrent-1-console-sessions-on-windows-server-2012

Remote machine accessing a deployed SSRS report

I have created an SSRS report using the Business Intelligence reporting service of VS 2012 and I have also successfully deployed it on the web service url i.e. http://computer name/ReportServer, the deployment was successful. The main purpose of deployment is to enable the client to access these reports from their machine, and I really do not have much idea on how to proceed with that, what and how do I give permissions to the client and how does the client access the above url in order to view the reports? Please elaborate I was not able to find much online help on this and its my first venture in this domain. Thank you very much in advance!
Open Reporting Services Configuration manager from windows Start
Connect to your Report Server
basically Two ULR tabs are available there
Web Service URL
Report Manger URL
you want to go to Web service URL
assign Some virtual Directory then use that URL for client PCs.
if not work use IP address in place on Computer Name
for credentials use Service Account Tab in this Manager
check Use another account
and what ever domain username is given here will be used for client to log in .
i Had same issue, i jst replaced computer name with deployed server IP address,
http://10.60.0.0/ReportServer

Azure Hosted Service: VM Machine Name

We have an app deployed as a hosted service on Azure. If we deploy the service specifying that we want 10 instances it will create 10 virtual machines that host the app. My question is if in the code of the app I reference System.Environment.MachineName am I guaranteed to have a unique Machine Name for each instance the app is running? So, in theory if I had a page that simply displayed the System.Environment.MachineName every time it was hit, eventually would I see 10 different machine names? Since you can obviously have multiple virtual machines running on the same box, I wasn't sure if technically you could have two instances on the same physical hardware and if you did, would both of those return the same System.Environment.MachineName? Or is System.Environment.MachineName unique across virtual machines on the same box.
If I'm not guaranteed 10 unique names, is there any piece of data I could get from the code that would identify the instance uniquely enough so that I could identify when all 10 instances of my app have been hit?
The below identifier unique for each deployment of the role, check if this helps
http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.deploymentid.aspx
Are we talking Web / Worker Roles hosted in a cloud service? If so, you can use the RoleEnvironment class to obtain these details: http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.aspx

Load-Balancing Windows Azure Instances Locally

When deploying multi-instance WebRole to Windows Azure Emulator, the Emulator is running multiple IIS Express instances of the WebRole, each one on a reserved local IP, like:
127.255.0.1
127.255.0.2
127.255.0.3
The problem is that i want to access the WebRole as if it was really deployed on Azure, i need to check that Session State is persisted between instances.
Since my Session Id is stored on a cookie, each time i'm connecting to a different instance i need to manually 'inject' the cookie to the request to check session data (since the browser considers the IP of the next instance as different domain).
Is there a way i can use a hostname (on a Windows 7 machine) that will point itself randomally to one of those IP?
Well, apparently the emulator does load balance all request between instances:
Clicking 'Debug' on the Cloud Project will open a web page with an IP that is the virtual Load Balancer (usually 127.0.0.1:80 if not taken already).
Yet, there were 2 things that misled me in the first place:
1. The list of multliple IIS Express instances each with it's own binding (image attached).
2. Implicit Affinity:
I made the my web application output the instance-id and kept getting
the same instance-id all the time. the reason for that is (i guess)
the affinity that the emulator enforce (probably using cookie
comparison).
Conclusion:
If you want to manually load balance or to control the affinity yourself, you can leverage IIS Server Farming capabilities (as i did eventually) to emulate load balancing.
(Apache/Nginx as some kind of 'Reverse Proxy' is also a good option, but i preferred to stick with products that are already installed and in-use).

Load Balancing virtual machines via Service Management API - MS Azure

I found the below article to create a virtual machine and load balance with an existing virtual machine.
https://www.windowsazure.com/en-us/manage/windows/common-tasks/how-to-load-balance-virtual-machines/?_sm_au_=iVVNR02FVsMFjVB3
But how can the same be done via Service Management API.
The related tags i found in the POST request to create a VM are ,
LoadBalancedEndpointSetName, LoadBalancerProbe
Where do I get started ? How do i connect two virtual machine via API ?
Thanks.
The following is from a post on Virtual Machines by Michael Washam, however the idea is the same for teh Windows Azure SErvice management REST API:
A load balanced set is simply configuring the same endpoint on
multiple VMs and setting another property called the
“LoadBalancedEndpointSetName (or LBSetName in PowerShell) with a
common name to group the endpoints together. This functionality is
abstracted away within the Windows Azure management portal but it is
good to go into in detail because from the command line you can have
much more control over the load balancer by using custom health
probes.
As Michael Washam points out you just need to use the same endpoint for the two Virtual Machines and provide the same LoadBalancedEndpointSetName to the Create Virtual Machine Deployment operation.

Resources