Monday, January 25, 2016

AWS Certificate Manager, Easy Button


I know the pains of managing SSL certificates for a data center or even the cloud.  It is a manageable pain, you can live with it, but no one wanted to deal with the pain.  

  • Acquiring an SSL Cert was never automated
  • Deploying SSL Cert to network gear had challenges
    • Automating between different vendors
    • Keeping scripts updated
    • Adding/Removing network gear
    • Documenting the process, so next person could do it
  • Calendar/Scripts to notify when CERTs are expiring
  • Project Manager reminding people to do the work
I recently built a RunSignUp racing results app using Ionic/PhoneGap/Angular which is built for Web, Android, and iOS.  One of the items on the to-do list - setup SSL cert.  I was dreading this task, the details of getting the moving parts correct is a time sink.  Well here is a case where slight procrastination worked out pretty well - AWS announced the AWS certificate manager. 


1. Add your domain name


2. Review your request


3. Wait for validation

We can see in status in list view as well





4. Site owner receives and responds to email


5. We are now ready to go!


6. Before the CERT was deployed


7. We can now make our cloudfront domain use the cert.


8. Send a Cache Invalidation

9. And now we are green and serving on SSL


10. Change CloudFront behavior to alway redirect to HTTPS






Wednesday, January 13, 2016

Gulp bump minor number for ionic

If you need a full blown approach for bumping your version numbers then there is a robust set of build tools by Robert Shedd 
https://github.com/shedd/ionic_build_tools#bump-app-versions
His build tools provide more than just gulp commands, the readme alone can save you time and help you avoid mistakes.

However, I just needed something simple for bumping version numbers in package.json and config.xml.

Extra NPM packages

  • npm install gulp-xml-editor --save-dev
  • npm install gulp-json-transform --save-dev 


Requires

  • var jsonTransform = require('gulp-json-transform');
  • var xeditor = require('gulp-xml-editor');

Gulp Task
gulp.task( 'package', ['sass'], function(){
gulp.src('./package.json')
.pipe( jsonTransform(function(data){
var version = data.version.split('.');
version[2]++;
data.version = version.join('.');
return data;
},2))
.pipe(gulp.dest('.'));
gulp.src("./config.xml")
.pipe(xeditor(function(xml, xmljs) {
var version = xml.root().attr('version').value().split('.');
version[2]++;
  xml.root().attr('version',version.join('.'));
  return xml;
}))
 .pipe(gulp.dest("."));
});





Thursday, January 7, 2016

Bucket List item Done - Firefox Plugin

It may have taken a decade and a good reason but I finally wrote a Firefox Plugin!

Why Firefox and not Chrome?  

It is an integration with Selenium IDE which is a Firefox extension.

What does it do?

Provided integration with Selenium IDE to record browser traffic and save results as JMeter load test (.jmx file).  You can turn it on, run your Selenium test, turn if off and then you have JMeter version of your Selenium test.  Take the output and load it directly into JMeter or run it scale on RedLine13.

Why did I write this?

A use case I hear often is how to scale real user testing.  The typical answer is run some Selenium tests in parallel with JMeter tests.  There was no quick way to play your selenium test and record a JMeter test.  Problem solved :)

Did you enjoy writing this plugin?

Yes and No.  Yes, had to learn something new.  Once you learn how to integrate with Firefox (or any system) so many other possibilities open up.
No - I had to use the XUL system instead of the update Firefox extension mechanism.

Where is the code?

I made it GPL and opened it up https://github.com/redline13/selenium-jmeter.
Any ideas for extending or contributing would be welcome.

How do I use it?

I wrote the intro and tutorial at RedLine13 blog

  • https://www.redline13.com/blog/2016/01/introducing-selenium-ide-jmeter-plugin
  • https://www.redline13.com/selenium-jmeter-plugin-tutorial

Questions?

If you have any questions feel free to send me a note, but other public mechanisms would be

  • Pull request if you want to add something
  • Ask a question in RedLine13 forum  https://groups.google.com/forum/#!forum/redline13
  • Get a basic RedLine13 subscription and will provide support and get feature requests into the pipeline