Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Tool for testing sites and apps on slow connections (httpdebugger.com)
35 points by pkhach 10 days ago | hide | past | web | favorite | 38 comments

Chrome has this built in, FWIW, and of course you can always use the standard tools to achieve this on Linux.

You can always use the standard tools to achieve this on Linux.

Add 200ms of network delay under Linux:

    sudo tc qdisc add dev eth0 root netem delay 200
This guy at least provided a usable user interface.

Here's a plug for our mahimahi tool (available in Debian and Ubuntu with an "apt install mahimahi", and at https://github.com/ravinet/mahimahi). The intention is to have a set of easy-to-use network emulators that can be configured easily from the command line and only affect the programs run inside them.

Run "mm-delay 100" to enter a container that's connected to the outside world via a TUN device with 100 ms of delay on egress, and 100 ms of delay on ingress. Any program run inside the container sees an extra 200 ms of RTT to the outside world.

We also have a tool for random packet loss (mm-loss), intermittent connectivity (mm-onoff), and a pretty sophisticated emulator for bottleneck links (mm-link) that supports various queue disciplines (e.g. CoDel), variable link rates (as in a cellular link), and nice 60 fps animations of link capacity and utilization and queueing delay in both directions.

These tools can be nested arbitrarily (e.g. run mm-delay 100 mm-loss uplink 0.1 firefox). They've been used in a bunch of networking research studies. They are mostly intended for emulating cellular/challenged networks, and the CPU overhead is not great, so I wouldn't trust them if you care about emulating networks with speeds more than about 1 Gbps.

fwiw: when you're done messing around with a `tc qdisc add`; it's probably a good idea to do a `tc qdisc del`. . . :)

Yes, I know that.

Chrome tool used to only throttle downloads, not posts etc, did they fix that?

I used throttle to slow POST file upload for testing few months back. It worked.

Or even better, Firefox has this built in.

So I can't test this as I don't have a Windows machine, but from the screenshot it seems only concerned with bandwidth. For my personal situation, latency is the real killer.

I've got a gigabit fibre connection but am way down South in New Zealand, and interact with a Perforce server that's in California for my day job. When one does an operation in Perforce, like the equivalent of a 'git pull', there seems to be at least a couple round-trips between the client and the server, for each file. There are some tasks take a few seconds for folks in the California office, where for me those are easily several minutes to several dozen minutes. It's convenient when the weather is nice or the fire needs feeding :).

The joys of using VCS designed for LANs. Clearcase has the same problem.

Years ago I worked somewhere where we had to use Visual Source Safe, on a Mac (OS9), over a sub-1MBit DSL. Doing anything would take hours to days.

Mods, is this sort of spam blast an acceptable behavior on HN now - https://news.ycombinator.com/submitted?id=pkhach ?

It could've been a decent Show HN discussion, but as it stands this is nothing more than an ad for a commercial software.

It's a bit over the line. The FAQ says a small number of reposts is ok if a topic hasn't had significant attention yet: https://news.ycombinator.com/newsfaq.html. Now that this has, the reposts should stop.

It's always felt as if HN members not only should, but as a rule do, submit links they've found of interest or value. If a member merely and repeatedly submits their own commercial project(s), it feels out of alignment with the spirit of the site.

More explicit rules or code (like limiting the frequency of submissions from a given member to the same domain name, etc) may not be necessary, as the voting system generally seems to work quite well. Or perhaps such code is already in place? which would help explain the high quality content on HN.

As ever, thank you Dan (and Scott) for maintaining this wonderful resource.

There are a lot of users who come to HN just to submit their own stuff, aren't participating in the community, but don't realize that they're breaking any norms either. We tend not to treat them as spammers unless they really overdo it. Often we explain to them that (a) using HN just for promotion is something the community doesn't like, and which we eventually penalize or even ban accounts for; (b) if they want to post to HN it would be better to fully join the community and submit a variety of things they personally find intellectually interesting, and (c) if they do that, it's fine to occasionally include their own stuff.

Most people respond to that explanation pretty well and HN has even gained a few excellent submitters that way. So we've learned to treat this class of users with a lighter touch than outright spammers, who mostly leave quite different fingerprints.

(p.s. thanks for the kind words!)

Please check the provided links.

All tools are absolutely free and created in hope to help developers in their everyday work.

Why do you say that we promote our commercial software?

If you read my explanation at https://news.ycombinator.com/item?id=19392902 you'll probably see where eps and other users are coming from.

The issue isn't submitting your own stuff, it's only using HN to do that. That comes across as promotional, and HN readers don't like it because you aren't really participating in the community. Much better would be to join as a reader and general submitter, and use the site for gratifying intellectual curiosity—your own and others'. That's the primary purpose of HN: https://news.ycombinator.com/newsguidelines.html.

The other thing you can do, when submitting your own stuff, is add text explaining how you came to work on this and what's different about it. If you say things that interest others, you'll be more likely to get a conversation. Sharing what personally interests you (not the same thing as what's in your personal interest!) is often a way to get others interested too.

ok thanks for clarification

No need for a tool, I can just go and stay in a Hilton.

If you’re on iOS or macOS there’s Network Link Conditioner which does the same thing.

To install, download the Additional Tools for Xcode {{xcode version}}. And in the download DMG "Hardware/Network Link Conditioner.prefpane"


If you need lower level emulation, with packet loss etc. Clumbsy is is great, and QA departments can get up to speed quickly on it too. It’s also free.


I'm looking for something I could put between two docker images to test for problems that arise from slow API connections.

I have go code (open source, but not written by me), I suspect to have timeouts in certain situations and I would like change the code to be failure tolerant.

Anyone has a tip?

I used tc on a Linux VM between two hosts to simulate loss, latency and bandwidth limits. Two interfaces, I think TC only works in one direction per interface so you have to enable it on both interfaces to get delay in both directions.

See https://stackoverflow.com/questions/614795/simulate-delayed-...

Why not just use Firefox dev tools?

F12 > click 'Responsive Design Mode' > then click 'Throttling', the options are 2G, 3G, 4G, DSL, Wi-fi.

I guess if you need throttling for something other than a web page, you need something other than a web browser.


Yes, you can use built-in dev tool for your browser.

But if you are creating your own application (C++, .NET, JAVA) then you need an external tool like this.

How do I test desktop/mobile application in Chrome?

Help me out here because I've been caught between what this website is telling me and what I think is true.

What does "portability" mean?

It says "FREE portable download" but it's a .exe. So windows only?

Portable as in it doesn't need to be installed, it runs the program as soon as you start the exe.

Portable is different than cross platform.

To be fair, that's a definition of "portable" only used among windows users, as far as I know.

Oh cool! Thanks.

It would be nice if developers could also test their stuff on old computers. Many websites are completely unusable on older mobile devices for example, and not because of network issues.

You can probably accomplish this with Linux's tc command.

In my experience tc is only designed to work in one direction, so I had to use a separate VM, place that machine between the test host and the rest of the network, then enable TC on both interfaces.

My understanding us that typically you'd create a minimal router out of a minimal server distro installation (either physical or virtual) and make a couple of scripts to automate standard settings.

Source: At some point I was part of a team that used a setup like this for testing.

Any recommendations for doing something similar during load testing (e.g. Jmeter)?

At Loadmill we use thousands of real user devices from around the world to simulate the load.

This way you can simulate the complexity of different devices, geo-locations, and network connectivity levels in your tests.

Disclaimer, I'm one of the founders of Loadmill.

How does this work? What mechanism does it use?

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact