Archive for the ‘Charles’ Category

Charles 3.2 public beta

Monday, January 21st, 2008

The next major release of Charles is at a stage where I’d like more people to have a go using it, send feedback and find bugs before I roll it out properly. Charles 3.2 has been in development for the last six months in parallel with the maintenance of 3.1; it includes a number of major new features, redesign of existing features and new built-in help text.

The biggest new feature is Breakpoints, accessible from the reorganised Proxy menu (several things have moved there from the Tools menu). Breakpoints let you intercept and edit a request or response before they are passed on.

All of the tools have received a UI overhaul to make configuring and using them easier. Editing is now done in a pop up dialog rather than inline in the table view, and the location matching has been broken out into its constituent parts and documented in much more detail. You can also now enable each row in a tool separately so you can manage a few different configurations.

Charles saved sessions now have a new suffix .chls and can now be double-clicked to open Charles on Windows and Mac OS X. This makes them much more useful of course. Charles can also now open raw AMF dumps with suffixes .amf, .amf0 and .amf3 for those of you developing with AMF.

In December Adobe released the AMF3 specification. It was great to see that the community’s reverse engineering efforts had hit the nail on the head pretty much everywhere. With the specification they also released the BlazeDS reference implementation (soon to be open source). Charles 3.2 now supports BlazeDS so you can debug your BlazeDS applications! Previously versions of Charles couldn’t parse some of the AMF3 used by BlazeDS.

There are a few other changes and additions hidden in there as well. I have been using Charles 3.2 continuously throughout its development so I’m confident that it works well enough to release as a public beta! Please download and try it out and let me know how you get on, even if that’s just “works fine”.

Download the latest beta from http://xk72.com/charles/beta.php

Thanks!
Karl

Charles 3.1.3 released

Monday, November 12th, 2007

Over the past two months a few small new features and fixes have accumulated, and it’s time they were released (Mostly I’ve been busy implementing some exciting major new features, which I’ll post about shortly!).

The new features include new Chart types on the Chart tab, to help you get an overview of file sizes, durations and file types. Also the Request & Response tabs can now be combined into one Content tab, for all those of you who have requested that! You can activate this feature in the Preferences.

SSL handling now includes better support for reporting errors, such as rejected certificates. So you can now see why applications may not work using SSL through Charles – if they don’t trust the certificates that Charles creates.

Finally there are a few other changes and minor bug fixes that are all listed in the version history on the download page.

Download Charles 3.1.3

Charles 3.1 released

Monday, August 13th, 2007

Charles 3.1 has been released this morning. Thank you to everyone who helped test this release. I will be posting more information about the new features in the next few days, and updating the documentation.

Please take note of the changes that may effect existing users (pretty minor). These are listed on the download page and in the release notes.


Download Now

Charles 3.1 public beta

Tuesday, July 3rd, 2007

It’s time for the next update to Charles. This update includes a number of improvements and additions. I’m releasing it as a public beta so that we can iron out any major problems before the full release. Please read on for details and download instructions if you’d like to help.

Changes include:

The SSL functionality has been refactored so that Map and Map Local now work via SSL.

The Selected Hosts matching algorithm has been improved to support matching the URL’s protocol (http/https) as well as host name and path, and to fix some other pattern matching problems.

ICO and BMP viewing support has been added.

Minimise to system tray is now a preference option on Windows.

Web Interface: A new web-based interface allowing you to start/stop recording and throttling, and to quit Charles. This is the beginnings of being able to script Charles’s behaviour from external applications, such as in automated testing. The interface is designed to also be useable as RESTful services. The functionality is very basic at the moment, so please let me know how you’d like to see it developed if this interests you. The Web Interface is controlled in the Web Interface Settings in the Proxy menu. It is off by default and supports username/password authentication to prevent unauthorised access.

Finally, the layout of forms, such as in the settings dialogs, has been redone with a new layout manager, MigLayout. This fixes long-time annoyances; OK+Cancel button ordering across platform, consistency of form layout, and general improvements to appearance. I hope you enjoy (or at least can see) the difference.

All of this has meant that I’ve finally had to remove support for Java JDK 1.3. Please let me know if this effects you! I am quite confident that Charles will continue to support Java JDK 1.4 and higher for a long time yet, it was just 1.3 that was becomming a barrier to ongoing development.

This public beta is a release candidate so I consider it stable. I’d like to have people testing it for about a week to catch any problems. If you’d like to give it a go, please download from http://xk72.com/charles/beta.php and post comments here or send me feedback using the contact form on the site.

Charles 3.0.3 released

Saturday, May 12th, 2007

This month’s update to Charles 3 includes a number of exciting changes as well as the usual round of fixes and minor improvements.

SSL support has received a number of great leaps forward, with more still to come. The Repeat and Edit functions in Charles now support SSL. If you haven’t used the Repeat function yet, please try it out… it can change the way that you work when you’re testing web applications. The Edit function is even more exciting as you can change what is being sent (including editing AMF), and now you can do that over SSL as well. In the next release SSL will support the Map and Map Local tools thanks to a rewrite of the SSL handling. Let me know if you’d like to try that out ahead of time.

Also on SSL; the SSL certificate generation has been rewritten. If you’re not familiar with Charles’ SSL capabilities: Charles acts as a go-between for SSL, issuing your browser a Charles-signed certificate and then proxying the requests to the remote server. All of your traffic remains encrypted on the network, but in Charles you can view it unencrypted. It’s essential for debugging SSL applications. Now the Charles-signed certificates are now more closely based on the real certificate; they have the same server name, serial number, expiry dates and other details; the only difference is that they are signed by Charles rather than the actual Certification Authority. You must still add the Charles CA certificate to your trust certificate list if you want to avoid certificate warnings, however this new approach has a number of benefits: The server name on the Charles-signed certificate is the same as on the original so Charles won’t hide name-mismatch issues, the same goes for the expiry dates so Charles won’t hide the fact that the real certificate has expired. Because the serial number of the certificate is preserved you can now trust individual Charles-issued site certificates rather than the Charles CA certificate if you want to.

Some small improvements to the Chart mean that you can now see in-progress requests in the Chart, identified with a different colour. Previously they didn’t appear until they were completed, which made it less exciting to watch as a page downloaded.

New to the Tools menu is the Client Process tool. This is a niche tool, but really useful if you ever have occasion to wonder which application is making a certain web request. The Client Process tool is multi-platform, of course, and will show you the name of the process on the other end of each connection to Charles. Usually this is FIREFOX.EXE or iexplore.exe, but sometimes it will reveal some unexpected activity from another (possibly itself unexpected) program. The Client Process tool imposes a small delay before each connection is accepted so it’s not something I recommend running all the time. When it is running the client process information will appear in the Notes row in the General tab.

For those of you using Charles behind external proxy servers you can now use the DNS Spoofing tool like the rest of us.

Finally, a minor point but one that you’ll probably immediately notice: the ASCII viewer tab has been renamed to Text. It probably should have been renamed back in version 1.8.1 when Unicode support was implemented, but some things take time to stick out!

There is a full list of the changes on the download page, including a few more Vista fixes!

Charles 3.0.2 released

Monday, April 23rd, 2007

The second minor update to Charles 3.0 has now been released. These minor updates fix bugs or make small improvements to functionality. Thank you to everyone who has reported problems and helped to resolve them.

The 3.0.1 update fixed a bug in the AMF Detail view and removed the system tray icon on Windows. The later because the new library (JDIC) I used for the system tray caused crashes on some users’ computers. Unfortunately a fix for that bug isn’t yet available so the system tray icon remains missing at this time; I am going to roll back to the previous system tray library so it will return in 3.0.3 (please email me if this is causing you problems right now and I’ll get you a prerelease copy!).

The 3.0.2 update fixes a number of small problems, as described in the version history. The most exciting changes for me are the cosmetically improved Windows installer and Mac OS X platform integration!

The Windows installer has been upgraded to use the modern installer user interface. It now looks a lot slicker and can automatically start Charles after installation. It also tries to cover-off one of my personal bug-bears; it confirms that you can install Charles over an existing installation. I’m sometimes unsure whether I need to first uninstall the previous version of an application… if you are too (and you read the installer’s welcome page) you’ll be reassured.

The installer also now puts the Charles icon straight into the Programs folder in your Start menu, rather than creating a subfolder. However, in keeping with my re-installation thoughts above the installer will only create the new style Start menu shortcut if it can’t see an existing old style shortcut – so this change is for new users. I didn’t want to change existing shortcuts; that seemed like a recipe for confusion!

I’ve also had the opportunity to test Charles in Java 1.6 and on Windows Vista. In 1.6 the Charles window icon was displayed particularly poorly, so that is fixed in this release. Everything else appears to work, and it even works well on Vista, so far. A big thank you to local Charles user John Ballinger for lending me a Vista laptop. If you’re a Twitter user then check out his Tweetr twitter client built using Apollo and debugged with Charles!

On Mac OS X I’ve removed the docs folder from the download, so the download is now just the Charles application. The docs folder contained SSL certificates that weren’t immediately useful, and didn’t feel very Mac-like… I’m going to work on a better way of delivering these. Also the Mac OS X proxy helper application now shows the Charles icon if it has to ask you for your password… making Charles feel more and more at home on the Mac!

Also for the Mac, Charles 3.0.2 includes the latest release of Quaqua – the Java UI improvement library for Aqua. The most notable improvement is to the file chooser dialogs; they now respond more accurately to quick clicks! An ongoing thanks to Werner for his work on Quaqua.

That’s it for 3.0.2. You can download from the usual place. As always, I thrive on your feedback so please feel free to post comments or email me using the contact form.

Charles 3.0 released

Saturday, March 24th, 2007

This evening I have released Charles 3.0. Thank you to everyone that has sent suggestions, feedback and helped test this release. If you’ve been following my blog on the release you’ll be familiar with the most important new features. If you haven’t been following then please read the previous few posts about Charles 3.0!

In the next few days I’ll be adding to the documentation to reflect the new features and producing some more information to help you use Charles better.

As always, Charles 3.0 is a free upgrade to registered users. Your existing license information will carry over transparently to Charles 3.0.

Charles 3.0 public beta release 3

Sunday, March 18th, 2007

Hello again. There are a few more improvements to Charles 3.0 to report. These are mostly tidying up work and a few important bug fixes…

The changes include:

  • The General tab has had a restructure. The multi-request General table in particular was getting very complex with mins, means, maxes, totals etc, so I’ve reorganised it into a tree. There are also a few new fields in there such as Requests per Second and compression percentages, and display of other items has been improved such as Exceptions (programmer) renamed to Failures (user).
  • Tree displays simplified graphically. Tree displays are sprinkled throughout Charles; the most famous being the Structure view. While the icons in the tree are important in the Structure view, I felt that they were superfluous on some of the other displays and in fact were just visual noise that distracted from the actual information! So in various places where there were folder and document icons in tree displays, they are now gone.
  • Advanced repeat now has a rudimentary dialog box for configuration rather than two message boxes in succession. It now also has an option to show the repeated results in a new session. This is important as it lets you separate your performance testing from your normal recording.
  • Expand All / Collapse All. You can now expand and collapse all the child nodes in most tree displays. Thanks to John Ballinger for the suggestion.

The bug fixes include:

  • Throttling by Selected Hosts had a bug in the wildcard matching. Thanks to Brian Morearty for the bug report.
  • IE unicode urlencoding creates %unnnn escapes that caused a parsing error. Thanks to Trevor Hart for the bug report.

The version number if actually 3.0b10 to reflect a few different iterations I’ve been through testing with some users. Download Charles 3.0 beta

Charles 3.0 public beta 2

Wednesday, March 14th, 2007

Thank you to everyone who has posted and emailed feedback. I’ve just uploaded a new beta version that includes a few fixes and some small new features.

The fixes and small changes include:

  • Map Local tool now closes files correctly (thanks to Martin for reporting this issue)
  • Statistics for multiple requests now include more information to backup the Repeat Advanced feature
  • Save All now only saves responses with a 2XX status code, so you don’t save empty files for 404s etc
  • Rewrite tool could cause loading of 304 responses to hang

The new feature is an enhanced SWF viewer that now reports font information for SWFs. Expect to see more here in the future…

I didn’t mention in the previous release announcement, but the Save and Copy To Clipboard features in Charles has been expanded. Save is now available for request and response, if appropriate. Copy To Clipboard has been added for requests and responses, and will now copy images as images – so you can paste straight into other software.

Download

Charles 3.0 public beta

Saturday, March 10th, 2007

I’m excited to announce the availability of Charles 3.0 public beta!

3.0 adds a number of major new features and enhancements worthy of an increase in major version number. As always, if you’re a registered user your license continues to be valid for this and every future release of Charles.

The important new features are:

  • Editing and repeating of requests, including query strings, forms and AMF
  • Chart view
  • Application icon improved, especially on Windows
  • Repeat function can now repeat multiple requests, including iterations and concurrency
  • Local mapping tool to use local files as if they are part of a website
  • Mapping tool to map parts of one website into another
  • and many other enhancements and bug fixes

Editing and repeating requests was an often requested feature; allowing you to edit the query parameters, headers and contents of a request, and repeat it against the server. This is an extension of the Repeat function added in Charles v2.5. At the moment the editing capability includes headers, query strings, forms and Flash Remoting / AMF. I’m particularly excited about the AMF editing; you can change method parameters and re-execute your AMF request against your server all within Charles.

The Chart view is a graphical representation of the existing Summary tab. It visualises the loading timeline of the resources associated with a page, or all of the resources under a path or on a site. It makes clear the sequence in which resources are loaded, which are loaded in parallel or in series and what’s making your page take so long to load.

The mapping tools help you during the development of website. They primarily exist to help avoid the upload-and-test pattern that we sometimes have to follow. Using Map Local you can now attach a local directory to a URL, and when Charles sees a request for that site it will first check if it has the file locally. This is transparent to your browser so it behaves as if the file was loaded from the remote website as usual. This should be especially useful for people testing CSS, image and SWF changes: you can test your changes as if they were on the live site, before you put them live. Map local can map entire sites, certain paths within sites or even specific file types (eg. *.swf).

The Map tool works like the Map Local tool except it maps one website into another. Because Map Local only works with static files, Map is the other half of the solution. If you’ve got a development server back-end that you’d like to test as if it was on the live site, you can use the Map tool to accomplish that. Mapping like this was already possible using the Rewrite tool, however this makes it easier and quicker to setup.

So, please download the beta and send me feedback – especially bugs and especially any regressions!

Download Charles 3.0 public beta