Use Postman to Hammer a REST API

TL;DR: I had no idea you could run multiple instances of the Postman Collection Runner. This is a useful tool for sending buttloads of requests to a web service.

Recently, I needed an artificial way to test a local instance of a Spring Boot app with a flood of requests.

First, I set up a Postman request with some simple tests. One way to ascertain if the service is screwed up is to analyze a specific response header. I wrote a request with 2 tests, one to verify the response body and one to verify the header. I created a collection with this single request, then set up a Postman Collection Runner to run it against a local instance of the app.

Screen Shot 2017-03-14 at 2.43.10 PM

Running just one Collection Runner did not produce any failures, even with 50, 100, 200 iterations.  It looked like these requests are sent in series, which didn’t seem to be fast enough to freak out the app. Eventually, it occurred to me to click “Runner” to spawn a new instance of the Collection Runner. Eureka! I spawned 6 instances of the runner, with 50 tests each, and started them up as fast as I could click. Finally, this produced some failures! Several more runs produced similar results. This indicated app was was failing when stressed.

Screen Shot 2017-03-14 at 6.18.39 PM (2)

After reviewing some details in the Postman console, and the log file directly, I could identify some likely culprits in the code and do some fixin’. The results I got with Postman gave me concrete evidence of an issue, in a controlled local environment. Furthermore, I now have repeatable tests to use as I work through the issue. The next obvious step is to automate these requests… TO BE CONTINUED.

Configure Subversion client in IntelliJ 13 & OSX Mavericks

I was having trouble getting SVN to work right with IntelliJ, the IDE kept bitching about my client being out of date.
My working copies were all checked out with svn 1.8 on the command line, and IntellliJ is supposed to be using my command line client, so WTF.
Ends up IntelliJ, by default, looks for svn in /usr/bin.
I used homebrew to install svn 1.8, which is symlinked from /usr/local/bin. Mavericks comes with svn 1.7 preinstalled in /usr/bin, hence the error.
So, in the field for “use command line client” in the project settings, use an absolute path:

/usr/local/bin/svn

Apple’s AirDrop will not work between OSX and iOS? Really?

After wasting 30 minutes of my life trying to send a picture from a 2013 MacBook Air to an iPhone 5, I finally find this:
OS X and iOS use different AirDrop protocols and are currently not interoperable.

I can understand hardware limitations or whatever, but Apple chose to use the same name for this feature on 2 different platforms. This is misleading, and ultimately alienates users.