Assuming you're using OpenSSH you can configure your
~/.ssh/config file for each, then you won't have to specify a user either, you can create your own name:
then when you do
ssh host1 it will do that automatically, or, since you will use
host1 as other users too you can do
and you can do the same for each host you want.
Any host that isn't matched by an entry in your ssh_config(5) file will use the default behavior--or use the defaults that are specified in ssh_config at the global setting, i.e., not inside a host block
ssh_config doesn't support matching on usernames, but you could write a shell script to detect that for you. Here's a fragile one in bash that assumes your username/host is always the first argument and will break if it is not:
if [[ "$1" =~ ^testuser@ ]]; then
command ssh -i ~/.ssh/id_rsa-test "$@"
command ssh "$@"