public void run(){
			if ( typeTest == StressTestMain.CHAIN_TYPE){
				if ( user.connect() )
					setStatus("user #: " + numOfThread + " \n\t Status: connected\n");
				else
					setStatus("user #: " + numOfThread + " \n\t Status: connection error\n");
			}
			String login = "Test" + numOfThread;
			try {
				user.register(login, login, login + "@.ya.ru");
				setStatus("user #: " + numOfThread + " \n\t Status: register completed\n");
			} catch (XMPPException e) {
				e.printStackTrace();
				countRegisterError++;
			}
			
			if ( !user.login(login, login) ){
				countLoginError++;
				return;
			}
			setStatus("user #: " + numOfThread + " \n\t Status: logged\n");
			
			try {
				user.loadInitialProperties();
				setStatus("user #: " + numOfThread + " \n\t Status: loadInitial completed\n");
			} catch (XMPPException e) {
				e.printStackTrace();
				countLoadInitialError++;
			}
			
			try {
				user.getKeyOverDHManager();
				setStatus("user #: " + numOfThread + " \n\t Status: key is to get\n");
			} catch (XMPPException e) {
				e.printStackTrace();
				countGetKeyError++;
			}
			
			try {
				user.getBalance();
				setStatus("user #: " + numOfThread + " \n\t Status: balance is to get\n");
			} catch (XMPPException e) {
				e.printStackTrace();
				countGetBalanceError++;
			}
			
			try {
				user.makeSearchAndGetFiles();
				setStatus("user #: " + numOfThread + " \n\t Status: search and getfiles comleted\n");
			} catch (XMPPException e) {
				e.printStackTrace();
				countSearchAndDownloadError++;
			}
			
			user.disconnect();
			setStatus("user #: " + numOfThread + " \n\t Status: test complete\n");
			done();
		}