Webinar: Testing AWS applications locally and on CI with LocalStack [Experience (XP) Series]
Yash Bansal
Posted On: October 31, 2023
19514 Views
9 Min Read
In the vast expanse of cloud computing, Amazon Web Services (AWS) is a towering presence, shaping the digital landscapes of countless applications. However, as developers and testers navigate the complexities of AWS application development, a critical question emerges: How can one ensure the reliability and robustness of these applications in both local environments and continuous integration (CI) pipelines?
Let’s explore “Testing AWS Applications Locally and on CI with LocalStack.” This webinar is the gateway to unraveling the mysteries and mastering the art of testing AWS applications with the innovative power of LocalStack. As we delve into the intricacies of testing in a cloud-native environment, we aim to equip you with insights, strategies, and practical approaches to elevate your AWS testing practices.
Whether you’re a seasoned AWS developer or just beginning your journey into cloud-based applications, this exploration promises to demystify the challenges, unveil best practices, and guide you toward ensuring your AWS applications function seamlessly and excel in local development and CI environments.
Don’t miss out — tune in to this enlightening webinar and elevate your AWS testing game. Your journey to mastering AWS application testing begins here! So, without any further ado, let’s jump to the highlights of the webinar.
TABLE OF CONTENTS
About LambdaTest XP Series: Webinar & Speaker
LambdaTest Experience (XP) Series includes a series of recorded webinars/podcasts and fireside chats featuring renowned industry experts and business leaders in the testing & QA ecosystem. In this episode of XP series webinars, our speaker, Harsh Mishra, Engineer at LocalStack, discovers how to test your AWS applications locally and on CI with the LocalStack platform.
Harsh is an engineer at LocalStack working at improving the developer experience of engineers developing/testing cloud applications on AWS. He is also an AWS Community Builder in the Serverless category and has previously worked at Red Hat, HackerRank, and Quansight! He is deeply passionate about cloud & serverless development, including DevOps, practices, Web engineering, and using technology to mitigate climate change.
Getting Started with LocalStack
LocalStack is a powerful tool used for local AWS development and testing. Harsh showcases the step-by-step guide and gets started with LocalStack. You can refer to the support documentation here. Harsh highlights the prerequisite of having Docker installed. If not already installed, he guides you on how to download and install Docker, an essential component for running LocalStack containers. Then, you can configure the Docker Compose file. This file is crucial for defining the services to be run by LocalStack and can be customized based on specific AWS services required for testing.
Harsh demonstrates how to access the LocalStack dashboard, which provides a visual interface to monitor and interact with the emulated AWS services; you can explore this dashboard to ensure that LocalStack is running as expected.
Testing AWS Applications Locally with LocalStack
LocalStack is an open-source project that enables you to run your AWS applications on your local machine without a real AWS account. It helps the developers to solve the traditional inner dev loop problem, like how it helps you to revolutionize your entire testing loops directly for your AWS applications and how LambdaTest provides us this HyperExecute environment that allows us to run all our tests right on the cloud itself, and make sure that everything is running correctly without having to spend a lot upon AWS developer accounts or getting these AWS services up and ready.
Running LocalStack Test Cases On HyperExecute
Harsh showcases how to run LocalStack test cases on HyperExecute by leveraging GitHub Actions, which was much faster than anything he had experienced. To setup HyperExecute on GitHub Actions, you need to create the following two files:
- A GitHub Action workflow at .github/workflows/main.yml downloads the HyperExecute CLI binary and sets it up.
- A HyperExecute file located at he.yml declares the workflow of the pipeline execution via a YAML configuration.
For more detailed information, refer to the documentation on integrating LocalStack with LambdaTest.
Q&A Session
Q: What’s the most common challenge developers face during testing in cloud development, and how does LocalStack mitigate this issue?
Harsh: In the old days of development, we used to have all of the software components on our local machine. We had the front end, we had the backend, we had the databases, and everything was running on our local machine. There was this concept of inner dev loop that many developers used to challenge. Like every change you make on your application, it should be reflected on your local development server almost immediately.
You should not see a delay. You should not have a very bad developer experience while you’re building these real-time applications out there. Now, with the introduction of public cloud service providers like AWS, Azure, GCP, and a lot of other cloud-native services, that are making our lives easier. But the problem is that traditionally, associating with these public cloud service providers is how we can build and test our applications. This problem can be solved with LocalStack and test your applications locally.
Q: Can you share an example of how LocalStack improves the dev & test experience for serverless applications?
Harsh: Sure, regarding the serverless application development, so far, in those particular use cases, LocalStack already supports many different AWS services. I can just navigate to my documentation; you can easily take a look, as shown above in the section on how to get started that has pretty basic installation instructions. This will walk you through how you can install LocalStack on your machine, what are the different options that are available to you, and how you can get started with the whole thing.
So, if it’s your first time, you should install the LocalStack CLI because the whole CLI acts as a control plane for managing your LocalStack container and all of your configuration. Once you install it, you can just go on your terminal or command line and test your applications locally.
Q: Can LocalStack emulate IAM policies locally as well? Can developers test their IAM security using LocalStack locally?
Harsh: LocalStack mocks the IAM rules and policies on your local developer machine. But with that said, you can test out your IAM policies and make sure that they are meeting all of those fringe end-like constraints before you deploy to a live production environment. So, in this case, we have pretty good docs over here. So maybe I can just go right here. And you can get to see we have pretty good IAM docs. And you can see how you can create your IAM roles, users, and policies on your developer machine. But unless and until you’re using this new feature called enforcing IAM policies, you cannot test if your IAM policies are exactly adhering to each other.
So basically, make sure you can test out the whole policy on the developer machine; you can use this one flag called enforce IM. You can set it to one, and LocalStack will enforce all IAM policies on your local machine. This means that if you are defining a particular resource within IAM policy, it won’t be able to access the other resource unless and until it is explicitly allowed.
Q: How seamlessly does LocalStack integrate with HyperExecute or similar test execution providers, and what benefits can teams expect regarding testing speed and reliability?
Harsh: With HyperExecute, the entire testing experience becomes pretty much seamless and quite fast as well. So, if you have HyperExecute scripts, you can execute the whole thing right on the HyperExecute environment with some local execution capabilities. After executing your tests, you can see your test results on the LambdaTest dashboard. Overall, LocalStack integrates with HyperExecute and other test execution providers, enhancing testing speed and reliability. This integration empowers teams to execute tests locally and on CI/CD platforms efficiently, ensuring rapid feedback loops, increased reliability, and a smoother testing experience.
Wrapping Up: I hope It was Enjoyable!
As we draw the curtains on our exploration of “Testing AWS Applications Locally and on CI with LocalStack,” we trust you’ve discovered valuable insights into the nuanced world of AWS application testing. We hope this blog has not only been informative but also an enjoyable companion on your testing journey.
If you found the exploration engaging, we extend a warm invitation to watch the accompanying webinar, where theoretical knowledge transforms into actionable wisdom. LambdaTest Experience (XP) Series promises more illuminating sessions, so stay tuned. Don’t miss out on the latest testing trends — Subscribe to our newsletter, Coding Jag, and ensure you’re at the forefront of the testing realm. Until our next rendezvous, keep the testing flame burning bright!
#LambdaTestYourApps❤️
Got Questions? Drop them on LambdaTest Community. Visit now