A method of testing performance of a communications device, the communications device including a processor, a memory, and a SIM running a SIM Applet and operating in a wireless communication network, the method comprising the steps of: a) a test server sending a payload having a payload size to the device, b) the device processor using the payload to fill a buffer of restricted size in the memory, the buffer size being smaller than the payload, c) the processor signalling the SIM to indicate that data is available in the buffer, d) the SIM instructing the processor to purge the buffer, e) repeating steps c) and d) until all of the payload has been written to the buffer and purged, f) the buffer signalling the test server to indicate that all of the payload has been written to the buffer and purged, g) the test server determining a time duration from start of a) to end of f) as a downlink performance indicator; wherein the test server determines a download speed parameter value according to the algorithm: Download Speed = Payload t data − t comms in which, - Payload is size of the payload; - t data is time from start of step a) to end of step f) and - t comms is time for the signalling of steps c) and d), as measured and calibrated through lab testing; wherein the method further comprises performing an uplink test in which: h) the SIM sends data to the buffer to fill the buffer with L buffer bytes, i) when the buffer is full the device processor uploads the buffer data to the test server, j) steps h) and i) are repeated n times, k) the test server determines the uplink speed as indicative of uplink performance, according to: Uplink Speed = ∑ m = 1 n L buffer t dataup m − t commsup in which: - L buffer is the size of a payload generated on the SIM for each buffer fill, and equals the total size of the buffer; - t dataup (m) is time needed for the m-th iteration of step i), the time for sending the payload to the server, calculated by the server as the time from initial packet received to final packet received; and - t commsup is time for the communication between the buffer and the SIM, as measured and calibrated through laboratory testing. a) a test server sending a payload having a payload size to the device, b) the device processor using the payload to fill a buffer of restricted size in the memory, the buffer size being smaller than the payload, c) the processor signalling the SIM to indicate that data is available in the buffer, d) the SIM instructing the processor to purge the buffer, e) repeating steps c) and d) until all of the payload has been written to the buffer and purged, f) the buffer signalling the test server to indicate that all of the payload has been written to the buffer and purged, g) the test server determining a time duration from start of a) to end of f) as a downlink performance indicator; wherein the test server determines a download speed parameter value according to the algorithm: Download Speed = Payload t data − t comms in which, - Payload is size of the payload; - t data is time from start of step a) to end of step f) and - t comms is time for the signalling of steps c) and d), as measured and calibrated through lab testing; - Payload is size of the payload; - t data is time from start of step a) to end of step f) and - t comms is time for the signalling of steps c) and d), as measured and calibrated through lab testing; wherein the method further comprises performing an uplink test in which: h) the SIM sends data to the buffer to fill the buffer with L buffer bytes, i) when the buffer is full the device processor uploads the buffer data to the test server, j) steps h) and i) are repeated n times, k) the test server determines the uplink speed as indicative of uplink performance, according to: Uplink Speed = ∑ m = 1 n L buffer t dataup m − t commsup in which: - L buffer is the size of a payload generated on the SIM for each buffer fill, and equals the total size of the buffer; - t dataup (m) is time needed for the m-th iteration of step i), the time for sending the payload to the server, calculated by the server as the time from initial packet received to final packet received; and - t commsup is time for the communication between the buffer and the SIM, as measured and calibrated through laboratory testing. h) the SIM sends data to the buffer to fill the buffer with L buffer bytes, i) when the buffer is full the device processor uploads the buffer data to the test server, j) steps h) and i) are repeated n times, k) the test server determines the uplink speed as indicative of uplink performance, according to: Uplink Speed = ∑ m = 1 n L buffer t dataup m − t commsup in which: - L buffer is the size of a payload generated on the SIM for each buffer fill, and equals the total size of the buffer; - t dataup (m) is time needed for the m-th iteration of step i), the time for sending the payload to the server, calculated by the server as the time from initial packet received to final packet received; and - t commsup is time for the communication between the buffer and the SIM, as measured and calibrated through laboratory testing. - L buffer is the size of a payload generated on the SIM for each buffer fill, and equals the total size of the buffer; - t dataup (m) is time needed for the m-th iteration of step i), the time for sending the payload to the server, calculated by the server as the time from initial packet received to final packet received; and - t commsup is time for the communication between the buffer and the SIM, as measured and calibrated through laboratory testing.