mirror of
https://github.com/ProxymanApp/Proxyman.git
synced 2026-04-25 16:15:55 +03:00
[GH-ISSUE #119] Throttling Support #117
Labels
No labels
Discussion
Feature request
In Progress...
Plugins
Waiting response
Windows
Windows
bug
duplicate
enhancement
feature
good first issue
iOS
macOS 10.11
question
wontfix
✅ Done
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/Proxyman#117
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @fishcharlie on GitHub (Apr 17, 2019).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/119
Originally assigned to: @NghiaTranUIT on GitHub.
It'd be awesome to see support for throttling requests/responses. Where you can simulate different network conditions (bad signal, slow speeds, etc).
@NghiaTranUIT commented on GitHub (Apr 17, 2019):
Thank for this request @fishcharlie , we will consider to implement this feature in this years.
For now, you can use the combination of Proxyman and Network Link Conditioner (Apple tool) to throttle the network 👍 It's one of preferred tool to do it during my development 😄
@abeazam commented on GitHub (May 22, 2020):
This is not just a functional app but a gorgeous app too. The only thing stopping me from switching from Charles is Throttling. If you can some how get it in sprint that would be amazing
.
@NghiaTranUIT commented on GitHub (May 22, 2020):
Hi @abeazam, sorry for the delay because I was too busy to implement other high priority features during the journey. I actually did implement but the result was not great and didn't fulfill my expectation.
I would suggest using Network Conditioner to stimulate poor networks.
If you're using Map Local with delay, I would support it soon because it's eaiser https://github.com/ProxymanApp/Proxyman/issues/510
@cameroncooke commented on GitHub (Jan 15, 2021):
Does Network Link Conditioner allow you to be selective about which domains to throttle like Charles does? Throttling entire machine is problematic when needing to test specific scenarios so I would +1 that Proxyman should do this as Charles does perfectly well.
@NghiaTranUIT commented on GitHub (Jan 15, 2021):
@cameroncooke it's system-wide, not a particular domain. I've recently received a lot of requests for this feature. I will work on it after the iOS Proxyman and Rule Folder (https://github.com/ProxymanApp/Proxyman/issues/739) 👍
@harkairt commented on GitHub (Feb 13, 2021):
I share this :) really like the app, but missing throttling is a bummer
@NghiaTranUIT commented on GitHub (Feb 13, 2021):
Sorry to hear that. Just wondering if you’re going to use Throttle for particular domains or all domains? And which profile you would use (3G, 4G, poor wift, etc)?
@cameroncooke commented on GitHub (Feb 13, 2021):
I get the impression this is hard to pull off. Even Charles has some bugs when using throttling, I've had throttling turned on and it just stop working for example.
But when it works it's probably Charles's strongest feature and so useful for helping finding race conditions in apps especially when targeting just some domains.
@NghiaTranUIT commented on GitHub (Feb 13, 2021):
Thanks. I'm researching about the Token Bucket, which is possible to implement the bandwidth limit (like Throttle does) 👍 I understand this feature is essential and Proxyman should support it 😄
@cameroncooke commented on GitHub (Feb 13, 2021):
So for me at the moment I'm using a combination of Proxyman and Charles. Though I do tend to keep falling back a Charles when I need throttling. But my ambition is to move completely to Proxyman as it's actively developed. Throttling is only thing holding me back.
@NghiaTranUIT commented on GitHub (Feb 13, 2021):
Sure, I'm implementing it now, and I'm sorry for the delay since 2019 because there are many features need to be done.
@NghiaTranUIT commented on GitHub (Mar 3, 2021):
I would like to update the progress of the Network Throttling feature
Basically, we can set Network Conditions for system wide or particular domains 🎉
We support various preset profile as well 👍
It's 80%, and we're going to release it in the next releases 😄
@cameroncooke commented on GitHub (Mar 3, 2021):
Amazing, happy to beta test when a build is available as we use this a lot
in Charles esp. domain-specific throttling.
Cameron.
On Wed, 3 Mar 2021 at 13:31, Nghia Tran notifications@github.com wrote:
@michaelhogg commented on GitHub (Mar 7, 2021):
Awesome news! 🤩 Thank you so much @NghiaTranUIT! 🎉
@NghiaTranUIT commented on GitHub (Mar 14, 2021):
Hey @michaelhogg @cameroncooke, let check out the v1 of Network Condition in the latest build (2.20.0). You can directly update from the app 👍
Changelog at: https://github.com/ProxymanApp/Proxyman/releases/tag/2.20.0
In this build, we're able to select the preset profiles, but not customize them. I will improve it in the v2 😄
@michaelhogg commented on GitHub (Mar 25, 2021):
@NghiaTranUIT: I'm now using Proxyman v2.21.1, and the Network Conditions v1 functionality is looking great! ❤️ Thank you for implementing this 😃 Looking forward to v2 with the ability to customise the profiles! 🎉
I have a question about the
Apply System-wide: All traffic in your machine will be affected by Network Throttlingcheckbox. When checked, does this operate in the same way as Apple's Network Link Conditioner (which is a GUI for thednctlandpfctlcommand-line tools), applying the network conditions to the whole of macOS (even to network traffic which is not being proxied through Proxyman) ?I've tried creating a rule with this
Apply System-widecheckbox enabled, and using the2G (EDGE)preset profile (which is a very slow preset), but it seems that it only affects the network traffic which is being proxied through Proxyman. If this is the intended behaviour (which I expect it is), then maybe the checkbox could be renamed to something like:Apply to all hosts: All traffic being proxied through Proxyman will be affected by Network Throttling?@NghiaTranUIT commented on GitHub (Mar 25, 2021):
It only affects traffic, which is being proxied to Proxyman app.
Ah nice idea, I will improve the wording to make it clear 😄
@sewar commented on GitHub (Apr 12, 2021):
Great feature!
I have a few notes:
@NghiaTranUIT commented on GitHub (Apr 13, 2021):
Thanks for your suggestion. I'm going to improve/fix it in the next release 😄
@alextesttesttest commented on GitHub (Jul 28, 2021):
It would be great to be able to create custom throttling profiles, or at least have more presets to choose from.
I'd like to see presets for really poor 2G/3G where bandwidth is ~5 kbps and packet loss around 10%.
I'm also not seeing @sewar 's proposal to show requests with the 100% Loss profile, which would be really good to have to confirm client behaviour.
@NghiaTranUIT commented on GitHub (Jul 28, 2021):
Thanks for the request @alextesttesttest. I totally agree that we should be able to customize our own network profile 👍 I will put this feature in high priority queue 👍
@vrnvorona commented on GitHub (Oct 21, 2021):
What about making own profiles? I love just making long delay like, several seconds without packet lost to test how apps will behave when a lot of requests are delayed. Setting 100% packet lost is not as good, because it may interfere with connectivity checks and force no connection state, instead of just waiting for response.
@NghiaTranUIT commented on GitHub (Oct 21, 2021):
@vrnvorona how about selecting the "Very Bad Network" Profile 🤔 The bandwidth is <1mbps and delay ~=10-20s
@vrnvorona commented on GitHub (Oct 21, 2021):
Well I assumed it's not 10-20s from tooltip. If it is, it's too big this way. Well, at least ability to control it is nice imo.

@sergej-s commented on GitHub (Jan 12, 2022):
Hi! How is it going with custom network profiles? I've just installed Proxyman and it's a quite nice tool but I need to check very very bad connections like delay of 5-10 secs and loss like 30%.
PS. Network Link Conditioner doesn't work at all on Monterey :(
@NghiaTranUIT commented on GitHub (Jan 12, 2022):
Sorry, but no progress so far on the Customize Profile @sergej-s : /
I see that somebody can run Network Link Conditioner on Monterey https://developer.apple.com/forums/thread/690358?answerId=693458022#693458022
@sergej-s commented on GitHub (Jan 12, 2022):
Many thanks for quick reply! Sad but I hope you will manage to make it at some day :)
I've tried v12, didn't work out. It seems the root access is needed to make it work.
@leepowelldev commented on GitHub (May 24, 2022):
Long term Charles user, recently discovered Proxyman - really liking it, but I'm not sure it's fully featured enough for me to leave Charles completely yet. For some reason "Very bad network" doesn't seem to really make any difference for localhost requests (even though I can see the requests in proxyman) - still ~30ms response times, yet Charles doesn't have the issue and works as expected.
I really hope Proxyman can match (or better) the throttling offerings from Charles as I think this is an awesome app.
@NghiaTranUIT commented on GitHub (May 25, 2022):
Just wondering @leepowelldev: When you call localhost, do you see the localhost traffic on the Proxyman app?
I assume that you'd visit localhost, and by default, it doesn't go through Proxyman Server. Thus, it's not throttled.
To fix it, you might access your localhost via the alias name, which you define in
etc/hosts. Read more at https://docs.proxyman.io/troubleshooting/couldnt-see-any-request-from-localhost-server#3.-solutionsPlease let me know the result 👍
@leepowelldev commented on GitHub (May 25, 2022):
Hi @NghiaTranUIT 👋
Yes I see the traffic, as I'm explicitly directing my requests at the proxy. This is a Node app which makes a request to another Node app (an api) and I'm using a standard Node
request. I have tried both solutions from your FAQ's and sadly neither seemed to work for me.EDIT: Upon closer inspection, it does seem to make a small difference. Without throttling responses are around 15ms, with a bad network connection they're around 30ms. Maybe I'm just used to Charles where I can manually add additional latency and server stability.
@NghiaTranUIT commented on GitHub (May 27, 2022):
@leepowelldev let's use this Beta build: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_3.5.0_Add_more_delay_time_to_Network_Condition.dmg
I add more delay to the "Very Bad Network", "2G" and "3G" profiles. You can see the significant delay in the screenshot.
If you test with Web Browser, make sure you enable the No Caching tool, otherwise, the browser will use the cache 👍
Screenshots
@sanderdekoning commented on GitHub (Nov 22, 2022):
@NghiaTranUIT Why is the limitation still here that only one rule can be activated at once? I want to also have a rule either on a per-app basis, or multiple rules at the same time as the app I mentioned uses more than one domain, and wildcard/RegEx aren't supported either. Meaning that currently it is impossible to have Network Conditions enabled for the whole app
@NghiaTranUIT commented on GitHub (Nov 23, 2022):
Sorry for the limitation of the Network Throttling @sanderdekoning. I would admit that it was really hard to implement network throttling per app, per domain, or using the wildcard since the core is built on top of Swift NIO.
Thus, we only support 1 domain or an entire mac at once.
Our team will soon implement the v2, which supports the new requirement 👍
@squeaky-nose commented on GitHub (Aug 7, 2023):
I also would like to be able to throttle multiple domains at a time. Any ETA on when v2 of network throttling is coming?
@dacarver commented on GitHub (Dec 14, 2023):
Would also love to see throttling on a per-app basis.