Performance testing in neoload - performance

I am new to performance testing and I have a scenario in which there is an interviewer login in into the application and conducting an interview with the client.the candidate has to login at the same time and enter into the same interview session with the interviewer.can any1 please help me with how I can record the scenario.
Thanks.

I think you need to record it in two separate sessions: first as the candidate and while you recording it you need to have another browser as the interviewer.
Once that's done then you start a new application with the candidate again but you would record the interviewer's action with the tool.
I think the hardest parts will be correlating sessions and founding rendezvouses points.
Let us know how you got on.

I tried with incognito and the normal window..I could run successfully.but another obstacle came my way when I reached the video part..it said some websocket issue.not sure what it is.will have to debug on it.plz help if any1 has knowledge on this.btw I'm using neoload
Thanks

Related

Spring listener cotainer - create and stay idle upon explicit start

I was looking for way to create spring's DefaultMessageListenerContainer
and put it initially into "idle" state and start it explicitly.
Now, I've found a way through autoStartup property
and of course setting it as p:autoStartup="false".
Like:
<bean id="mqLsnr" class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:connectionFactory-ref="cf"
p:messageListener-ref="lsnr"
p:destinationName="someQueue"
p:acceptMessagesWhileStopping="false"
p:autoStartup="false"/>
My scenario is that I have two clustered nodes where I would like
listener to be prepared and stay idle until explicitly started (by other means
what is not relevant for discussion).
Does anyone has better suggestion/idea/tip as such would be
very welcome and appreciated.
I understand that this question is not very best suited for stackoverflow
but spring crew chose it as alternative to their forums where I'd post
it otherwise.
Thanks in advance
Does anyone has better suggestion...
This is the proper technique; what do you perceive as being an issue (the reason for needing a "better" solution) ?
Well, after testing for a while, this seems to work quite OK.
So if no one has some objection this could be closed :)

Optimal algorithm to follow all Twitter users

What is an optimal algorithm to follow all Twitter users using the twitter API? I have been wrapping my mind about this issue and I cannot find any optimal iterative approach to this.
Thanks in advance for any suggestions.
Besides the case of "why would you do such a thing?" and "this will get your IP banned", etc.
This shouldn't be all that different from writing a web crawler. I would start off by finding a few root sources and throwing their follows/followers into a priority queue ordered by number of follows/followers the user has, ignoring follows/followers you've already visited. Then visit the users using the priority queue to find the user with the most new follows/followers, keeping the pq updated as you go along.
Again, this sounds like a terrible idea to implement in practice. Twitter had 190 million users in July 2010!
As long as you have a theoretical machine, so time and number of API calls doesn't matter, the solution is simple. Every user has a unique id. A user I am following who created his account last week has an id of 229,863,592, so let's use 250,000,000 as the theoretical end point. You can start with an ID of 1, and use the API to follow each user from 1 to 250000000. Anyone who has deleted their account or has been suspended will return an error when you try to follow them. The Twitter API for following 5,000 users at a time by id is:
http://dev.twitter.com/doc/post/friendships/create

How can I visit a webpage without incrementing the hit counter?

I frequently visit a certain page on the web to view the hit-counter, but my visit is counted every time and it's inflating the number of actual hits. Is there a way to visit the page without adding another hit to the hit counter?
In this case, the hit counter implementation is broken. Hits should only be counted by unique users usually. Otherwise any goon could set a reload bot and blow out the numbers on the counter. A real counting solution is going to be using something like the analytics API from google (or other analytics implementations) which will give you dashboard access to the real visibility of the site.
There is no perfect way to solve it. But a pretty good approach is setting cookies on visitor's browser. Then, keep counting only if that cookie did not visit your page yet. The biggest problem with this approach is that keeping track of every single visitor on your page could potentially lead you to a huge database.
if you want implement the hit counter yourself then what you can do is use 'sessions' and only increment hit counter when the session isn't present in the server with existing ip. but i don't think there is a way for you to control hit counter on someone else's website.
Try to add your IP to hit counter and block it in the code or you can use an javascript disable plugin .. web developer plugin for FF and chrome does that too.

GWT Grid - how to measure rendering time on client

we've got an application developed in java, with GWT providing the frontent. The application is used on a variety of hardware specifications, e.g. also on older machines. Of course users complain about performance.
We'd like to collect profiling data from real-world users. So far we can measure the pure server-side duration (that's easy) and the duration of the network roundtrip (not so easy, but we managed that).
The hardest part for us is measuring the time elapsed between "user clicking on search button" and "first xxx rows of grid have been displayed".
Any idea?
Thanks
Holger
I would play around with creating a timestamp at the start of the page load and a timestamp at the end. I believe that "the beginning" would be "onModuleLoad" and the end would be after your last element/widget is added. I hope I have given you a good idea of where to start. You can play with moving these timestamps around to mazimize the time difference that you get. Once you feel confident that you are getting the rendering time, you can save the time difference in a database so that whenever anyone uses your page you get more user data.
Try using SpeedTracer, it's a google chrome plugin developed by google itself
There is no full-stack solution at the moment as far as I know. What you could build internally is a combination of remote logging, gwt lightweight measurements and deferred binding magic.
The first part is to understand that all RPC events and initialization sequence are already measured and how to plug in into that: http://code.google.com/webtoolkit/doc/latest/DevGuideLightweightMetrics.html
The second part is adding Deferred Binding magic to measure onSuccess() method execution time of application Callbacks. The inspiration (but not a solution) could be found here: http://josephmarques.wordpress.com/2010/11/29/performance-monitoring-using-gwt/
The final part is delivering back to client. Here you may use gwt-log or new gwt logging possibilities. Not sure if they implemented that in JDK logging though.
I was thinking to create an embeddable open source library today as we have solved exactly the same problem recently and in process of porting that to GWT 2.0 :)
But I guess it will take some time from idea to implementation...
Hope it helps.
Dmitry
You can use the Duration class available on GWT Client side. com.google.gwt.core.client.Duration
It is a utility class for measuring elapsed time on the client side.
Example usage:
Duration duration = new Duration();
doSomething(); //Returns the number of milliseconds that have elapsed since this object was created.
GWT.log("time taken for doSomething() to complete: "+duration.elapsedMillis());
Documentation
More examples

What you do as developer with non-bugs client requests, f.e small fix in UI? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I am only one person working on project - so I am developer without PM above me. I finished portal, hovewer client from time to time attacks me with request such as "make font bigger" or change margin in css or make button which makes "xxx and yyy".
There are simple task, sometimes only for few clicks, but it takes my time and I hate doing such tasks. On the other hand I understand those people, while sometimes small fix helps them a lot in work. What say them on communicators - it's hard to ignore them. Is disabling communicators best solution - but I need it to communicate with my co-workers.
What you do in such situations?
Create an established queue where your users can submit requests, in a manner that doesn't disrupt your day-to-day workflow.
From the sounds of this you are getting requests via a communication channel that you check regularly, you might try to move it off to the side.
Cutting off communication is NEVER a good solution. Also, I would formalize a process and time schedule for when you get to those types of requests. I've found great success with this simple approach.
If you're working for yourself, you clients are your single most important reason you're there. They are your business! Thus, it's always good practice to keep them happy.
That being said...
You should always always always have a clearly defined contract when working on any sort of software project for a client. You need to ensure that your deliverables are clearly expressed and defined both to you and to your customer. Once you've got that taken care of you need to also ensure that there is a section that covers "future maintenance requests" and you can then work with your client to ensure expectations are acceptable on both ends of the spectrum and your time spent on them is both accounted for and part of the original plan moving forward.
The fewer open ends, the better.
Afterwards, implementing a system to manage/handle customer requests for each of the projects/websites you've implemented can also be a great help. Tools like FogBugz from one of this sites founders do a great job in handling customer interaction and bug/feature requests. Check it out.
Although not a technical "bug", usability by the client is the most important bug to the user. If you want to continue business with the client, the small things need to be worked.
fixing small bugs == client happiness == more work == more $$
Deploy a system for tracking bugs and tracking change requests (at my office we use MKS, which is also used for source integrity). Then when a user has a request, they go into the tracking system and enter the request as the appropriate type. Ideally they should also be able to attach a severity/priority indicator to it so that the outstanding requests can be ranked. You can then go in and see all outstanding requests, and prioritize them. Since they are not being directly sent to you, you won't feel inundated with requests, and the users will find that they can track the status of their requests more easily than by calling you and asking "when will my fix be done?"
For yourself, you can check the list a few times a day and see if there are any high priority issues to work on. Then schedule some time on a regular basis (one day a week, or an hour day, whatever feels reasonable) to work on the lower priority issues.
I think you have to consider your ongoing relationship with your customer. If a customer spends a few minutes of your time occasionally you may consider that the cost to you is minimal and the benefits of the contact may outweigh the cost anyway.
If the requests are coming in thick and fast, you maybe need to talk to your customer about an hourly rate for changes or cover them in a chargeable support contract.
Do not change your path on each feature request that you get. Collect feature requests for a while, then prioritize the requests, then select the ones that make sense, and then work on the next release.
In my opinion it is good to follow some fixed release schedule: it makes the development process more controllable, improves software quality, and your customers know what to expect.

Resources