public Object construct() { while (true) { try { if(transfer.getBytesSent() >0 && _starttime==0){ _starttime = System.currentTimeMillis(); } long starttime = System.currentTimeMillis(); long startbyte = transfer.getBytesSent(); Thread.sleep(500); FileTransfer.Status status = transfer.getStatus(); if (status == Status.error || status == Status.complete || status == Status.cancelled || status == Status.refused) { break; } long endtime = System.currentTimeMillis(); long endbyte = transfer.getBytesSent(); long timediff = endtime-starttime; long bytediff = endbyte-startbyte; updateBar(transfer, nickname, TransferUtils.calculateSpeed(bytediff, timediff) ); } catch (InterruptedException e) { Log.error("Unable to sleep thread.", e); } } return ""; }
@Override public SampleResult perform(JMeterXMPPSampler sampler, SampleResult res) throws Exception { String recipient = sampler.getPropertyAsString(FILE_RECIPIENT); String filePath = sampler.getPropertyAsString(FILE_PATH); res.setSamplerData("Recipient: " + recipient + "\r\nFile: " + filePath + "\r\n"); OutgoingFileTransfer transfer = mgr.createOutgoingFileTransfer(recipient); transfer.sendFile(new File(filePath), filePath); waitForTransfer(transfer, sampler.getXMPPConnection().getPacketReplyTimeout()); res.setResponseData(("Bytes sent: " + transfer.getBytesSent()).getBytes()); return res; }
long p = (transfer.getBytesSent() * 100 / transfer.getFileSize() ); progressBar.setValue(Math.round(p)); } ); String bytesSent = format.format(transfer.getBytesSent()); String est = TransferUtils.calculateEstimate(transfer.getBytesSent(), transfer.getFileSize(), _starttime, System.currentTimeMillis());
Log.d("percent", new Long(transfer.getBytesSent()).toString()); if (transfer.getStatus() == Status.error) { Log.e("percent", "Error " + new Long(transfer.getBytesSent()).toString() + " " + transfer.getError() + " " + transfer.getException()); transfer.cancel();