Summary The importance of testing your software is widely talked about and well understood. What is not as often discussed is the different types of testing, and how end-to-end tests can benefit your team to ensure proper functioning of your application when it gets released to production. This week Luciano Renzi shares the work that he has done on Golem, a framework for building and executing an automation suite to exercise the entire system from the perspective of the user. He discusses his reasons for creating the project, how he things about testing, and where he plans on taking Golem in the future. Give it a listen and then take it for a test drive. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Luciano Renzi about Golem, a framework and automation tool for end-to-end testing in Python Interview Introductions How did you get introduced to Python? What is golem and what motivated you to create it? What was your inspiration for the name? Why did you choose to use Python for Golem and if you were to start over today would you make the same choice? For someone who is unfamiliar with the concept, can you describe what end-to-end testing is and the reasons for making it part of their development process? What is the main goal of Golem What does the internal architecture and implementation of Golem look like and how has that evolved from when you first started the project? How does Golem compare to other Python libraries for automated browser testing and what was lacking in the existing solutions when you created it? What are the differences between golem and robot framework? What about projects written in other languages such as protractor? One of the intriguing features of Golem is the web interface for constructing tests. What are the benefits of codeless automation & record-playback functionality? What are some of the most challenging aspects of building and maintaining Golem? It seems that every browser automation library is ultimately a wrapper around Selenium. Why is a wrapper necessary and why haven’t any strong alternatives been created? What are the advantages of making Golem a framework for test automation, rather than a library? What are some of the most interesting or unexpected uses for Golem that you have seen? What do you have planned for the future of Golem? What is the current state of end to end automation and how do you see it evolving in the future? How do you think machine learning and AI will be used in test automation? Keep In Touch luciano-renzi on GitHub @lucianorenzi_ on Twitter Picks Tobias Weapons of Math Destruction Links Golem Elementum Pascal Watir JUnit Selenium Page Object Pattern Selenium Grid Sauce Labs py.test Podcast.init Interview About Py.Test Robot Framework Mechanize Acceptance Tests Protractor Webdriver.io Appium The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA