Open fishcharlie opened 5 years ago
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 π
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 .
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
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.
@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) π
The only thing stopping me from switching from Charles is Throttling.
I share this :) really like the app, but missing throttling is a bummer
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)?
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.
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 π
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.
Sure, I'm implementing it now, and I'm sorry for the delay since 2019 because there are many features need to be done.
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 π
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:
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 π
[image: Screen Shot 2021-03-03 at 20 21 01] https://user-images.githubusercontent.com/5878421/109811986-1241bc00-7c5e-11eb-90d2-ca343fb44411.png
[image: Screen Shot 2021-03-03 at 20 20 58] https://user-images.githubusercontent.com/5878421/109811991-1372e900-7c5e-11eb-997b-e4e8d4486ed7.png
[image: Screen Shot 2021-03-03 at 20 20 51] https://user-images.githubusercontent.com/5878421/109811969-0e159e80-7c5e-11eb-8b1f-b9ad6be32fab.png
β You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ProxymanApp/Proxyman/issues/119#issuecomment-789715568, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEZ6SKJRMVWWBFF2IUW4P3TBY24BANCNFSM4HGQLO4Q .
Awesome news! :star_struck: Thank you so much @NghiaTranUIT! :tada:
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 π
@NghiaTranUIT: I'm now using Proxyman v2.21.1, and the Network Conditions v1 functionality is looking great! :heart: Thank you for implementing this :smiley: Looking forward to v2 with the ability to customise the profiles! :tada:
I have a question about the Apply System-wide: All traffic in your machine will be affected by Network Throttling
checkbox. When checked, does this operate in the same way as Apple's Network Link Conditioner (which is a GUI for the dnctl
and pfctl
command-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-wide
checkbox enabled, and using the 2G (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
?
When checked, does this operate in the same way as Apple's Network Link Conditioner (which is a GUI for the dnctl and pfctl command-line tools), applying the network conditions to the whole of macOS (even to network traffic which is not being proxied through Proxyman) ?
It only affects traffic, which is being proxied to Proxyman app.
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 ?
Ah nice idea, I will improve the wording to make it clear π
Great feature! I have a few notes:
Thanks for your suggestion. I'm going to improve/fix it in the next release π
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.
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 π
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.
@vrnvorona how about selecting the "Very Bad Network" Profile π€ The bandwidth is <1mbps and delay ~=10-20s
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.
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 :(
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
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.
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.
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.-solutions
Please let me know the result π
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.
@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 π
@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
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 π
I also would like to be able to throttle multiple domains at a time. Any ETA on when v2 of network throttling is coming?
Would also love to see throttling on a per-app basis.
It'd be awesome to see support for throttling requests/responses. Where you can simulate different network conditions (bad signal, slow speeds, etc).