CDC Tests - Integration Tests cant be made simpler than this!Ramya Authappan
CDCs are “Asynchronous Integration Tests”.CDC stands for Consumer Driven Contract. We can now forget about bringing up all the microservices to test the integration between different microservices.This makes integration tests as simple as unit tests. This is a must-have test for all microservices.
SPA(Single-page application) web-solutions are now a days the new standard of web development, becoming more and more popular and narrowing down the difference between a desktop and web application. JavaScript libraries/frameworks like Backbone, Knockout, Angular along with RESTful web APIs provide a great platform to develop SPA web-solutions.
Deploy faster and safer using Pact (http://pact.io)
Slides from Golang Melbourne Meetup July 2016 (http://www.meetup.com/golang-mel/events/229251263/).
Taken from the talk given at tconf.io 2016.
It’s 2016 and we still rely on integrated environments and complex E2E test suites to release complex ecosystems also called “software". In this talk, Matt breaks down the arguments for such nonsense and provides a better, faster, safer alternative.
Accompanying notes: http://www.onegeek.com.au/wp-content/uploads/2016/11/tconf-consumer-driven-contracts_summary-notes.pdf
CDC Tests - Integration Tests cant be made simpler than this!Ramya Authappan
CDCs are “Asynchronous Integration Tests”.CDC stands for Consumer Driven Contract. We can now forget about bringing up all the microservices to test the integration between different microservices.This makes integration tests as simple as unit tests. This is a must-have test for all microservices.
SPA(Single-page application) web-solutions are now a days the new standard of web development, becoming more and more popular and narrowing down the difference between a desktop and web application. JavaScript libraries/frameworks like Backbone, Knockout, Angular along with RESTful web APIs provide a great platform to develop SPA web-solutions.
Deploy faster and safer using Pact (http://pact.io)
Slides from Golang Melbourne Meetup July 2016 (http://www.meetup.com/golang-mel/events/229251263/).
Taken from the talk given at tconf.io 2016.
It’s 2016 and we still rely on integrated environments and complex E2E test suites to release complex ecosystems also called “software". In this talk, Matt breaks down the arguments for such nonsense and provides a better, faster, safer alternative.
Accompanying notes: http://www.onegeek.com.au/wp-content/uploads/2016/11/tconf-consumer-driven-contracts_summary-notes.pdf
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayAll Things Open
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Brian Hyder
Co-Founder & CTO of PencilBlue, LLC
Back Dev
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
As applications grow in complexity, web developers and front-end developers all suffer the hassle of building and maintaining complex web applications; managing and maintaining consistency of application state. This presentation goes through what's special about React and Redux.
This was part of JOSA TechTalks project within Jordan Open Source Association, presented by Ali Sa'o and Omar Abdelhafith.
Building Modern Web Applications using React and ReduxMaxime Najim
React and Redux are latest evolution in modern web application development. This talk covers the concepts and set of technologies of modern web application development.
For further details contact:
N.RAJASEKARAN B.E M.S 9841091117,9840103301.
IMPULSE TECHNOLOGIES,
Old No 251, New No 304,
2nd Floor,
Arcot road ,
Vadapalani ,
Chennai-26.
www.impulse.net.in
Email: ieeeprojects@yahoo.com/ imbpulse@gmail.com
London React August - GraphQL at The Financial Times - Viktor CharyparReact London Community
Recently released by Facebook, GraphQL isn't only useful for client-server communication. Viktor will show how Red Badger used the reference implementation - graphql-js - at the Financial Times as a generic data presentation layer over a set of backend APIs and how to deal with related requirements like caching or authorisation.
This is the first half of a presentation I gave at Squares Conference 2015 where I provided a brief introduction to React JS, then did live coding for 20 minutes to show more of the specifics of usage. Your milage may vary as the live code part was where the bulk of the teaching happened!
An introduction to a possible implementation of CQRS/ES architecture for a Ruby on Rails app. It starts from Domain Model to arrive to a sample app that implements the Event Sourcing pattern. This presentation was part of Wroclove_rb 2014 conference in Wraclow (PL)
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIOJosh Cypher
With modern software development moving at a rapid pace, automation engineers may find it difficult to keep up with frequent changes. Incorporating parts of the testing process into everyone's workflow, this creates the potential for automated testing to mirror software delivery.
Description: With modern software development moving at a rapid pace, automation engineers may find it difficult to keep up with frequent changes. But if parts of the testing process are incorporated into everyone's workflow, this creates the potential for automated testing to mirror software delivery. My goal is to make software testing more accessible to entire product and engineering teams by providing familiar tools that allow individuals to easily contribute to the automation process. For this talk, I will explore how we can meet developers halfway by using the javascript-based testing framework WebdriverIO, demonstrate how product managers can create living documentation and test cases using Cucumber, and talk about sharing page objects and testing libraries across multiple services using NPM.
Code Examples:
https://github.com/dcypherthis/gtr-test-cucumber
https://github.com/dcypherthis/gtr-test-mocha-bdd
https://github.com/dcypherthis/gtr-test-xray
ATAGTR2017 CDC Tests - Integration Tests cant be made simpler than this!Agile Testing Alliance
The presentation on CDC Tests - Integration Tests cant be made simpler than this! was done during #ATAGTR2017, one of the largest global testing conference. All copyright belongs to the author.
Author and presenter : Ramya Authappan
In this talk, we’ll discuss the benefits of the document-based data model that MongoDB offers by walking through how one can build a simple app. We'll show you how to design a full-blown RSS Aggregation service to replace the loss the world suffered when Google Reader was shutdown.
We'll dive deeper into topics, such as how to model your data and create your REST API using MongoDB, Express.js and Node.js (core components of the MEAN stack). This session will jumpstart your development knowledge of MongoDB.
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayAll Things Open
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Brian Hyder
Co-Founder & CTO of PencilBlue, LLC
Back Dev
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
As applications grow in complexity, web developers and front-end developers all suffer the hassle of building and maintaining complex web applications; managing and maintaining consistency of application state. This presentation goes through what's special about React and Redux.
This was part of JOSA TechTalks project within Jordan Open Source Association, presented by Ali Sa'o and Omar Abdelhafith.
Building Modern Web Applications using React and ReduxMaxime Najim
React and Redux are latest evolution in modern web application development. This talk covers the concepts and set of technologies of modern web application development.
For further details contact:
N.RAJASEKARAN B.E M.S 9841091117,9840103301.
IMPULSE TECHNOLOGIES,
Old No 251, New No 304,
2nd Floor,
Arcot road ,
Vadapalani ,
Chennai-26.
www.impulse.net.in
Email: ieeeprojects@yahoo.com/ imbpulse@gmail.com
London React August - GraphQL at The Financial Times - Viktor CharyparReact London Community
Recently released by Facebook, GraphQL isn't only useful for client-server communication. Viktor will show how Red Badger used the reference implementation - graphql-js - at the Financial Times as a generic data presentation layer over a set of backend APIs and how to deal with related requirements like caching or authorisation.
This is the first half of a presentation I gave at Squares Conference 2015 where I provided a brief introduction to React JS, then did live coding for 20 minutes to show more of the specifics of usage. Your milage may vary as the live code part was where the bulk of the teaching happened!
An introduction to a possible implementation of CQRS/ES architecture for a Ruby on Rails app. It starts from Domain Model to arrive to a sample app that implements the Event Sourcing pattern. This presentation was part of Wroclove_rb 2014 conference in Wraclow (PL)
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIOJosh Cypher
With modern software development moving at a rapid pace, automation engineers may find it difficult to keep up with frequent changes. Incorporating parts of the testing process into everyone's workflow, this creates the potential for automated testing to mirror software delivery.
Description: With modern software development moving at a rapid pace, automation engineers may find it difficult to keep up with frequent changes. But if parts of the testing process are incorporated into everyone's workflow, this creates the potential for automated testing to mirror software delivery. My goal is to make software testing more accessible to entire product and engineering teams by providing familiar tools that allow individuals to easily contribute to the automation process. For this talk, I will explore how we can meet developers halfway by using the javascript-based testing framework WebdriverIO, demonstrate how product managers can create living documentation and test cases using Cucumber, and talk about sharing page objects and testing libraries across multiple services using NPM.
Code Examples:
https://github.com/dcypherthis/gtr-test-cucumber
https://github.com/dcypherthis/gtr-test-mocha-bdd
https://github.com/dcypherthis/gtr-test-xray
ATAGTR2017 CDC Tests - Integration Tests cant be made simpler than this!Agile Testing Alliance
The presentation on CDC Tests - Integration Tests cant be made simpler than this! was done during #ATAGTR2017, one of the largest global testing conference. All copyright belongs to the author.
Author and presenter : Ramya Authappan
In this talk, we’ll discuss the benefits of the document-based data model that MongoDB offers by walking through how one can build a simple app. We'll show you how to design a full-blown RSS Aggregation service to replace the loss the world suffered when Google Reader was shutdown.
We'll dive deeper into topics, such as how to model your data and create your REST API using MongoDB, Express.js and Node.js (core components of the MEAN stack). This session will jumpstart your development knowledge of MongoDB.
This session will provide attendees with hands-on experience and in-depth knowledge of using Node.js as a runtime environment and Express.js as a web framework to build scalable and fast backend systems. Additionally, attendees will learn about Passport.js, a popular authentication middleware for Node.js, and how to use Prisma ORM to handle database operations in a type-safe and efficient manner.
The session will be conducted by experienced developers who have worked with these technologies and will be able to provide valuable insights and best practices. The session will be interactive and include plenty of opportunities for attendees to ask questions and work on real-world projects.
Progressive Web Applications have gained unparalleled momentum in the tech world and are currently one of the hottest trends in Web Development. Find out how PWA attempts to combine features offered by most modern browsers with the benefits of mobile experience and how service workers make them fast, reliable & engaging.
Creating Rich Server API’s for your Mobile Apps - Best Practices and GuidelinesJonathan Guthrie
Jono discusses practical design-led thinking approaches to creating scalable and agile server-side API’s for your mobile applications, from initial planning through to execution and documentation. While targeted at Swift as the language, you’ll be able to apply these techniques to creating API’s in almost any server-side language.
Starting Your DevOps Journey – Practical Tips for OpsDynatrace
To watch, please see:
https://info.dynatrace.com/apm_wc_getting_started_with_devops_na_registration.html
Starting Your DevOps Journey: Practical Tips for Ops
In this webinar, Andreas Grabner, Chief DevOps Activist at Dynatrace, shares practical tips that all IT groups from Dev to Ops can use to start their DevOps journey quickly. With experience from hundreds of DevOps deployments, Andi provides insights it would take your team months or years to learn firsthand.
- Learn how everyone on your Ops team can use APM to better understand and monitor SLAs, Performance and End User Impact of their applications.
- Foster better collaboration between Ops and architects by extending basic system monitoring to monolith and microservices architectures.
- Shift-left your testing and QA by working with metrics that you and the architects agreed on up front, resulting in early relevant feedback and faster code deployments.
- Hear why changing the cultural mindset from “fear of change” to “Continuous Innovation and Optimization” is critical for success.
Andi is joined by guest speaker, Brian Chandler, Systems Engineer at Raymond James, who shares commonly used Ops dashboards that increase collaboration across IT teams and pro-actively break down silos!
Timings API: Performance Assertion during the functional testingPetrosPlakogiannis
Most teams at GoDaddy follow a CI/CD process where Selenium is commonly used for test automation. When they realized that the Selenium WebDrivers provide access to the same APIs as real browsers, including the widely supported W3C performance API, the concept for the cicd-perf-api webservice was born! By inserting some JavaScript code into the WebDriver object, performance data can be collected and posted back to the webservice. The response from the webservice includes a boolean field that testers can use for assertion - just like they would with functional checks! The field indicates whether performance was above/below the baseline. With this talk Petros will give an introduction to the concept of the Timings API and Marcel will be online in order to tell us about the future of it.
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesChristina Lin
Traditionally, dealing with real-time data pipelines has involved significant overhead, even for straightforward tasks like data transformation or masking. However, in this talk, we’ll venture into the dynamic realm of WebAssembly (WASM) and discover how it can revolutionize the creation of stateless streaming pipelines within a Kafka (Redpanda) broker. These pipelines are adept at managing low-latency, high-data-volume scenarios.
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...ssuser7dcef0
Power plants release a large amount of water vapor into the
atmosphere through the stack. The flue gas can be a potential
source for obtaining much needed cooling water for a power
plant. If a power plant could recover and reuse a portion of this
moisture, it could reduce its total cooling water intake
requirement. One of the most practical way to recover water
from flue gas is to use a condensing heat exchanger. The power
plant could also recover latent heat due to condensation as well
as sensible heat due to lowering the flue gas exit temperature.
Additionally, harmful acids released from the stack can be
reduced in a condensing heat exchanger by acid condensation. reduced in a condensing heat exchanger by acid condensation.
Condensation of vapors in flue gas is a complicated
phenomenon since heat and mass transfer of water vapor and
various acids simultaneously occur in the presence of noncondensable
gases such as nitrogen and oxygen. Design of a
condenser depends on the knowledge and understanding of the
heat and mass transfer processes. A computer program for
numerical simulations of water (H2O) and sulfuric acid (H2SO4)
condensation in a flue gas condensing heat exchanger was
developed using MATLAB. Governing equations based on
mass and energy balances for the system were derived to
predict variables such as flue gas exit temperature, cooling
water outlet temperature, mole fraction and condensation rates
of water and sulfuric acid vapors. The equations were solved
using an iterative solution technique with calculations of heat
and mass transfer coefficients and physical properties.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
Online aptitude test management system project report.pdfKamal Acharya
The purpose of on-line aptitude test system is to take online test in an efficient manner and no time wasting for checking the paper. The main objective of on-line aptitude test system is to efficiently evaluate the candidate thoroughly through a fully automated system that not only saves lot of time but also gives fast results. For students they give papers according to their convenience and time and there is no need of using extra thing like paper, pen etc. This can be used in educational institutions as well as in corporate world. Can be used anywhere any time as it is a web based application (user Location doesn’t matter). No restriction that examiner has to be present when the candidate takes the test.
Every time when lecturers/professors need to conduct examinations they have to sit down think about the questions and then create a whole new set of questions for each and every exam. In some cases the professor may want to give an open book online exam that is the student can take the exam any time anywhere, but the student might have to answer the questions in a limited time period. The professor may want to change the sequence of questions for every student. The problem that a student has is whenever a date for the exam is declared the student has to take it and there is no way he can take it at some other time. This project will create an interface for the examiner to create and store questions in a repository. It will also create an interface for the student to take examinations at his convenience and the questions and/or exams may be timed. Thereby creating an application which can be used by examiners and examinee’s simultaneously.
Examination System is very useful for Teachers/Professors. As in the teaching profession, you are responsible for writing question papers. In the conventional method, you write the question paper on paper, keep question papers separate from answers and all this information you have to keep in a locker to avoid unauthorized access. Using the Examination System you can create a question paper and everything will be written to a single exam file in encrypted format. You can set the General and Administrator password to avoid unauthorized access to your question paper. Every time you start the examination, the program shuffles all the questions and selects them randomly from the database, which reduces the chances of memorizing the questions.
ACEP Magazine edition 4th launched on 05.06.2024Rahul
This document provides information about the third edition of the magazine "Sthapatya" published by the Association of Civil Engineers (Practicing) Aurangabad. It includes messages from current and past presidents of ACEP, memories and photos from past ACEP events, information on life time achievement awards given by ACEP, and a technical article on concrete maintenance, repairs and strengthening. The document highlights activities of ACEP and provides a technical educational article for members.
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
2. Few Things About Myself
www.facebook.com/at.ramya
@atramya
https://www.linkedin.com/in/ramy
aat/
ramya.authappan@freshworks.c
om
http://tiny.cc/ramya_talks
Lead SDET @ Freshworks
Passionate about
building/designing Test
Frameworks/Tools
Believes in building “Simple, yet
Powerful” tools
Loves to play with Sharon
3. About Freshworks
• SAAS Startup
• Believes in building software that’s ready to go, easy to setup and use, and
requires minimal customization.
• Global Presence:
• Investors:
• Products:
4. CDC - Consumer Driven Contract!
• Microservices @ Amazon
• Talks to each other via HTTP Requests
• How do I make sure that a simple change does not break
anything in the application? An integration nightmare!
• In such a system, how do I independently AND
confidently make changes?
• CDC to the RESCUE!
5. CDC - Consumer Driven Contract!
• Consumer-Driven Contracts is a pattern defined by Martin Fowler.
• In Consumer-Driven Contracts, each consumer captures their expectations of the provider in a separate contract
(pact).
• All of these contracts are shared with the provider so they gain insight into the obligations they must fulfil for each
individual client.
• Implementations:
• Pact - https://docs.pact.io/ - This is what we will use in this session.
• Pacto - https://github.com/thoughtworks/pacto
• Janus - https://github.com/gga/janus
• Spring Cloud Contract - https://cloud.spring.io/spring-cloud-contract/ - Found this implementation few days
back. - Java Implementation
6. CDC - Consumer Driven Contract!
• What is Pact? - An opensource library implementing CDC
• Available as ruby gems (gem: ‘pact’) and as npm packages
(‘pact’)
• Supports: Ruby, Java, .NET
• Beta: JS,Python, Swift, Go
• Its called “Asynchronous” Integration Tests - No extra setup
needed.
• As simple as unit tests but as powerful as E2E tests.
• Pact is run on both sides - On “Consumer” side and on
“Provider” side.
7. CDC - Consumer Side
Sends
response
for
assertions
Tests
Set
Expectations
Pact Mock Provider
Tests
invoke
code
Source Code
Sends
HTTP
Requests
Sends
expected
response
9. CDC - Pact File!
• Every HTTP Request and Response is
captured
• Standard way of representing interactions -
JSON file
• This is shared with the Provider.
• Explains everything that a consumer expects
from the Provider - the endpoints, query
params, header and the response objects.
10. CDC - Provider Side
Activities
Replay each HTTP Request
Get real HTTP Response
Provider
Pact File Compares real and
mock responses
11. CDC - Provider States
• Get activities of user with id=777
DevPortal Activities
Request
Response
Consumer Provider
Request
Response
?
12. CDC - Provider Side
state: cust_id=777 @ DB
• Get activities of user with id=777
DevPortal Activities
Request
Response
Consumer
Provider
Request
Response
state: cust_id=777 @ DB
state: cust_id=777 @ DB
14. CDC - Advantages!
• Eliminates Wrong Assumptions
• Enables communication
• Very less setup time!
• No extra infrastructure
• Need not start the dependent services to test!
• Fast in Execution
• Fails Fast - Identifies integration issues even before you actually
integrate!
• No flakiness!
• Easy to debug
16. Consumer Side : Setup Mock Server
Pact.service_consumer 'DevPortal' do
end
17. Consumer Side : Setup Mock Server
Pact.service_consumer 'DevPortal' do
has_pact_with "Freshapps Activities" do
end
end
18. Consumer Side : Setup Mock Server
Pact.service_consumer 'DevPortal' do
has_pact_with "Freshapps Activities" do
mock_service :freshapps_activities do
port 3005
end
end
end
19. Consumer Side : Setup Expectations
freshapps_activities.given(“all activities without role param")
20. Consumer Side : Setup Expectations
freshapps_activities.given(“all activities without role param")
.upon_receiving("a request for all activities")
.with(
method: :get,
path: '/all/activities.json',
query: {
page: '1',
account_id: '1' },
headers: {'Content-Type' => 'application/json', 'Accept' => 'application/json'} )
25. Provider Side : Make Request & Assert
Pact.service_provider 'Freshapps Activities' do
end
26. Provider Side : Make Request & Assert
Pact.service_provider 'Freshapps Activities' do
honours_pact_with 'DevPortal' do
end
end
27. Provider Side : Make Request & Assert
Pact.service_provider 'Freshapps Activities' do
honours_pact_with 'DevPortal' do
pact_uri "../freshapps_devportal/spec/pacts/devportal-freshapps_activities.json"
end
end
end
28. Provider Side : Setup Test Data
Pact.provider_states_for "DevPortal" do
provider_state "all activities without role param" do
end
end
Remember:
Consumer Assumed:
freshapps_activities.given(“
all activities without role
param")
29. Provider Side : Setup Test Data
Remember:
Consumer Assumed:
freshapps_activities.given(“
all activities without role
param")
Pact.provider_states_for "DevPortal" do
provider_state "all activities without role param" do
set_up do
factory :activity do
account_id 1
user_id 1
extension_id 2
version_id 2
activity_type 'Extension'
visibility 1
activity { 'extension_id' => '2', 'name' => 'Sample Extension’}
end
end
end
end