SlideShare una empresa de Scribd logo
1 de 22
Jenkins and Django
Lucio Grenzi
l.grenzi@gmail.com
Lucio Grenzi
l.grenzi@gmail.com – Freelance
2
Who am I?
• Delphi developer for 11 years
• Now freelance and Web developer
• Javascript addicted
Nonantolando.blogspot.com
https://plus.google.com/108943068354277861330
http://it.linkedin.com/pub/lucio-grenzi/27/2bb/2a
Lucio Grenzi
l.grenzi@gmail.com – Freelance
3
Agenda
• Jenkins: an intro
• Why use it
• Installation on a Ubuntu machine
• Testing
Lucio Grenzi
l.grenzi@gmail.com – Freelance
4
Jenkins: a complete solution
• Jenkins is an automated continuous integration
server
• Automated testing, building, mantaining your
code
• Enforce quality control
• Manage release process → continuos delivery
Lucio Grenzi
l.grenzi@gmail.com – Freelance
5
Jenkins: facts
• Written in java
• 600+ to customize Jenkins in every aspects
• 1000+ public repositories in Github
• 500+ contributors
• Free and open source
• Widely used tools for maintaing continuos
integration cycle
Lucio Grenzi
l.grenzi@gmail.com – Freelance
6
Non java languages supported
• Python
• Ruby
• PHP
• Node.js
• …..
Lucio Grenzi
l.grenzi@gmail.com – Freelance
7
Why Jenkins?
• Testing, building, maintaining, doing releases
by hand is error prone
• promote test driven development reduce
surprises
• frequent deployment
• Find bugs quickly
Lucio Grenzi
l.grenzi@gmail.com – Freelance
8
Jenkins
• Easy to install, upgrade and configure
• Monitor external tools
• No limit of number of jobs
• Lots of external tool to explore
Lucio Grenzi
l.grenzi@gmail.com – Freelance
9
Continuous integration
• is the practice of merging all developer working
copies with a shared mainline several times a
day. Its main aim is to prevent integration
problems
- wikipedia -
Lucio Grenzi
l.grenzi@gmail.com – Freelance
10
Continuous delivery
• is a software development discipline where you
build software in such a way that the software
can be released to production at any time.
Lucio Grenzi
l.grenzi@gmail.com – Freelance
11
You’re doing continuous delivery when:
• Your software is deployable throughout its lifecycle
• Your team prioritizes keeping the software deployable
over working on new features
• Anybody can get fast, automated feedback on the
production readiness of their systems any time somebody
makes a change to them
• You can perform push-button deployments of any version
of the software to any environment on demand
- http://martinfowler.com/bliki/ContinuousDelivery.html -
Lucio Grenzi
l.grenzi@gmail.com – Freelance
12
Install on an Ubuntu server
• wget -q -O - http://pkg.jenkins-
ci.org/debian/jenkins-ci.org.key | sudo apt-key
add -
• sudo sh -c 'echo deb http://pkg.jenkins-
ci.org/debian binary/ >
/etc/apt/sources.list.d/jenkins.list'
• sudo apt-get update
• sudo apt-get install jenkins
Lucio Grenzi
l.grenzi@gmail.com – Freelance
13
Link between Django and jenkins
• Apt-get install python-pip
• Pip install django-jenkins
• Pip install virtualenvwrapper
• Pip install django
Lucio Grenzi
l.grenzi@gmail.com – Freelance
14
Configuring django project
• Add 'django_jenkins' to your INSTALLED_APPS
list
• $ ./manage.py jenkins
• JENKINS_TASKS = (
'django_jenkins.tasks.run_pylint',
'django_jenkins.tasks.with_coverage',)
Lucio Grenzi
l.grenzi@gmail.com – Freelance
15
Testing web apps
• Sometimes is a complex task,
• a Web application is made of several layers of
logic
– HTTP-level request handling,
– form validation and processing,
– template rendering.
Lucio Grenzi
l.grenzi@gmail.com – Freelance
16
The Django’s way
• Unittest: module built in to the Python standard
library
• Nose framework: uses custom test loader
causes troubles with Django code
• django-discover-runner requires Django 1.4
built-in in Django 1.6
Lucio Grenzi
l.grenzi@gmail.com – Freelance
17
django-discover-runner
• add a test_settings.py file to your app package
• django-admin.py test
--settings=myapp.test_settings myapp
Lucio Grenzi
l.grenzi@gmail.com – Freelance
18
Quality managment
Continuos performance test
– Selenium
– Graphite
– Cobertura
Lucio Grenzi
l.grenzi@gmail.com – Freelance
19
Best practices
• Plan disk usage
• Do distribute builds
• Discard old build records to keep Jenkins
status healthy
Lucio Grenzi
l.grenzi@gmail.com – Freelance
20
Demo
Lucio Grenzi
l.grenzi@gmail.com – Freelance
21
Questions?
Lucio Grenzi
l.grenzi@gmail.com – Freelance
22
Thank you
Creative Commons via tcmaker.org

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Github basics
Github basicsGithub basics
Github basics
 
Get Ur Git On: Introduction and getting started with Github
Get Ur Git On: Introduction and getting started with GithubGet Ur Git On: Introduction and getting started with Github
Get Ur Git On: Introduction and getting started with Github
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
A prentation on github
A prentation on githubA prentation on github
A prentation on github
 
Git,Github,How to host using Github
Git,Github,How to host using GithubGit,Github,How to host using Github
Git,Github,How to host using Github
 
Git and Github workshop
Git and Github workshopGit and Github workshop
Git and Github workshop
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 GolangCOSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
 
GitHub Presentation
GitHub PresentationGitHub Presentation
GitHub Presentation
 
Cloud agnostic serverless with fn project
Cloud agnostic serverless with fn projectCloud agnostic serverless with fn project
Cloud agnostic serverless with fn project
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Introduction to github slideshare
Introduction to github slideshareIntroduction to github slideshare
Introduction to github slideshare
 
What we use to build Android apps at Silicon Straits
What we use to build Android apps at Silicon StraitsWhat we use to build Android apps at Silicon Straits
What we use to build Android apps at Silicon Straits
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Intro to Github Actions @likecoin
Intro to Github Actions @likecoinIntro to Github Actions @likecoin
Intro to Github Actions @likecoin
 
Project52
Project52Project52
Project52
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with Drone
 
Let's Git Together! - Hacktoberfest 2020
Let's Git Together! - Hacktoberfest 2020Let's Git Together! - Hacktoberfest 2020
Let's Git Together! - Hacktoberfest 2020
 

Destacado

Destacado (20)

We Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese ShopWe Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese Shop
 
Python, Development Environment for Windows
Python, Development Environment for WindowsPython, Development Environment for Windows
Python, Development Environment for Windows
 
Python Recipes for django girls seoul
Python Recipes for django girls seoulPython Recipes for django girls seoul
Python Recipes for django girls seoul
 
User-centered open source
User-centered open sourceUser-centered open source
User-centered open source
 
EuroDjangoCon 2009 - Ein Rückblick
EuroDjangoCon 2009 - Ein RückblickEuroDjangoCon 2009 - Ein Rückblick
EuroDjangoCon 2009 - Ein Rückblick
 
NoSql Day - Chiusura
NoSql Day - ChiusuraNoSql Day - Chiusura
NoSql Day - Chiusura
 
Website optimization
Website optimizationWebsite optimization
Website optimization
 
The Django Book, Chapter 16: django.contrib
The Django Book, Chapter 16: django.contribThe Django Book, Chapter 16: django.contrib
The Django Book, Chapter 16: django.contrib
 
PyClab.__init__(self)
PyClab.__init__(self)PyClab.__init__(self)
PyClab.__init__(self)
 
PythonBrasil[8] closing
PythonBrasil[8] closingPythonBrasil[8] closing
PythonBrasil[8] closing
 
2016 py con2016_lightingtalk_php to python
2016 py con2016_lightingtalk_php to python2016 py con2016_lightingtalk_php to python
2016 py con2016_lightingtalk_php to python
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework  for perfectionists with deadlinesDjango - The Web framework  for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
 
Digesting jQuery
Digesting jQueryDigesting jQuery
Digesting jQuery
 
Vim for Mere Mortals
Vim for Mere MortalsVim for Mere Mortals
Vim for Mere Mortals
 
Django-Queryset
Django-QuerysetDjango-Queryset
Django-Queryset
 
Load testing
Load testingLoad testing
Load testing
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlinesDjango - The Web framework for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
 
Rabbitmq & Postgresql
Rabbitmq & PostgresqlRabbitmq & Postgresql
Rabbitmq & Postgresql
 
라이트닝 토크 2015 파이콘
라이트닝 토크 2015 파이콘라이트닝 토크 2015 파이콘
라이트닝 토크 2015 파이콘
 
The Django Book Chapter 9 - Django Workshop - Taipei.py
The Django Book Chapter 9 - Django Workshop - Taipei.pyThe Django Book Chapter 9 - Django Workshop - Taipei.py
The Django Book Chapter 9 - Django Workshop - Taipei.py
 

Similar a Jenkins djangovillage

Continuous Integration and Delivery
Continuous Integration and DeliveryContinuous Integration and Delivery
Continuous Integration and Delivery
Brandon Cornett
 
Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011
Frank Karlitschek
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
dmgerman
 

Similar a Jenkins djangovillage (20)

Devops.pptx
Devops.pptxDevops.pptx
Devops.pptx
 
Continuous Integration and Delivery
Continuous Integration and DeliveryContinuous Integration and Delivery
Continuous Integration and Delivery
 
Tools for Open Source Systems Administration
Tools for Open Source Systems AdministrationTools for Open Source Systems Administration
Tools for Open Source Systems Administration
 
Luis atencio on_git
Luis atencio on_gitLuis atencio on_git
Luis atencio on_git
 
Juc boston2014.pptx
Juc boston2014.pptxJuc boston2014.pptx
Juc boston2014.pptx
 
Git version control and trunk based approach with VSTS
Git version control and trunk based approach with VSTSGit version control and trunk based approach with VSTS
Git version control and trunk based approach with VSTS
 
DevOps in realtime
DevOps in realtimeDevOps in realtime
DevOps in realtime
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
 
Introducing Ubuntu SDK
Introducing Ubuntu SDKIntroducing Ubuntu SDK
Introducing Ubuntu SDK
 
JenkinsPy workshop
JenkinsPy workshop JenkinsPy workshop
JenkinsPy workshop
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deployment
 
Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
 
Linux as an open source platform
Linux as an open source platformLinux as an open source platform
Linux as an open source platform
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
 
Continuous Integration for your Android projects
Continuous Integration for your Android projectsContinuous Integration for your Android projects
Continuous Integration for your Android projects
 
Continuously Integrating Puppet
Continuously Integrating PuppetContinuously Integrating Puppet
Continuously Integrating Puppet
 

Más de Lucio Grenzi

Más de Lucio Grenzi (12)

How to use Postgresql in order to handle Prometheus metrics storage
How to use Postgresql in order to handle Prometheus metrics storageHow to use Postgresql in order to handle Prometheus metrics storage
How to use Postgresql in order to handle Prometheus metrics storage
 
Building serverless application on the Apache Openwhisk platform
Building serverless application on the Apache Openwhisk platformBuilding serverless application on the Apache Openwhisk platform
Building serverless application on the Apache Openwhisk platform
 
Patroni: PostgreSQL HA in the cloud
Patroni: PostgreSQL HA in the cloudPatroni: PostgreSQL HA in the cloud
Patroni: PostgreSQL HA in the cloud
 
Postgrest: the REST API for PostgreSQL databases
Postgrest: the REST API for PostgreSQL databasesPostgrest: the REST API for PostgreSQL databases
Postgrest: the REST API for PostgreSQL databases
 
Full slidescr16
Full slidescr16Full slidescr16
Full slidescr16
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile application
 
Geodjango and HTML 5
Geodjango and HTML 5Geodjango and HTML 5
Geodjango and HTML 5
 
PLV8 - The PostgreSQL web side
PLV8 - The PostgreSQL web sidePLV8 - The PostgreSQL web side
PLV8 - The PostgreSQL web side
 
Pg tap
Pg tapPg tap
Pg tap
 
Geodjango
GeodjangoGeodjango
Geodjango
 
Yui app-framework
Yui app-frameworkYui app-framework
Yui app-framework
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Jenkins djangovillage

  • 1. Jenkins and Django Lucio Grenzi l.grenzi@gmail.com
  • 2. Lucio Grenzi l.grenzi@gmail.com – Freelance 2 Who am I? • Delphi developer for 11 years • Now freelance and Web developer • Javascript addicted Nonantolando.blogspot.com https://plus.google.com/108943068354277861330 http://it.linkedin.com/pub/lucio-grenzi/27/2bb/2a
  • 3. Lucio Grenzi l.grenzi@gmail.com – Freelance 3 Agenda • Jenkins: an intro • Why use it • Installation on a Ubuntu machine • Testing
  • 4. Lucio Grenzi l.grenzi@gmail.com – Freelance 4 Jenkins: a complete solution • Jenkins is an automated continuous integration server • Automated testing, building, mantaining your code • Enforce quality control • Manage release process → continuos delivery
  • 5. Lucio Grenzi l.grenzi@gmail.com – Freelance 5 Jenkins: facts • Written in java • 600+ to customize Jenkins in every aspects • 1000+ public repositories in Github • 500+ contributors • Free and open source • Widely used tools for maintaing continuos integration cycle
  • 6. Lucio Grenzi l.grenzi@gmail.com – Freelance 6 Non java languages supported • Python • Ruby • PHP • Node.js • …..
  • 7. Lucio Grenzi l.grenzi@gmail.com – Freelance 7 Why Jenkins? • Testing, building, maintaining, doing releases by hand is error prone • promote test driven development reduce surprises • frequent deployment • Find bugs quickly
  • 8. Lucio Grenzi l.grenzi@gmail.com – Freelance 8 Jenkins • Easy to install, upgrade and configure • Monitor external tools • No limit of number of jobs • Lots of external tool to explore
  • 9. Lucio Grenzi l.grenzi@gmail.com – Freelance 9 Continuous integration • is the practice of merging all developer working copies with a shared mainline several times a day. Its main aim is to prevent integration problems - wikipedia -
  • 10. Lucio Grenzi l.grenzi@gmail.com – Freelance 10 Continuous delivery • is a software development discipline where you build software in such a way that the software can be released to production at any time.
  • 11. Lucio Grenzi l.grenzi@gmail.com – Freelance 11 You’re doing continuous delivery when: • Your software is deployable throughout its lifecycle • Your team prioritizes keeping the software deployable over working on new features • Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them • You can perform push-button deployments of any version of the software to any environment on demand - http://martinfowler.com/bliki/ContinuousDelivery.html -
  • 12. Lucio Grenzi l.grenzi@gmail.com – Freelance 12 Install on an Ubuntu server • wget -q -O - http://pkg.jenkins- ci.org/debian/jenkins-ci.org.key | sudo apt-key add - • sudo sh -c 'echo deb http://pkg.jenkins- ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' • sudo apt-get update • sudo apt-get install jenkins
  • 13. Lucio Grenzi l.grenzi@gmail.com – Freelance 13 Link between Django and jenkins • Apt-get install python-pip • Pip install django-jenkins • Pip install virtualenvwrapper • Pip install django
  • 14. Lucio Grenzi l.grenzi@gmail.com – Freelance 14 Configuring django project • Add 'django_jenkins' to your INSTALLED_APPS list • $ ./manage.py jenkins • JENKINS_TASKS = ( 'django_jenkins.tasks.run_pylint', 'django_jenkins.tasks.with_coverage',)
  • 15. Lucio Grenzi l.grenzi@gmail.com – Freelance 15 Testing web apps • Sometimes is a complex task, • a Web application is made of several layers of logic – HTTP-level request handling, – form validation and processing, – template rendering.
  • 16. Lucio Grenzi l.grenzi@gmail.com – Freelance 16 The Django’s way • Unittest: module built in to the Python standard library • Nose framework: uses custom test loader causes troubles with Django code • django-discover-runner requires Django 1.4 built-in in Django 1.6
  • 17. Lucio Grenzi l.grenzi@gmail.com – Freelance 17 django-discover-runner • add a test_settings.py file to your app package • django-admin.py test --settings=myapp.test_settings myapp
  • 18. Lucio Grenzi l.grenzi@gmail.com – Freelance 18 Quality managment Continuos performance test – Selenium – Graphite – Cobertura
  • 19. Lucio Grenzi l.grenzi@gmail.com – Freelance 19 Best practices • Plan disk usage • Do distribute builds • Discard old build records to keep Jenkins status healthy
  • 21. Lucio Grenzi l.grenzi@gmail.com – Freelance 21 Questions?
  • 22. Lucio Grenzi l.grenzi@gmail.com – Freelance 22 Thank you Creative Commons via tcmaker.org