WiFi Speed Test for Android Guide

WiFi Speed Test for Android

wifi_analyzer_promo5_png

Content

Introduction
Online demo
How to test the speed between two mobile devices
How to test the speed between a mobile device and a computer
How to test the Samba share speed
How to test the network stability (continuous test mode)
How to use Test results list
Understanding wireless network warnings and network details
Use Ethernet mode

Introduction

After I received a few feedbacks from my users that the functions of my application are not clearly understandable  (and they may be right because I am a developer and look at my program in developer glass), I’ve just decided to write a detailed guide.

In this post, I will guide you how to use the WiFi Speed Test for Android application, step by step.  You need to perform only a three-five easy and simple steps to test your network.
First of all, here is a schematic graphic about the theoretic topology:
graphic
As you can see, this is a client-server application, because the traffic goes from the client to server (or from server to client in download mode) via local network. So the test has two basic components: this application started in client mode, and this application started in server mode on other mobile/tablet, or my wifi_speed_test_server program started on a computer.
Just imagine it as an Internet speed test, where the remote server is not located on the Internet but located on your local network. That’s the reason why you need a second device that can be an other mobile device or a computer. This is the only way to measure the speed of your local network.

Before you are reading more, make sure that the WiFi Speed Test application is installed on all of your devices and already running and your devices are connected to the same network.

Online demo

I created a few demo animations to make the usage of my application easier. You can find them here: online demo animations

Also a youtube video is available:

Without ads

From now, you can buy the ad free version of WiFi Speed Test: Get WiFi Speed Test Pro on Google Play.

Update (2016.10.03): iperf support added

Update (2017.03.21): Discount: 50% OFF for WiFi Speed Test Pro

How to test the speed between two mobile devices

Note: use this test if you want to measure the speed between your mobile devices and you have at least two Android based mobile devices (does not matter if it is a mobile phone or a tablet).

  • step1: Take one of your mobile, scroll down and select TCP SERVER mode
  • device-2013-11-26-184736
  • step2: Click on Start. Note the displayed IP address (e.g.: 192.168.20.4). It is displayed in the next form: 192.168.20.4:1212 (where 1212 is the default port used by the application).
  • device-2013-10-07-193645
  • step3: Take the other mobile, scroll down, select TCP CLIENT mode.
  • step4: Give  the above IP address (in my example: 192.168.20.4) for Remote server address.  When you start the test, these values will be saved automatically.
  • device-2013-11-26-185012
  • step5: Click on Start, and the test will begin. After the test finishes, scroll to the right side and see your result in the result list.
  • device-2013-10-07-193312device-2013-10-07-193318

How to test the speed between a mobile device and a computer

Note: use this test if you want to measure the speed between your mobile device and a computer. Your computer can run Windows or Linux/Unix, both operating systems are supported.

  • step1: Download my wifi_speed_test_server.py or wifi_speed_test_server.exe (older name: tcpserver.py or tcpserver.exe) program for your computer. The python script also runs on Linux, the .exe is designed for Windows. You can download it from here.
  • step2: Before continuing, please read the tcpserver manual and do the required steps. Just for remember: start a cmd line and start it: python wifi_speed_test_server.py or wifi_speed_test_server.exe
  • step3: Take your mobile, scroll down and select TCP CLIENT mode.
  • step4: Give  the IP address of your computer (in my example: 192.168.20.4) for Remote server address (the way to know the IP address is in the tcpserver manual).  When you start the test, these values will be saved automatically.
  • device-2013-11-26-185012
  • step5: Click on Start, and the test will begin. After the test finishes, scroll to the right side and see your result in the result list.
  • device-2013-10-07-193312device-2013-10-07-193318

How to test the Samba share speed

Note: I assume you already have a configured Samba share. My application also handles if it needs authentication.

  • step1: Take your mobile, scroll down and select SMB CLIENT mode.
  • step2: Give the shared folder path, in the next form: IP address/shared-folder-name. For example: 192.168.20.4/my-shared-folder. If authentication is needed, set the Username, Password and Domain fields (they are optional parameters). When you start the test, these values will be saved automatically.
  • device-2013-11-26-185115
  • step3: Click on Start, and the test will begin. After the test finishes, scroll to the right side and see your result in the result list.
  • device-2013-10-07-193312device-2013-10-07-193318

How to test the network stability (continuous test mode)

Note: this type of test is intended for testing your network stability and in this mode you can discover your Wifi strength in all corners of your flat. This will keep testing the speed for as long as you want. You will need to manually stop it.

  • step1: Take your mobile, press Settings and go to Settings/Network Settings/Transfer Settings and select Transferred data size.
  • step2: select Limitless: until stop option than go back
  • device-2013-10-07-202359
  • step3: choose between the following test modes and start the test: How to test the speed between two mobile devices, How to test the speed between a mobile device and a computer
  • Tip (from v.1.6.1): during the test, select Current speed instead of Average speed so you can see the actual result. You can change the duration of the sampling period between 1 and 10 seconds in Settings/Network settings/Sampling period menu, so when you are using the Current speed mode, the result is calculated based on the last N seconds(default: 1 second).

How to use Test results list

In portrait mode, just scroll to the right side, you can find your previous results in this list. If you click one of the results, you can find the detailed information in the pop-up window. In landscape mode, if the screen width is at least 600 pixels, you will see the Test results list in the right panel.

device-2013-10-07-193312device-2013-10-07-193318device-2013-10-07-193323

device-2013-10-01-200459_10col

Understanding wireless network warnings and network details

This function is available from v1.6.1. If you scroll to the left side to the Wireless Network Details panel, you can find here a lot of useful information. You can check the basic information of your network like SSID, IP and MAC address, frequency, AP vendor and others.

device-2013-10-16-200114

The most important elements are the RSSI (signal strength) and frequency. If the signal power level of your network is lower than -75 dBm you will get a warning about it. Usually the higher signal power gives you better performance.
Also the application warns you if there are other networks using overlapping frequency. Overlapping frequencies can cause interference on your network (for example packet duplicating) and can decrease the performance. The algorithm is not too strict, it will only warn you if the difference is not higher than 11 MHz (2 channel) and the signal power strength is at least -75 dBm or higher.
Just an example: if the frequency of your network is 2462 MHz, than you will get warnings if there are other networks that are using the frequencies between 2451-4273 MHz and their signal power level (RSSI) is at least -75 dBm or higher. You can reach the best performance if there are no other networks within +-11 MHz compared to your frequency. Unfortunately, in crowded wireless environment you can’t avoid this type of interference.

Other options


Use Ethernet mode

  • If your device uses an Ethernet connection instead of Wifi, go Settings/Network Settings and enable Ethernet mode. In this mode all Wifi related update will be disabled.
  • device-2013-10-07-193251
Advertisements

53 Responses to WiFi Speed Test for Android Guide

  1. Adam says:

    This is a wonderful app and very useful! Thank you for putting it together

  2. Pingback: How to optimize your WiFi Network with Android | PZolee's blog

  3. mm says:

    Hi Zoltan,
    your wifi speed test app is great.

    I’m making some tries and found probably a little bug with 6144 packet size (using tcpserver at server side and app at client side):

    Waiting for an incoming connection
    Incoming connection accepted from: (‘192.168.1.101’, 43261)
    Push mode, starting sending, total data size to send: 104857600 bytes, block siz
    e: 6144 bytes
    Sending finished, sent data: 104859648 bytes
    Traceback (most recent call last):
    File “tcpserver.py”, line 147, in
    start()
    File “tcpserver.py”, line 105, in start
    data = s.recv(opts.rbuf)
    socket.error: [Errno 10054] An existing connection was forcibly closed by the re
    mote host

    It seems that the app closes prematurely the connection causing a tcpserver.exe crash.

    Thanks for the great work you are doing.
    M.

    • PZolee says:

      Indeed, thank you for the bug reporting. I will fix it in the next version.

      • mm says:

        Thanks Zoltan,
        I leave a feature request on google play, it could be useful not only TCP but also UDP test (not UTP, my mistype) to test maximum wifi performances.
        Also graphical visualization of throughput vs time would be really great.

        M.

  4. PZolee says:

    The problem with UDP is that this is not a lossless protocol. So you can’t test the maximum wifi performance with UDP because it has unlimited data rate. Why do you need UDP instead of TCP? (I just would like to understand the use-case).
    The graphical visualization is a good idea, I will think of it.

  5. Amina says:

    I’m trying to make an android application ,that tests the Wi-Fi speed, well to do that i need to upload and download a file ,to test the speed. Well what i understood from your article that i need two phones ,the first one will be the client ,and the second one will be the server. But ,i want to use only one android phone to test the speed through the AP, it mean’s that the phone will play the role of the client and the server in the same time ,well i don’t know if it a feasible thing or not ,please can someone tell me if it is feaseible or not ? Well this idea came to me in case when someone have just only one phone and he want to know his Wi-Fi speed. PS: i don’t want a loopback test. Thank you in advance.

    • PZolee says:

      Hi,

      It is not possible due to technical reasons. The kernel of the operating system is smart, and if you target an IP address that belongs to the device itself, it will catch the packages and process within the device. So no network traffic will be generated. That’s the reason why I cant make a “one-button” speed test that needs only one phone.
      The only way to do that with a single phone, if you have a phone with two network interfaces in different networks and you are creating special route rules in the router. But this is bloody complicated.

      ps: if you are using my speed test application, you can use your computer instead of a second android based phone to test the speed.
      So you need either two android-based phones/tablets or an android-based phone and a computer.

  6. Amina says:

    Thank you very much for your quick answer :).
    But i’m wondering , if a an android phone could have two network interfaces, i read that the device could have an IP address for Wi-Fi and for 3G ,for example. It’s possible for instance to have two different IP address for the same Wi-Fi (even they could be in different subnets it doesn’t matter ,maybe it will the work eaiser .. ) ,so that we can upload and download data to avoid the loopback ,and test the wi-fi speed.
    Mr Zoltán Pallagi ,what do youthink about the idea ?
    And thank you very much again 🙂

  7. Theo says:

    Hi Zoltan,
    tcpserver.exe 1212 -o nul -a does not seem to work. Nothing happens when I type it in the command window on my Windows computer. Path is correct.
    Visual C++ is installed.
    Any ideas?

    • PZolee says:

      Hi,

      What do you mean under “Nothing happens”? It does not display any message after starting just keep running in the console window.
      A screenshot would be nice, please attach one. Also try to start it in debug mode:
      tcpserver.exe 1212 -o nul -a -v

      • Theo says:

        Hi,
        Thanks for the reply.
        I do not know how to attach a screenshot, but the message I see, after runnining in debug mode, is:
        Local ip: 192.168.1.2
        Waiting for an incoming connection
        sending broadcast message to 192.168.1.255:1212 repeated endlessly

  8. PZolee says:

    It’s ok, the server is running normally. Just give the “192.168.1.2” ip address as server for the Wifi Speed Test application.

    • Theo says:

      I had already done that, but the test did not start, but after several restarts of my router it now runs ok. So it seems my router wasn’t working properly.
      Another question is how can I stop tcpserver?

  9. PZolee says:

    Just press ctrl+c in the window where the tcpserver is running

  10. Ron Brookes says:

    Hi Zoltan, Program works but my test results for my Netgear 6200 seem low. 0.8Mbit/s Up; 14.95Mbit/s down. I think these should be better. Any ideas why?

    • PZolee says:

      Hi Ron,

      I think there are two issues, one related to the bloody slow upload speed, an other one related to the slow download speed taking into consideration that the router (I assume R6200 the exact type) is an AC router.
      So I need some more information:
      First of all, what is the displayed link speed? ( you can find it at the top of the screen in WST app). This is very important, if you want to use the full bandwidth of this ac router, it should be 867 Mbps. But usually this is only between 65-130 Mbps for smart phones.
      The explanation of the slow download speed can be if this value is only 54 Mbps or slower.
      Related to upload speed: I don’t have any idea. It should be almost the same as the download speed.

      I wrote an article about how to find out the reason of the bad wifi, please read it, hopefully it will help you:
      https://pzoleeblogen.wordpress.com/2014/01/27/how-to-optimize-your-wifi-network-with-android/

  11. krishna mohan tripath says:

    Connect best
    start

  12. Please start it my fantatic devloper serzoltan pallagee jee.
    thank mant.

  13. nick says:

    very cool app – love it.
    do you have a python client as well? so that i can perform PC to PC testing?

  14. Many thanks for a wonderful Android app. How can we get rid of the ads though? Can we make a donation to get rid of them?

  15. Pingback: WiFi Speed Test – 2.0.1

  16. John B. says:

    When attempting to setup a phone as the server, I receive the window that states: Waiting for an incoming connection…Please connect your other device in client mode to []:1212.

    There is not an IP address listed inside the brackets. I’ve tried on two phones, HTC Droid DNA and HTC One (M7)

    • PZolee says:

      Really interesting. If you scroll to the left side to the wireless network details panel, can you see the network details? Here you can find the ip address.

  17. Pingback: Local network speed test for Android | PZolee's blog

  18. ruman says:

    Hello
    I have an issue the test as ftp client. The upload test runs fine but when starting the download test it tells me that I need to run the upload test first (which I did many times). Did I miss something?

    • PZolee says:

      Hi,

      Which ftp server do you use?
      Before starting the download test, the app checks the size of the uploaded file (because the same file will be downloaded and the same file size is expected so if it wants to download 10 MB data from ftp server it expects that the file size = 10 MB).
      Now, if you get this error message either the file size does not match or the ftp server returns with wrong value.

      Please send me the following details:
      * the exact size of the uploaded file in byte (named “localwifispeedtest.output” in the ftp directory, check it manually please)
      * Transferred data size and message block size if you changed them (by default they are 10 MB and 4096 bytes)
      * app version
      * ftp server version
      Thanks

      • ruman says:

        The file size on the ftp server for localwifispeedtest.output is 10 261 728B. Looks like it is less than 10MB.
        I did not change the default parameters for data size and message block size in app.
        App version is Android 2.1.0
        FTP server version is ProFTPD 1.3.2c

      • PZolee says:

        Thank you, I will investigate it soon.
        It should be 10485760B, it works with Cerberus FTP server. Now I will download and try this server too.

      • ruman says:

        I have performed speed test using upload via ftp. Each time it succeeds but when I check the file size on ftp server, it is different (never twice the same), as if some packets were lost.
        I am using this ftp server for website management without issue.

      • PZolee says:

        I could reproduce the issue and it seems I could also fix it. Now I can provide you a test version in email to try it. Can I use the email address that you provided when wrote this comment? (ri…and)

      • ruman says:

        Hello PZolee,
        Yes the email adress is valid.

  19. Howard says:

    I’d like to try this, but for some reason none of my android devices are compatible. I find this a bit strange, one of them is a Sony Xperia Z1 Compact(fairly new) and I have two Asus transformer tablets.
    What are the requirements?

    • Howard says:

      Correction, I can’t seem to buy the ad-free version. It is unavailable in my country(Norway) for some strange reason.

      • PZolee says:

        Unfortunately your country was not enabled, but from now you can buy it (however the process can take several hours according to Google)

  20. ACTIV6TM says:

    Hello,
    unit used for testing samba should not it be Mo/s or MB/s instead of Mb/s ?

    • PZolee says:

      Hi,

      No, Mb/s (Megabit/sec) is the general unit type for measuring network bandwidth. However I can add an option to show it in MB or KB too.

      • ACTIV6TM says:

        Hi,

        I think this option would be interesting because it will compare the available bit rate compared to the amount to be transferred.

        Eg.: If I have 8 Mb/s, I know I will tranfer at least 1 MB/s. If I have a 100 MB file, I know it will pass in 1 min 40 s

        Is that I’m wrong ?

        Anyway, let me tell you that your application is very interesting and useful.

        Thank you.

  21. janet says:

    Good

  22. Hi. Full of hope when I found your app. Wanted to test WLAN throughput between my

    1) Windows Server 2012 R2 Essentials and a Nexus 7 (2013) and
    2) W8.1 machine.and Nexus 7 (2013)

    I followed your instructions and installed the Windows server script on both the WS 2012 R2 and also on the W8.1 m/c.

    The script launched itself and the prompt was that it was listening on port 1212.

    The Android app found both of the different servers each time I browsed for them.

    However when I started the test I consistently got the error (quickly) flash at the bottom of the screen:

    “failed to connect to 192.168.0.xxx (port 1212) after 3000ms”

    This occurred when trying both servers AND after I opened up the port 1212 on TWO different routers to make sure that a router was not blocking the connection.

    I would have been ready to buy the pro version of the app as I am always testing my network in some way. However it does not seem like it works for me.

    Regards
    Marty

    • PZolee says:

      Hello,

      Please turn off the firewall on both windows. Your firewall blocks the incoming connections that’s the reason why you get “failed to connect” message on the mobile.

      ps: your mobiles can discover the server, because in that case the server advertises itself, so the UDP packages come from the server to the mobile and the outgoing traffic is not blocked by firewall. When you start the test, the mobile wants to connect to the server.

  23. Pingback: Minix Neo X7 network performance | PZolee's blog

  24. Pingback: UDP network test on Android | PZolee's blog

  25. Palming says:

    Hi PZolee,

    By first. I am very lovely your problem.
    In Ftp test function i only can test upload but download would not.
    It show “FTP server does not know either MLST or LIST command, only upload test is supported”

    Is it have any method to run it? Thanks.

    My try FTP is

    ftp://download.speedtest.com.hk/
    and
    folder i type 700MBvideo.zip inside
    user name: anonymous
    pw: welcome.

  26. Pingback: WiFi glossary | PZolee's blog

  27. Glenn Ashmore says:

    Is there any way to test past a router? To avoid address conflicts with my main network I have an AC 1750 router on the client side of a wireless bridge to a host network. The program works well within the client network but I am going to be upgrading the bridge to 5ghz and would like to do before and after test end to end over the bridge. Any way to do that?

    • PZolee says:

      If the client sees the server, the test will work (but you have to give the ip address of the server manually, because browsing won’t work if they are in different network).

  28. Asher says:

    Hi PZolee,
    I would also like to see the BSSID in the test results(Test run details). Thank you for your development.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: