How to build CucumberJS projects with JenkinsCI

 

cucumberjs electron and jenkinsci

Web application monitoring with JenkinsCI

In the previous tutorial part, we have created the CucumberJS and ElectronJS project for monitoring the health of live web application projects.

In this part of the tutorial, we are going to automate the web application monitoring with the help of JenkinsCI continuous integration server. JenkinsCI will also generate us reports which can be accessed by non-technical project stakeholders.

Setting up web app monitoring with JenkinsCI and CucumberJS

 

electronjs and cucumberjs for effective web application monitoring

Why web apps need monitoring?

Once we get our web application projects up and running live, we have to constantly keep an eye on them. Such an activity works best as a scheduled and automated task.

In most cases we want to inspect the uptime of the web application as well as validate that all the important functionality is working as expected.

In this tutorial, we are going to setup such web app functionality monitoring with the help of JenkinsCI – continuous integration server and CucumberJS – a popular behaviour driven development framework.

Prepare to automatically monitor web apps

This tutorial has 2 parts. In the first one, we will cover the setup of test cases for manually testing live web apps in the headless web browser.

Behaviour Driven Development Frameworks

BDD most popular frameworks cucumber jadda jbehave

What is BDD?

Behaviour Driven Development or BDD is the process which combines ideas of domain driven design and test-driven development process (TDD).

BDD as a process aims to involve business users and raise their interest for the actual the software development process. This is done through simple, English-like domain specific language. Such language allows non-technical users to describe the expected application functionality and use cases by creating a human readable scenarios.

This domain specific language is also understood by computers. It allows delivery teams to maintain English like functionality description tests cases against the actual software functionality. It capturing the feedback about which parts of the application are implemented.

Buisness users get a rapid feedback on the application development progress. They can read and understand which desired software functionality is already implemented and which is still pending.

The example of such domain specific language might be the following:

Scenario 1: Purchased items should appear in the shopping cart
Given a visitor add the new item to their shopping cart
When he goes to shopping cart page 
Then shopping cart should have purchased item

 

This page aims to list the most popular BDD frameworks. With the short descriptions for each of them.

Continuous Integration for the development teams

What is continuous integration?

Continuous integration is the practice in the software building process where development teams have to maintain the central repository of their product code. All team members frequently / continuously merge their code changes to this central code repository.

Continuous integration has started as a part of extreme programming practice and now days is being used by many small and agile technical teams. The main goal is to reduce the project delivery times, integrate QA into the development process and apply test-driven / behavior-driven development methodologies.

continuous integration flow

Popular Continuous Integration Servers

Summary

Continuous Integration is a popular topic among software developers and architects. Agile methodology is reshaping the way many technology teams work and manual task automation plays a big role in delivering software more often. Continuous integration and continuous delivery helps teams to be confident to push their code to production at any time.

Good choice of CI tools and services exists for development teams to address delivery lifecycle automation.

popular continuous integration servers

Some continuous integration solutions are available only as SaaS (software as a service), others are self-hosted and the team has to install and maintain them on their own servers / infrastructure.

CI solutions also differ by the technology stack they are build upon, as well as having the proprietary and open source licenses.

The goal of this post is to list the most popular and commonly used continuous integration and continuous delivery tools and services in one place. Together with a short summary about each of them.

Installing and configuring JenkinsCI with Nginx

JenkinsCI nginx ubuntu and digital ocean

Overview

JenkinsCI is an open source, enterprise grade continuous integration server.  It has a large and  active community of contributors and supporters, especially from within enterprise technology space. With over 300k global installations and more than 2000 community plugins JenkinsCI is a very popular choice for automating software delivery lifecycles.

This post will walk you through a hands-on installation and configuration of JenkinsCI to be run in your own environment. We will make this installation production ready by adding additional load balancer and by configuring user management capability of JenkinsCI.

Pages: