WLAN tester

W

Wanderer

I'm looking to make a WLAN tester for a manufacturing test. Something that could send and receive a bunch of files and measure how long it took. I would repeat this a number of times for a device under test and then use some metric to decide pass/fail and create a report. What libraries are available for Python for communicating with networks? My google searches have been disappointing. I'd prefer to do this in Windows but I'll consider Linux if that is the better option.

Thanks
 
D

Dave Angel

I'm looking to make a WLAN tester for a manufacturing test. Something that could send and receive a bunch of files and measure how long it took. I would repeat this a number of times for a device under test and then use some metric to decide pass/fail and create a report. What libraries are available for Python for communicating with networks? My google searches have been disappointing. I'd prefer to do this in Windows but I'll consider Linux if that is the better option.

Thanks
For what version of Python?

Depending on what's at the far end of your connection, you may not need
to do much at all. For example, if you have an ftp server, check out
http://docs.python.org/2/library/ftplib.html

in the standard library.



Since you're doing performance testing, be aware that it's quite tricky
to get meaningful results. For example, some connections have a
satellite link in them, and thus have very long latency. A simple
protocol will go very slowly in such a case, but most downloaders will
open multiple sockets, and do many transfers in parallel. So you could
either measure the slow way or the fast way, and both numbers are
meaningful.

Of course, it's more than a 2-way choice. Some protocols will compress
the data, send it, and decompress it on the other end. Others (like the
one rsync uses) will evaluate both ends, and decide which (if any) files
need to be transferred at all. I believe it also does partial file
updates if possible, but I'm not at all sure about that.

Naturally, the throughput will vary greatly from moment to moment, and
may be affected by lots of things you cannot see.
 
W

Wanderer

For what version of Python?



Depending on what's at the far end of your connection, you may not need

to do much at all. For example, if you have an ftp server, check out

http://docs.python.org/2/library/ftplib.html



in the standard library.







Since you're doing performance testing, be aware that it's quite tricky

to get meaningful results. For example, some connections have a

satellite link in them, and thus have very long latency. A simple

protocol will go very slowly in such a case, but most downloaders will

open multiple sockets, and do many transfers in parallel. So you could

either measure the slow way or the fast way, and both numbers are

meaningful.



Of course, it's more than a 2-way choice. Some protocols will compress

the data, send it, and decompress it on the other end. Others (like the

one rsync uses) will evaluate both ends, and decide which (if any) files

need to be transferred at all. I believe it also does partial file

updates if possible, but I'm not at all sure about that.



Naturally, the throughput will vary greatly from moment to moment, and

may be affected by lots of things you cannot see.

Yes. I noticed this variability. I've been using the Totusoft Lan_Speedtest..exe to test some modules. I've tested through the wifi to our intranet andsaw variations I believe do to network traffic. I also tried peer to peer and the write time actual got worse. I don't know if it has do to with the firewall or the hard drive speed or just Windows giving this process low priority. I also saw drop outs. So figuring out the metric for pass/fail willbe interesting. I'll check into setting an ftp for this test.

Thanks
 
W

Wanderer

For what version of Python?



Depending on what's at the far end of your connection, you may not need

to do much at all. For example, if you have an ftp server, check out

http://docs.python.org/2/library/ftplib.html



in the standard library.







Since you're doing performance testing, be aware that it's quite tricky

to get meaningful results. For example, some connections have a

satellite link in them, and thus have very long latency. A simple

protocol will go very slowly in such a case, but most downloaders will

open multiple sockets, and do many transfers in parallel. So you could

either measure the slow way or the fast way, and both numbers are

meaningful.



Of course, it's more than a 2-way choice. Some protocols will compress

the data, send it, and decompress it on the other end. Others (like the

one rsync uses) will evaluate both ends, and decide which (if any) files

need to be transferred at all. I believe it also does partial file

updates if possible, but I'm not at all sure about that.



Naturally, the throughput will vary greatly from moment to moment, and

may be affected by lots of things you cannot see.

Yes. I noticed this variability. I've been using the Totusoft Lan_Speedtest..exe to test some modules. I've tested through the wifi to our intranet andsaw variations I believe do to network traffic. I also tried peer to peer and the write time actual got worse. I don't know if it has do to with the firewall or the hard drive speed or just Windows giving this process low priority. I also saw drop outs. So figuring out the metric for pass/fail willbe interesting. I'll check into setting an ftp for this test.

Thanks
 
R

Rob Day

Yes. I noticed this variability. I've been using the Totusoft Lan_Speedtest.exe to test some modules. I've tested through the wifi to our intranet and saw variations I believe do to network traffic. I also tried peer to peer and the write time actual got worse. I don't know if it has do to with the firewall or the hard drive speed or just Windows giving this process low priority. I also saw drop outs. So figuring out the metric for pass/fail will be interesting. I'll check into setting an ftp for this test.

Why involve a protocol at all? I'd just create a socket
(http://docs.python.org/3.3/library/socket.html) and measure how long,
on average, it took to write a given number of arbitrary bytes (e.g.
"This is a string" repeated a million times) to it and then read a
given number of bytes back. That would be a relatively consistent
metric, whereas if you try using FTP you'll run into issues, as
already noted, where disk read/write speed and details of your FTP
server implementation like compression or multiple network connections
affect the result significantly.
 
W

Wanderer

Why involve a protocol at all? I'd just create a socket

(http://docs.python.org/3.3/library/socket.html) and measure how long,

on average, it took to write a given number of arbitrary bytes (e.g.

"This is a string" repeated a million times) to it and then read a

given number of bytes back. That would be a relatively consistent

metric, whereas if you try using FTP you'll run into issues, as

already noted, where disk read/write speed and details of your FTP

server implementation like compression or multiple network connections

affect the result significantly.

Thanks, I'll check out sockets. That's probably what I needed to search forinstead WLAN and Wi-Fi.
 
W

Wanderer

Why involve a protocol at all? I'd just create a socket

(http://docs.python.org/3.3/library/socket.html) and measure how long,

on average, it took to write a given number of arbitrary bytes (e.g.

"This is a string" repeated a million times) to it and then read a

given number of bytes back. That would be a relatively consistent

metric, whereas if you try using FTP you'll run into issues, as

already noted, where disk read/write speed and details of your FTP

server implementation like compression or multiple network connections

affect the result significantly.

Thanks, I'll check out sockets. That's probably what I needed to search forinstead WLAN and Wi-Fi.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,012
Latest member
RoxanneDzm

Latest Threads

Top