March 20, 2021

Serverless UI testing using Selenium, AWS Lambda, AWS Fargate, and AWS Developer Tools

Since the post Using AWS CodePipeline, AWS CodeBuild, and AWS Lambda for Serverless Automated UI Testing was published, things have evolved with Chrome headless and Firefox headless being supported natively. AWS Lambda now supports container images, AWS Step Functions has added support for Map state and its integration with Lambda, and AWS Fargate has enabled automating the UI testing completely using serverless technologies. The goal of this post is to demonstrate how to use AWS Developer Tools) to build a continuous delivery pipeline that automatically deploys a test environment and runs a UI test against it. We also explain how to build a container image which includes Chromium browser, Firefox browser, Selenium, and its dependencies, which are used in Lambda and Fargate. You can accelerate the testing by launching multiple test cases in parallel using the Map state in Step Functions. Read more

December 21, 2020

Serverless API Backend for xBrowserSync

Ever since Xmarks Sync was shutdown by LogMeIn(LastPass), I was looking for a better cross browser & cross device bookmark synchronization service. While reviewing PrivacyTools I came across xBrowserSync which looked like a better alternative. I liked the way it has been implemented using SHA-256 hash, 250000 iterations and AES-GCM algorithm to generate the hash of the custom password provided. Additionally, xBrowserSync provides a way to configure your own API backend where you store your information. Read more

September 6, 2018

Running AWS Glue jobs connecting to database in VPC with Custom DNS

AWS Glue is a fully managed ETL service that makes it simple and cost-effective to categorize your data, clean it, enrich it, and move it reliably between various data stores. Glue job is the business logic that automate the extract, transform, and transfer data to different locations. Glue job creates a Hadoop task in the backend and since it uses Hadoop ecosystem all the nodes in the cluster must be able to find using the FQDN and communicate with each other. Read more

September 23, 2017

Using AWS CodePipeline, AWS CodeBuild, and AWS Lambda for Serverless Automated UI Testing

Testing the user interface of a web application is an important part of the development lifecycle. In this post, I’ll explain how to automate UI testing using serverless technologies, including AWS CodePipeline, AWS CodeBuild, and AWS Lambda. I built a website for UI testing that is hosted in S3. I used Selenium to perform cross-browser UI testing on Chrome, Firefox, and PhantomJS, a headless WebKit browser with Ghost Driver, an implementation of the WebDriver Wire Protocol. I used Python to create test cases for ChromeDriver, FirefoxDriver, or PhatomJSDriver based the browser against which the test is being executed. Resources referred to in this post, including the AWS CloudFormation template, test and status websites hosted in S3, AWS CodeBuild build specification files, AWS Lambda function, and the Python script that performs the test are available in the serverless-automated-ui-testingGitHub repository. Read more

August 2, 2017

Create Multiple Builds from the Same Source Using Different AWS CodeBuild Build Specification Files

In June 2017, AWS CodeBuild announced you can now specify an alternate build specification file name or location in an AWS CodeBuild project. In this post, I’ll show you how to use different build specification files in the same repository to create different builds. You’ll find the source code for this post in the GitHub repo. Requirements The AWS CLI must be installed and configured. Solution Overview I have created a C program (cbsamplelib. Read more

© Prakash P 2015 - 2021

Powered by Hugo & Kiss.