Overview of load testing with Taurus in Jenkins pipeline

Similar documents
Democratized Performance Test Platform. Open source, enterprise ready modular platform, that is tool chain friendly.

At Course Completion Prepares you as per certification requirements for AWS Developer Associate.

NGF0502 AWS Student Slides

Seven Habits of Highly Effective Jenkins Users

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

Index. Chaminda Chandrasekara 2017 C. Chandrasekara, Beginning Build and Release Management with TFS 2017 and VSTS, DOI /

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows,

Jenkins: AMPLab s Friendly Butler. He will build your projects so you don t have to!

AWS Lambda. 1.1 What is AWS Lambda?

Amazon Web Services Monitoring Integration User Guide

CloudShell Sandbox Plugin

Deploy and Secure an Internet Facing Application with the Barracuda Web Application Firewall in Amazon Web Services

Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)

Continuous Integration and Deployment (CI/CD)

Oracle Big Data Cloud Service, Oracle Storage Cloud Service, Oracle Database Cloud Service

AWS FREQUENTLY ASKED QUESTIONS (FAQ)

Risk Intelligence. Quick Start Guide - Data Breach Risk

Netflix OSS Spinnaker on the AWS Cloud

Developing Microsoft Azure Solutions (70-532) Syllabus

Orchestrating the Continuous Delivery Process

DevOps and DevSec with

Introduction to cloud computing

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

Table of Contents. Copyright Pivotal Software Inc, of

Lab 2 Third Party API Integration, Cloud Deployment & Benchmarking

FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE

Distributed CI: Scaling Jenkins on Mesos and Marathon. Roger Ignazio Puppet Labs, Inc. MesosCon 2015 Seattle, WA

IBM Cloud Developer Tools (IDT) and App Service Console Overview

Continuous Delivery for Cloud Native Applications

Siegfried Goeschl. Gatling Tales From A Journey

Immersion Day. Getting Started with Linux on Amazon EC2

flask-dynamo Documentation

About Intellipaat. About the Course. Why Take This Course?

JetBrains TeamCity Comparison

Snapshot Best Practices: Continuous Integration

The Guide. A basic guide for setting up your Samanage application

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies

Hybrid Cloud Automation using Cisco CloudCenter API

Single Sign-On for PCF. User's Guide

G, H I, J K, L. Git distributed version control system, 67 repository, 67 TFS, 68 GitFlow, 76 77

Amazon Web Services Course Outline

EdgeConnect for Amazon Web Services (AWS)

Flask Web Development Course Catalog

Introduction to Cloud Computing

( )

BeetleEye Application User Documentation

Module 1.Introduction to Business Objects. Vasundhara Sector 14-A, Plot No , Near Vaishali Metro Station,Ghaziabad

HP APPs v.12 Solutions for Dev-Ops

Jinkun Jang Samsung Electronics

TIBCO Cloud Integration Security Overview

Integration Service. Admin Console User Guide. On-Premises

DCLI User's Guide. Data Center Command-Line Interface

Enabling Developers with Open Source Nicholas Parks, Cloud Architect, Kenzan

Etlworks Integrator cloud data integration platform

TM DevOps Use Case TechMinfy All Rights Reserved

Web Dashboard User Guide

FROM VSTS TO AZURE DEVOPS

DevOps examples on NonStop Tools Overview. Cor Geboers, ATC Consultant

Deploying and Using ArcGIS Enterprise in the Cloud. Bill Major

Amazon. Exam Questions AWS-Certified-Solutions-Architect- Professional. AWS-Certified-Solutions-Architect-Professional.

Immersion Day. Getting Started with Windows Server on. Amazon EC2. Rev

DCLI User's Guide. Data Center Command-Line Interface 2.9.1

Automating Security Practices for the DevOps Revolution

AWS Setup Guidelines

DevOps Course Content

Introduction to ALM, UFT, VuGen, and LoadRunner

The 12-Factor app and IBM Bluemix IBM Corporation

ListManager. ListManager Basic Training

Mercury LoadRunner Quick Start

JMETER - TEST PLAN ELEMENTS

DEVOPS COURSE CONTENT

Best Practices for a Mission- Critical Jenkins

LAB EXERCISE: RedHat OpenShift with Contrail 5.0

Integration Service. Admin Console User Guide. On-Premises

withenv Documentation

SecureFactors. Copyright SecureFactors Corp ver 1.0a

Perceptive Media Portal

IBM emessage Version 9 Release 1 February 13, User's Guide

LINUX, WINDOWS(MCSE),

Automating Administration with Windows PowerShell 2.0

Think Small to Scale Big

AGL-Fuego display change flow

Avoiding regressions in an agile development environment. At Yottaa

release notes effective version 10.3 ( )

Tenable.io Container Security. Last Updated: November 02, 2018

Groovy in Jenkins. Ioannis K. Moutsatsos. Repurposing Jenkins for Life Sciences Data Pipelining

Amazon Web Services (AWS) Training Course Content

IaaS Configuration for Cloud Platforms

Full Stack Web Developer Nanodegree Syllabus

Banner Student. Banner Student: Communication Plan, Population Selection and Letter Generation. Description

DMN DECISIONS EXECUTION SCENARIOS

Immersion Day. Getting Started with Linux on Amazon EC2

AEM Code Promotion and Content Synchronization Best Practices

Edge Cloud Powered by Extreme Reach

Deploying Tableau at Enterprise Scale in the Cloud

Emulating Lambda to speed up development. Kevin Epstein CTO CorpInfo AWS Premier Partner

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event

DCLI User's Guide. Modified on 20 SEP 2018 Data Center Command-Line Interface

How to host and manage enterprise customers on AWS: TOYOTA, Nippon Television, UNIQLO use cases

IaaS Configuration for Cloud Platforms. vrealize Automation 6.2

Transcription:

Overview of load testing with Taurus in Jenkins pipeline how to get Taurus installed what a Taurus test script looks like how to configure Taurus to accurately represent use cases Actions in this session: dynamically capture session based values able to replay test at scale feeding data into test more realistic, user-oriented test cases provision a cloud environment accurately reflects production circumstances allows for most realistic test possible bring it all together into Jenkins pipeline build job to be automated Agenda: load testing continuous delivery pipeline in cloud load testing refresher and why we want to do this In functional testing, "We should fail the build if the test fails...load testing is more of a human decision." Taurus (CLI tool) as a testing tool what a file looks like installing the tool elements of test structure cloning production environments for testing can do so at little cost can automate it - game-changer for conducting tests in automation pipelines Jenkins pipeline how to configure Results, Reporting, and Cohesion Load Testing starts with simple idea: users working with applications expectations / criteria of response time and behavior of app under load "it's about scripting and understanding the steps a user will take through the (app), and ensuring they happen with the responsiveness and behavioral dynamics that we expect from the (app)" going toward user satisfaction and customer retention starts with user request and getting a response

turns into a script able to use virtual users to mimic and be tracked number can be multiplied and scaled based on size of app Challenges with Load Scripts finding dynamic, session-based values tokens that prevent certain exploits in your apps differs by user, which can break your test realistic user data avoiding repeating same request in testing - narrow scope validate correct behavior ensure that correct page is being returned production environments "The larger the scale gets, the more complicated the infrastructure gets, the weirder things happen." access to clouds allow you to duplicate your production environment Example Test Architecture: running against an application in AWS, has elastic load balancer running w/ 4 individual instances behind it, in an Amazon virtual private cloud, in an AWS network tool chain: GitHub, Visual Studio for editor, Packer for build, Fugue to deploy infrastructure into AWS, Taurus to run load tests, BlazeMeter for graphing results Getting Started: download Taurus at www.gettaurus.org platform-specific Python app; BZT package check dependencies; some XML libraries are idiosyncratic and tricky Taurus is triggered with BZT command YML or JSON file for argument; works well for integration Test case: sample app - Bootstrap framework, modeled after a medical benefit site login feature with a Taurus script, want to capture whole process and result in a "hello, user" banner at the top Test steps: 1) hit main home page, login page 2) send data to the form a) need to find "request verification" token embedded in page, in HTML source 3) send requests with embedded token 4) check for success by validating email address / username is present in return HTML Constructing the Taurus test and YML file:

* Taurus can use different execution engines to drive load - we're using JMeter for default 1) create execution conditions defines how test should unfold concurrency is number of virtual users going through the steps defined in test logic ramp up period helps deliver load in a gradual way duration is how long test should run; varies by app and intention iterations is how many times the test should run through the logic cycle the scenario is a bridge to the next section of the test that defines the web activity 2) start with default address (replace later with dynamic value from environment) think time creates small delay between requests "Users never move as fast as a computer." 3) data sources first row contains the names of the variables used in the requests (i.e. email, pass) CSV file 4) requests (steps that a user will take in application) homepage URL value matching for token found in HTML source (sometimes found in headers) * finding and capturing these values for reuse is one of the hardest things about load testing; if your test is failing when it shouldn't be, check the source code first!* login URL regular expression with greedy operator becomes "RVT" in subsequent steps and in post-ops post login (same end point, different verb) reusing email and pass in CSV file, which is now being used to send data into the app, plus token verify banner is correct ("Hello, ") logoff operation reuse token and post Taurus Modules: running scripts setting up criteria BlazeMeter reports Console output data is very readable average times Percentile Failures tracks local performance Run the test Locally first good for debugging see if the test works

see what performance is like allows to create idea of baseline very different from real-world environment BlazeMeter reports www.blazemeter.com captures graphs for CIDC tests put metrics in CSV or XML file for download and storage can be useful for Jenkins plugin data arranged visually hits per second average throughput errors in real time, sorted by response code and assertion name overall and average response times percentiles table of request stats Taurus Test in Jenkins Pipeline Packer creates Amazon image machine deploy using Fugue Pipeline feature is a scripted build in a Jenkinsfile getflow method is a great way build branches before pull requests are merged (multi-branch pipeline) different people working on different branches GitHub repo Jenkins will index and look at different branches Jenkinsfile using Groovy file works with concept of a stage graphs out build process in a user-friendly way when preparing environment, first step is to check out sourcecode use if conditions to guide different branches prepares a production-clone environment executes load test in real-world conditions upon passing, tears test down Production-Clone environment in AWS building a network creating an auto-scaling group creating a load balancer launch AMI AWS reports as "in service" when the instance is ready to receive requests export public address of load balancer

execute Taurus test teardown infrastructure