You are on page 1of 8

Neoload Challenges/Issues faced in projects & Queries related to Tool

Prepared By : Seema P Ghonasgi, ATS Performance Team

This documents gives information on problems/challenges/issues faced using Neoload tool in projects. It also contains answers to queries being asked to Neoload Support team generic to tool. 1) Problem Description : Not able to record a application which uses flex Granite DS server URL : https://uat-cisco.employee.com/comp/login/workscapelogin.jsp User Credentials : aaazeemi/ciscotms

Solution : When we do a Flex recording Neoload tries to detect back end server if it is using BlazeDS or GraniteDS. In your case. Neoload was not able to recognize which one it was. To workaround that, in Neoload select menu "Edit-->Preferences-->Projects settings tab-->Module Manager. Select the radio button related to "GraniteDS". Then we should be able to do recording successfully. At the end of the recording, Neoload will prompt you to add some libraries in order to decode some requests. We will have to add granite-config.xml with some jars files. If we do not know which jars files, we can also point to the WAR file located on the server side. Neoload will be able to automatically get the right jars. GraniteDS allows the developers of application to customize the way objects are sent over the network. In that case, Neoload won't be able to decode the AMF requests until we load the specific jar files that specify how to decode them.

It's mandatory if we want to replay our script with Neoload and most important if you have to handle dynamics parameters. The granite-config.xml describes the GraniteDS custom flex application mechanisms, so it's mandatory as soon as developers have customized the Flex requests. Since these informations are specific to each application, its recommended that we try to get in touch with the developers of applications so they can provide us all these files. Here is a link from documentation regarding GraniteDS: http://www.neotys.com/documents/doc/neoload/3.2.x/en/html/frames.html?url=ch 05s02s06.html#reference.preferences.project.amf.granite

2) Problem Description : machines

Increasing JVM heap in controller and generator

Solution : This is path to increase JVM heap size in controller :


<NeoLoad>/bin/NeoLoadGUI.vmoptions

Defining memory size, specifically the heap size of the Java Virtual Machine, is done by modifying the two files <NeoLoad>/bin/NeoLoadGUI.vmoptions and <NeoLoad>/bin/NeoLoadCmd.vmoptions, increasing the number of Mb in a VM argument. For example, to set the heap size to 1024MB, define a VM argument with -Xmx1024m.

For the load generators, the procedure is as follows: 1. Edit the <loadgenerator>/conf/agent.properties file 2. Edit the lg.launcher.vm.parameters property in the LoadGenerator category to set the new limit in Mb. 3. For example: lg.launcher.vm.parameters=-Xmx512m sets the limit at 512Mb. 4. If you are working on a stand-alone load generator, restart the load generator process or service. If it's a load generator integrated into the controller, stop and then re-start NeoLoad.

3) Problem Description : Defining Ramp up for a test with a criteria to run for x no of users for y of iterations Solution : If duration policy is by iteration, we can ramp up using a duration per second. The ramp has to be based on iterations. That's why the option does not exist. However, there's another way to achieve this goal. Choose an iteration duration policy and a constant load policy with 5000 Vu's, 1 iteration. Then

under population, click on the "Advanced" button. You can start your virtual users in a specific period. For eg: for 5000 users doing one iteration and total ramp of 2 minutes, if you start the virtual users within 116 seconds, Neoload will start around 43 Vu's every 1s for 1 iteration. 4) Problem Description: Users ramping down automatically while running with higher ramp up rate. The simulation is as :I simulated 5000 users load with ramp up of 2 min. I noticed the following graph behaviour : The users ramped up in between 4500 to 4600 users and then started reducing on its own till Users count became zero. Solution : This seems to be related to one bug fixed in patch 3.2.3. Sometimes, Neoload is not able to start lot's of virtual users within a short period. You can download that fix here: http://support.neotys.com/neoload/patch/neoload_windows_3_2_3_patch.exe Note that you will have to update all your load generators to that version. It can be done through the Controller UI. Here is a link from our documentation: http://www.neotys.com/documents/doc/neoload/3.2.x/en/html/frames.html?url=ch 08.html#reference.runtime.lg.advanced.smartupdate That patch should be officially available next week. 5) Problem Description: A script which generates a code with several Poll calls with a flex based video streaming application. Solution : Neoload prompts to generate Script appended by AMF which includes Polling (Push technology) in a loop. When you record an application using PUSH technology like polling, Neoload recommend you to use our simplified VU appended with AMF created post recording. The reason is that VU is automatically designed to simulate a real user. The polling requests will be embedded inside a fork action. That is to say that it will be played in parallel of your main script. Note that for Flex part, Neoload automatically handles some known identifiers like DSId, CorrelationId, messageId and ResponseURI. 6) Problem Description: Total number of users launched is more compared to current users count data in Neoload Solution: This mechanism in Neoload happens is to have x number of users (expected peak load) running on the system. As an instance, If you run a test with let's say 10 concurrents users (constant load), as soon as one of

this user has finished its scenario, Neoload will start a new instance to maintain the load. That's the total users launch will be always equal of higher than your load configuration. The main point is that you will always have 10 concurrent users running as expected. 7) Problem Description: Load generator failure during running a test.

Solution: This happens when there's a port conflict with the load generator. So as to avoid this issue, following steps can be followed : Stop your remote Agent Open a dos console and launch "netstat -an|more" Make sure that port 7100 and 7101 are not there in listening state. Start your Agent Launch again "netstat -an|more" You should have port 7100 listening

Start a quick test from the controller to see if that remote LG is working.

8) Problem Description: Facing issue while recording the MCW application, It was giving timeout error but was working manually. Solutions:

Step1: Import the certificate from Neoload


Open Mozilla Click on Tools->Options->Advanced->View Certificates->Import-> Browse C:\Documents and Settings\symehmoo\ApplicationData\Neotys\Neoload\v3.2\conf\DO_N OT_TRUST_NeoLoadRoot.cer Please check all the three check boxes. And Click on Ok

Step2:

To change the timeout setting

in the config file controller properties (Open with

C:\Program Files\NeoLoad 3.2\conf \Open Notepad) [Recorder] controller.recorder.ssl.port=8091 controller.recorder.so.timeout=60000 controller.recorder.client.so.timeout=60 (to) controller.recorder.ssl.port=8091 controller.recorder.so.timeout=600000

controller.recorder.client.so.timeout=600 Step 3: Scroll down in the config file and go to the Runtime Configs [Runtime] maximum.content.errors.stored=10 timeout.loadGenerator.stop.wait=120000 commandline.info.logger.period=10000 commandline.warn.cpu=false commandline.warn.memory=false runtime.so.timeout=300000 runtime.connection.timeout=300000 compact.period.nolimit=5 compact.period.iteration=5 static.request.optimization=true runtime.max.post.store=100000 http.strict.mode=true runtime.js.optimizationLevel=0 runtime.max.upload.size.memory=10 collected.lg.infos.timeout=300000 http.querystring.encoding=UTF-8 response.cache.optimized=false Now, Add config i.e after URL.encode.space.plus=false at the end of the above Runtime

response.cache.optimized=false

This is how it will look after appending the above line runtime.max.upload.size.memory=10 collected.lg.infos.timeout=300000 http.querystring.encoding=UTF-8 response.cache.optimized=false URL.encode.space.plus=false Note: The below step is not recommended for all the application It is used when the application cannot understand the URL with plus Ex: foo+bar (Here, + means space) Meaning, Neoload is sending the url with + instead of %20 and the application does not understand that encoding So we do the above settings So that the url will go as %20 and not +. Close Mozilla, Neoload and start the recording

You might also like