I believe I have some useful information about how/when to test performance, but first I wanted to touch on something that you said that stood out for me: "but I don't want to force any kind of premature optimization or putting pressure on the dev-team"
This indicates to me that the relationship you have with your dev team is perhaps not the most constructive. Your job as a QA engineer is to push for quality, but quality is the responsibility of everyone on your team. It shouldn't be a fight, the developers and project managers should be on board and behind anything that will increase quality. If that is not the case, perhaps there are bigger issues... I would absolutely push and put pressure on my team to perform performance testing. Developers, and the entire team should be proud of their work and how it performs is a huge part of any project. How can optimization be premature? Building and designing with performance (and security) in mind should absolutely be a priority and not left to clean up at the end (when it's already too late).
There are a few goals you may have from performance testing.
- Some SLA with your customers to perform within a
certain time range and need to measure this.
- Predict how much hardware you need in your production environment under expected load. (Capacity Planning)
- Find and fix bottlenecks and bugs that manifest while under load.
1 and 2 can be useful to convince your team to do some performance testing, PM's will like 1, and PMs and Ops will like 2 and you and your dev team should like 3.
What I have found even through basic stress testing and monitoring of performance counters is that there is usually a lot of low hanging fruit, very simple fixes and tweaks that can make a huge difference in performance. People will find things like they are loading massive amounts of data into memory when they don't need to, or maybe there will be one specific query that is inefficient and slowing everything down, or some product or hardware settings are incorrect and causing problems, OR the hardware itself just isn't set up right - you've got great network throughput, plenty of CPU and only 2gb of memory, yet your app is memory intensive, or vice-verse.