Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

CI/CD for Test Automation: Jenkins & GitHub Actions

Packt via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
This course features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this comprehensive course, you will dive into the world of Continuous Integration and Continuous Delivery (CI/CD) with a focus on automating tests using Jenkins and GitHub Actions. Learn how to set up CI/CD pipelines to improve software quality, streamline testing workflows, and accelerate development cycles. By mastering these tools, you'll become proficient in creating and managing pipelines for backend, frontend, API, E2E, and performance testing. The course starts by laying the foundation of CI/CD, helping you understand its significance in modern software development and testing. You will then progress through configuring Jenkins and GitHub Actions, creating jobs and pipelines for various types of testing, and analyzing results. Additionally, you’ll learn about deploying applications using Fly.io and integrating deployment into your CI/CD processes. The course will teach you practical skills to implement test automation at every stage of your pipeline, ensuring robust, reliable, and scalable applications. This course is ideal for testers, developers, and DevOps professionals who want to integrate CI/CD practices into their workflows. It assumes some familiarity with software development and testing concepts, making it best suited for those with a basic understanding of coding or automation. The course is perfect for those looking to deepen their knowledge of test automation tools and CI/CD pipelines, regardless of whether you're familiar with Jenkins or GitHub Actions. By the end of the course, you will be able to create and optimize CI/CD pipelines, automate unit, API, E2E, and performance testing, integrate testing and deployment into Jenkins and GitHub Actions, and ensure seamless application delivery with integrated testing reports and performance thresholds.

Syllabus

  • Course Introduction and Overview
    • In this module, we will introduce you to the structure and objectives of the course, setting the stage for mastering test automation with Jenkins and GitHub Actions. You will also be introduced to BugTracker Pro, the application under test, and learn how to leverage it for real-world CI/CD practices. Finally, we’ll cover prerequisites and tips to maximize your learning experience throughout the course.
  • Introduction to CI/CD
    • In this module, we will explore the foundational principles of Continuous Integration (CI) and Continuous Delivery (CD), understanding their impact on modern software development. You’ll also uncover the vital role CI/CD plays in Agile and DevOps environments, improving workflows and collaboration. Additionally, we’ll dive into the responsibilities of testers within CI/CD pipelines and guide you on how to clone the project repository to run locally for hands-on practice.
  • CI/CD Tools and Ecosystem
    • In this module, we will introduce you to the most widely-used CI/CD tools, including Jenkins and GitHub Actions, and their critical role in automation. You'll learn how to choose the right tool based on your project’s testing requirements, followed by hands-on setup guides for both GitHub Actions and Jenkins. By the end, you'll be equipped to implement and configure these tools for automated testing in your CI/CD pipeline.
  • Anatomy of a CI/CD Pipeline
    • In this module, we will explore the anatomy of a CI/CD pipeline, delving into its stages and how it facilitates the seamless integration of software delivery. You'll understand the differences in pipeline responsibilities for developers and testers, ensuring alignment in workflows. Additionally, you’ll gain hands-on experience by creating Jenkins jobs and GitHub Actions pipelines through their intuitive UIs, automating key tasks in the process.
  • Unit Testing in Jenkins
    • In this module, we will focus on integrating unit testing into Jenkins pipelines. You’ll learn how to set up Jenkinsfiles in your IDE to automate both backend and frontend unit tests. Additionally, you’ll explore how to publish and visualize test results and code coverage reports for both frontend and backend components. Finally, you’ll optimize testing performance by enabling parallel test executions to speed up the testing process in Jenkins.
  • API Testing in Jenkins
    • In this module, we will dive into API testing within Jenkins, starting with how to run API tests locally as part of your development process. You’ll also learn how to configure Jenkins to launch applications for testing, execute API tests in your CI/CD pipeline, and generate reports. By the end, you'll know how to publish and visualize API test results within Jenkins, ensuring smooth and efficient API testing workflows.
  • E2E Testing in Jenkins
    • In this module, we will guide you through executing end-to-end (E2E) tests, starting with running them locally to ensure smooth integration. You’ll then learn how to set up Jenkins to execute E2E tests within your CI/CD pipeline. Finally, you’ll discover how to publish and analyze the results of your E2E tests in Jenkins, ensuring the application works as expected across all components.
  • Performance Testing in Jenkins
    • In this module, we will cover performance testing within Jenkins, starting with running performance tests locally to identify potential bottlenecks. You’ll then learn how to integrate and execute performance tests within your Jenkins pipeline. Additionally, we’ll guide you through generating and publishing performance test results, and adjusting performance test thresholds to refine your build conditions in Jenkins, ensuring optimal application performance.
  • Unit Testing in GH Actions
    • In this module, we will focus on executing unit tests within GitHub Actions. You’ll learn how to configure and run both backend and frontend unit tests in your CI/CD pipeline. Additionally, we’ll guide you through generating and publishing test results and code coverage reports for both frontend and backend components. You’ll also discover how to create code coverage comments for better visibility and enhanced collaboration in GitHub Actions, making your testing process even more effective.
  • API Testing in GH Actions
    • In this module, we will guide you through the process of API testing within GitHub Actions. You’ll begin by learning how to run API tests locally, followed by setting up your application to run within the GitHub Actions pipeline for testing. We will also cover how to execute automated API tests and publish the results, ensuring clear and actionable reports within GitHub Actions for better insights and validation.
  • E2E Testing in GH Actions
    • In this module, we will cover how to perform end-to-end (E2E) testing within GitHub Actions. You’ll start by running E2E tests locally to verify the application’s overall functionality. Then, we’ll walk you through configuring and executing these tests in your GitHub Actions pipeline. Finally, you’ll learn how to generate and publish E2E test reports, providing detailed feedback within GitHub Actions for better tracking and analysis.
  • Performance Testing in GH Actions
    • In this module, we will explore performance testing within GitHub Actions. You’ll start by learning how to run performance tests locally, ensuring that your application performs well before automation. We’ll then guide you through integrating and executing these tests in your GitHub Actions pipeline. Finally, you’ll learn how to generate and publish performance test results and adjust test thresholds, influencing build outcomes based on performance metrics.
  • Deploy BugTracker App Manually
    • In this module, we will guide you through the manual deployment of the BugTracker app using Fly.io. You’ll start by exploring Fly.io and its capabilities for seamless web app deployment. Then, we’ll walk you through the step-by-step process of deploying both the backend and frontend of the BugTracker app, configuring the necessary database volumes for persistence, and finally setting up a staging environment to test your deployments before production.
  • Deploy BugTracker Through Jenkins
    • In this module, we will walk you through deploying the BugTracker app using Jenkins. You’ll begin by learning how to restart Jenkins to apply configurations or troubleshoot issues. Then, we’ll guide you on securely adding Fly.io tokens to Jenkins for seamless deployment automation. You’ll also learn how to use Jenkins environment variables to deploy the staging version, run post-deployment tests, and ultimately deploy the BugTracker app to production, ensuring smooth and efficient live application delivery.
  • Deploy BugTracker Through GH Actions
    • In this module, we will guide you through deploying the BugTracker app using GitHub Actions. You’ll start by configuring GitHub checks to automate the verification of code changes and deployments. Next, you’ll learn how to integrate Fly.io with GitHub Actions for seamless deployment of the staging version of BugTracker. We’ll also show you how to securely store deployment secrets and automate post-deployment tests to ensure the app is working perfectly after going live.
  • Closing Remarks
    • In this final module, we will wrap up the course with a reflection on the key topics covered, reinforcing the best practices for implementing CI/CD using Jenkins and GitHub Actions. You’ll gain final insights into the core principles of test automation and how to apply them effectively in your projects. This is your opportunity to solidify your understanding and prepare to implement CI/CD in real-world software development environments.

Taught by

Packt - Course Instructors

Reviews

Start your review of CI/CD for Test Automation: Jenkins & GitHub Actions

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.