AppPuncher - Client/server debugging system for Flex, Flash and Silverlight
Whenever you develop an RIA using Flex, Flash, AJAX or Silverlight, odds are you would need to inspect client/server traffic, understand what goes on the wire and diagnose communication problems. Additionally, any online application must be thoroughly tested to understand its concurrency limits and server capacity. We have received a lot of requests from our customers and the users of WebORB to help out with either load testing of their applications or diagnose client/server communication issues. We engaged in several consulting projects to assist customers with QA and that's how the idea for AppPuncher was born. Today I am happy to announce that AppPuncher Debugger Edition is available for download.
So what is AppPuncher? In short, it is a QA system for RIAs. It can help you debug client/server traffic. It can do stress testing and regression testing. It can record and replay all the requests a client is issuing and report any discrepancies in server responses. The product is available in several editions. (The Debugger Edition is available now). See the AppPuncher feature comparison chart.
What can the Debugger Edition do?
The product will run next to your RIA browser-based client and register itself as a proxy server. Internet Explorer and Google Chrome should automatically recognize the proxy and will route all the client requests through AppPuncher. Firefox requires AppPuncher Firefox extension.
When you start AppPuncher, you can choose the type of test you would like to run (it is limited to the 'Debugging Session' for now, but soon you will be able to use the product to run all supported types of tests). The start screen looks as shown below:

AppPuncher also starts one debugging session by default:

Structured or Sequencial View Types
Once the browser makes any request, AppPuncher will visualize it in two formats:
- Structure View - displays all requests in a tree hierarchy ordered by the site they are sent to.
- Sequence View - all requests are shown in the same order they are sent.
Structure view:

Sequence View:

AMF Request/Response Visualization
The example above shows requests for static files - images, JavaScript and flash content. Additionally, AppPuncher will detect remoting requests and display information related to the method invocations as shown below:

Once you select a node in either Structure or Sequence View, the contents of the request and response will show up in the panels on the right. If you select a remoting method as shown above (the selected method is getCustomers from an invocation of the Weborb.Examples.DataBinding class), the Request and Response panels will display the following:

Request/Response Multiple View Type Support
Notice both request and response can be displayed in different views. A view can be selected using the View drop-down list:







Visualization Optimizations
Views can be selected independently for requests and responses, but it is also possible to automatically select the same view type by clicking the "Correlate Response and Request Views" checkbox located above the Request panel. When the check box is selected and you change the view for Request, the Response panel will automatically select the same view type:

AMF Requests and Responses displayed in AppPuncher can be compressed to show just the data from the request body (method arguments) as well as response body (return value) by selecting the "Body Only" checkbox located under Request and Response panels:

Debugging Remoting Requests
Once an invocation is captured by AppPuncher, it can be repeated with altered argument values. Double click an argument value in the Request panel (make sure you use the AMF view) and click the Invoke button to make a new invocation with modified arguments list:

The new invocation will show up in the AppPuncher list and can be inspected using the same Request and Response panels.
Request/Response Search and Filtering
In any debuging session it may be important to find a specific request. AppPuncher has a powerful search and filtering mechanism. Search is dynamic and will locate all matching requests as you type a search query.

Filtering allows display of requests and responses of specific content-types. In addition to well-known content types, AppPuncher automatically adds any new ones to the list of filters.

We are working hard on adding new features to AppPuncher. The plan is to release the remaining editions (Regression, Stress and Ultimate in the next couple of months). We would love to hear your feedback on using the product. Download your copy today and please let us know how you like it and what we could do better.







18 Comments:
Odd, the OSX installer appeared to work, but I can't seem to find the app.
1:58 PM
Looks like a cool tool, but the Mac OS X experience is horrible.
The Mac Installer is broken. It doesn't install the .app folder, so instead of /Applications/RIA AppPuncher.app you get /Applications/Contents (it should be /Applications/RIA AppPuncher.app/Contents)
You can fix this manually by creating a folder called RIA AppPuncher in /Applications, copying /Applications/Contents into that folder, then renaming the folder to RIA AppPuncher.app
Installing the AppPuncherTool in /Applications doesn't make sense (it should be inside the RIA AppPuncher.app bundle).
I guess forcing authentication during the installer is so the AppPuncherTool can mess with your proxy settings.
Once it is opened, it creates a folder /Applications/logs with log files in there (these should go in ~/Library/Application Support or something similar)
And I can't get it to work, from the logs:
INFO [main] (SafariIntegrator.java:156) - AppPuncher tool ends with code 0
INFO [main] (SafariIntegrator.java:118) - Modifying MacOS proxy settings
INFO [main] (SafariIntegrator.java:156) - AppPuncher tool ends with code 138
WARN [main] (SafariIntegrator.java:132) - Unable to change MacOS proxy settings
Bummer.
9:24 AM
Thank you for your feedback! We made a few changes in the Mac OSX version and verified on a few Macs we have here. It appears to be working just fine. Please re-download and try it out.
8:59 PM
I have just downloaded the AppPuncher.app, and it was not installed in /Applications anywhere. I did read this entire post and search for others, but it is not in the /Applications folder at all. I just downloaded it on 01:10 1/9/2009 so it looks like it actually has NOT been fixed. I am using MAC OSX 10.5.
12:12 AM
Ben, could you contact me directly (mark [at] themidnightcoders.com). It would be great if you could help us out diagnosing the issue.
Thanks,
Mark
6:41 AM
I just re-downloaded it. The main problem with the Mac installer is now fixed, you get AppPuncher.app and AppPuncherTool installed in /Applications.
I still get the error 138 and it fails to capture any traffic. Any ideas how to debug this?
11:46 AM
Hi Logan, any chance you could ping me directly (mark [at] themidnightcoders.com) so we could figure this out more efficiently. Also, what browser do you use? If it is FF, did you download and install the AppPuncher Extension for FF?
11:52 AM
We have fixed several issues in the Mac OSX build of the product. It should be working now. Please make sure to download the latest version.
2:34 PM
I download and install in windows XP and windows vista but this error shows in init :
Could not find the main class. Program will exit.
some idea ?
5:28 AM
I'm getting this error: "Could not find the man class: com.tmc.rtb.ui.Application. Program will exit."
I'm using windows vista x64
12:19 PM
64-bit version of AppPuncher is now available for download. If you're running 64-bit Windows, make sure to download the corresponding version.
6:01 PM
I'm getting this error: "Could not find the man class: com.tmc.rtb.ui.Application. Program will exit." why?
11:43 PM
Are you running 64-bit Windows? If so, please make sure to download 64-bit build of AppPuncher.
1:58 AM
Hi,
I am on Vista 32bit with correct version of AppPuncher but every time I launch i get the message:
"could not find the main class: com.tmc.rtb.ui.Application. Program will exit."
Please advise.
5:47 AM
If you are running into a problem with AppPuncher where you get an error saying Could not find the man class: com.tmc.rtb.ui.Application. Program will exit. OR another error that says: Exception in thread "main" java.lang.UnsatisfiedLinkError,please do the following:
1. Open a command prompt window and change to /Program Files/AppPuncher
2. Run the following command:
java -jar lib/AppPuncher.jar
3. Send us the output you get (mark[at]themidnightcoders.com
Thanks!
9:19 AM
The Mac OS X Installer and app are much improved, and both Firefox and Safari integration are working. Thanks guys!
One thing to be aware of. If you are on the Mac and you have existing proxy settings (like I did) DO NOT use Cmd-Q to quit AppPuncher, or it will not restore your previous settings. Use File->Exit or click the red close button in the window, this will restore your previous proxy settings.
They've been very responsive getting the other Mac issues fixed and I've sent them a way to fix the Cmd-Q quit problem, so I expect it to be resolved soon.
10:33 AM
Just some feedback - Successfully installed RIA AppPuncher plus the FireFox extension under Vista. On launching AppPuncher, I saw the Untitled debug Session 1 panel but could not capture data as I kicked off my app in Flex 3 which interacts with web services. I have scoured for information - would appreciate a few pointers.
2:27 PM
weborb funciona correctamente en windows vista???
Necesitas una agenda para tus pacientes?
Agenda Business Customer
http://www.ddsmedia.net
10:00 AM
Post a Comment
<< Home