State of Testing Jason Kenny – ATS committer.

Slides:



Advertisements
Similar presentations
Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
Advertisements

WebGoat & WebScarab “What is computer security for $1000 Alex?”
20-753: Fundamentals of Web Programming 1 Lecture 11: Web Server Case Study Fundamentals of Web Programming Lecture 11: Web Server Case Study.
DT211/3 Internet Application Development Active Server Pages & IIS Web server.
Server-Side vs. Client-Side Scripting Languages
Creating WordPress Websites. Creating a site on your computer Local server Local WordPress installation Setting Up Dreamweaver.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Useful Tools for Testing
Fall 2011 Nassau Community College ITE153 – Operating Systems Session 24 NTFS Permissions and Sharing Printers 1.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 12: Managing and Implementing Backups and Disaster Recovery.
Module 1: Installing Internet Information Services 5.0.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
DONE-10: Adminserver Survival Tips Brian Bowman Product Manager, Data Management Group.
Sonam Chauhan Corporate Express B2B Change Management at Corporate Express.
Session 10 Windows Platform Eng. Dina Alkhoudari.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Enabling High-Quality Printing in Web Applications
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Oct EPICS Meeting, PAL, Korea Control System Studio Training.
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Jan Control System Studio Training - Archive System Setup.
DireXions – Your Tool Box just got Bigger PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond.
Chapter 6 Server-side Programming: Java Servlets
Apache, MySQL and PHP Installation and Configuration Chapter 1 Apache Installation and Configuration.
Topics Sending an Multipart message Storing images Getting confirmation Session tracking using PHP Graphics Input Validators Cookies.
Videos. Adding Videos to a Web Page Videos can make our pages more interesting and engaging. Most video-hosting services, such as YouTube, will provide.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
6 th Annual Focus Users’ Conference 6 th Annual Focus Users’ Conference Import Testing Data Presented by: Adrian Ruiz Presented by: Adrian Ruiz.
Module 7: Advanced Application and Web Filtering.
CMap Version 0.16 Ben Faga. CMap CMap Version 0.16 Bug fixes and code optimizations More intuitive menu system Asynchronous loading of comparative map.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Welcome! Welcome! Agenda - Wednesday  Introduction  Installation Tips  New Client Features  New Application Design Features  Installing Chart Director.
(ITI310) By Eng. BASSEM ALSAID SESSIONS 10: Internet Information Services (IIS)
PC Windows CVS Server PC Linux Triple’A Test Server Triple’A CVS Versioning 2. Add object to CVS Server - add.sh [format_name.fmt] - cvs commit 1. Export.
APP DESIGN AND DEVELOPMENT WITH THE IONIC FRAMEWORK Chuck Leone
Module 4: Troubleshooting Web Servers. Overview Use IIS 7.0 troubleshooting features to gather troubleshooting information Use the Runtime Control and.
MirrorManager: The Fedora Mirror System Matt Domsch Fedora Mirror Wrangler Linux Technology Strategist Office of the CTO Dell, Inc.
Data and tools on the Web have been exposed in a RESTful manner. Taverna provides a custom processor for accessing such services.
PHP Basics and Syntax Lesson 3 ITBS2203 E-Commerce for IT.
Autodesk Dev Days 2015 The road ahead DevDays 2015
Automatic Documentation Systems
Data Virtualization Tutorial… SSL with CIS Web Data Sources
Open-O Integration Project Introduction
Development Environment
Essentials of UrbanCode Deploy v6.1 QQ147
Hyrax Configuration.
Data Virtualization Tutorial… CORS and CIS
FMAnywhere: Getting Started.
Introduction to ZBOSS Embedded Systems Software Training Center
Build Better Apps with MEAN.
Enhancing Cloud Foundry with CLI Plugins
Building Web Applications
User Guide Subversion client TortoiseSVN
Webscarab, an introduction.
Scrapy Web Cralwer Instructor: Bei Kang.
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
Electronic Field Study Advanced User Training
Moving from Studio to Atelier
Runtime Root feature Jason Kenny.
Consult America Technology Consulting Services
What’s new in ASP.NET Core and Entity Framework 2.2 (Preview 3)
Agile testing for web API with Postman
Website Testing Checklist
Web Manager Features Diagram
Leveraging ArcGIS Online Elevation and Hydrology Services
Python and REST Kevin Hibma.
Dreaming up a CMS in Go (golang)
Presentation transcript:

State of Testing Jason Kenny – ATS committer

Overview What is New Running tests Making a test Plans for the future

What is new in Testing since last summate The new tests have been committed into 7.1 and master! New tests have been added Fixes have been made to correct some false positive failures Better port selection code for Linux Some race conditions with start up of the micro server Other fixes in ATS to make it more testable Options to control timeout/kill delays MakeOriginServer api as been improved! New ssl=True|[False] to make it easier to start a https server New option={} to allow passing various options to the microserver

Microserver supports new observers New –load = <python file> options Will auto import needed API to file Call Hooks.register(hook_type,callback) Current hooks are limited but will grow Example: def observe(headers): if 'via' in headers: … Hooks.register(Hooks.ReadRequestHook, observe)

Running Tests is Easy! It does not bite! … so run them!

Layout in Source Tests/ autest.sh – “training wheel” wrapper script to run the tests bootstrap.py – script to setup a virtualenv with testing engine (called by autest.sh) tools/ - contains micro server, traffic replay gold_tests/ - contains the tests autest-site/ contains extension for ATS testing <some folder> - contains some set of tests for some concept

Running AuTest - As easy as 1-2-3 (almost) Build ats and install to a directory Recommend to add a –prefix /home/<user>/ats/<version> Cd tests ./autest.sh --ats-bin=<path/to/bin> --sandbox /tmp/sb The bootstrap script should work … but it is not perfect More advance users: Install python 3.5 or higher Pip install autest hyper Use autest directly (no wrapper script) Needs to run in gold_tests directory or with a –D option to point to this location.

Making tests is easy(er) to do!! So why have you not made one!

Structure of a basic test Config Files Some Client: Curl Traffic-replay Server: uServer ATS

Basic Test template (Part 1) Test.Summary = '''Tell us what this test does''' ts=Test.MakeATSProcess("ts") # Define default ATS server=Test.MakeOriginServer("server") #define a server #add response to the server dictionary server.addResponse("sessionfile.log", request_header, response_header) #update a config files ts.Disk.records_config.update({ 'proxy.config.diags.debug.enabled': 1, 'proxy.config.diags.debug.tags': 'url.*', }) ts.Disk.remap_config.AddLine( 'map http://www.example.com http://127.0.0.1:{0}'.format(server.Variables.Port) )

Basic Test template (Part 2) # create a new test run tr=Test.AddTestRun() tr.Processes.Default.Command='curl "http://127.0.0.1:{0}/" --verbose'.format(ts.Variables.port) tr.Processes.Default.ReturnCode=0 # make sure we start the server and ATS process before this Curl command tr.Processes.Default.StartBefore(server) tr.Processes.Default.StartBefore(Test.Processes.ts) # test the response is what we expect tr.Processes.Default.Streams.stderr="gold/remap-hitATS-404.gold" # are the server and ATS still running tr.StillRunningAfter=server tr.StillRunningAfter=ts

Plans for the future Add a condition feature test Will allow for testing for if a program ( such as curl or ATS) support a certain feature as a requirement for a test to run Add extension to define a test with traffic-replay Should allow auto setup of micro-server for Should be easier to setup for common send-response tests Should make it easier to make a test based on issue seen in production Update/add new reporters Add a junit format output options Add API for defining new Tester objects Implement better ways to control if a test fails or warns Implement –j option

Thank you! Question? AuTest web site: https://bitbucket.org/dragon512/reusable-gold-testing-system  Autest documentation:  https://bitbucket.org/dragon512/reusable-gold-testing-system/wiki/Home  Test extension documentation for ATS:  https://github.com/apache/trafficserver/blob/master/tests/getting_started.md