Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
20 views20 pages

15 - Client-Server Architecture. Performance Testing v.0.1

The document covers client-server architecture, explaining the roles of clients and servers, and introduces performance testing concepts such as load and stress testing. It outlines various performance metrics and provides tips for starting performance testing, including gathering information and setting up test infrastructure. Additionally, it includes practical tasks related to Apache JMeter and Selenium for self-study.

Uploaded by

tempocompote8b
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views20 pages

15 - Client-Server Architecture. Performance Testing v.0.1

The document covers client-server architecture, explaining the roles of clients and servers, and introduces performance testing concepts such as load and stress testing. It outlines various performance metrics and provides tips for starting performance testing, including gathering information and setting up test infrastructure. Additionally, it includes practical tasks related to Apache JMeter and Selenium for self-study.

Uploaded by

tempocompote8b
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Lesson 15.

Client-Server Architecture.
Performance Testing
Agenda
 Self-study and home work discussion. Questions
 Client-server architecture
 Performance Testing Basics
 Practice: Apache JMeter
 Tasks for Self-study
How was your self-study?

Homework. Questions?
Client-Server Architecture

Client-server architecture (client/server) is a network architecture in which each


computer or process on the network is either a client or a server.

Servers are powerful computers or


processes dedicated to managing disk
drives (file servers), printers (print servers),
or network traffic (network servers ).

Clients are PCs or workstations on which


users run applications. Clients rely on
servers for resources, such as files, devices,
and even processing power.
A little Background

The term Client/Server has traditionally been associated with a desktop PC connected
over a network to some sort of SQL-database server.

In fact, the term Client/Server formally refers


to a logical model that provides for a division
of tasks into 'client' and 'server' layers.
Peer-to-Peer Architecture
Another type of network architecture is known as a peer-to-peer architecture
because each node has equivalent responsibilities. Both client/server and peer-to-
peer architectures are widely used, and each has unique advantages and
disadvantages.

Example:
Client-Server and Peer-to-Peer Architecture
Basics: Request, Response and Headers
HTTP Request
Request - a request message from a client to a server includes, within the first
line of that message, the method to be applied to the resource, the identifier
of the resource, and the protocol version in use.

Sample: GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

HTTP Response
After receiving and interpreting a request message, a server responds with
an HTTP response message

Headers are name/value pairs that appear in both request and response
messages.
Basics: Main Methods
The Method indicates the method to be performed on the resource identified by the
Request-URI.
Sample: GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

GET: Used when the client is requesting a resource on the Web server.

POST: Used when the client is sending information or data to the server—for example,
filling out an online form.

PUT: Used when the client is sending a replacement document or uploading a new
document to the Web server under the request URL.
404
Basics: Response Codes
- 1xx: Informational - Request received, continuing process
- 2xx: Success - The action was successfully received, understood, and accepted
- 3xx: Redirection - Further action must be taken in order to complete the request
- 4xx: Client Error - The request contains bad syntax or cannot be fulfilled
- 5xx: Server Error - The server failed to fulfill an apparently valid request

200 – OK
400 – Bad Request 418 I'm a teapot (RFC 2324)
401 – Unauthorized This code was defined in 1998 as one of
403 – Forbidden the traditional IETF April Fools' jokes, in
404 – Not Found RFC 2324, Hyper Text Coffee Pot Control
500 – Internal Server Error Protocol, and is not expected to be
503 – Service Unavailable implemented by actual HTTP servers 
Performance Testing
Performance testing is a type of testing used to determine how a system
performs in terms of responsiveness and stability under workload given in
customer's requirements.
Load and Stress Testing
Load Testing is a process to design and simulate usage traffic which can be used
to test your application infrastructure for performance, reliability and scalability.

A load test is where we understand the business requirements very well and can
ramp up the load, leaving it running at a plateau until we’re happy that the
performance is not continuing to degrade and then ramp down on the load.

Stress Testing it is a type of testing main goal of which is finding configuration


after which the program crashes.

A stress test is where we escalate the amount of load over time until we find the
limits of the system.
Soak and Spike Testing

A soak test would be something that we’d run over a weekend or over 24-hour
period and we would be looking generally for things like memory leaks.
Soak Testing is a type of performance test that verifies a system's stability and
performance characteristics over an extended period of time.

A spike test where we go over and above the maximum design capacity, just to see
how the application can deal with a big spiking load. Generally, what you’ll find will be
a ripple effect but what we’re looking for is for the application not to fall over.
Visual representation
Performance Metrics

Metrics provide information about how close your application is to your


performance goals. In addition, they also help you identify problem areas and
bottlenecks within your application.

Which performance metrics do you know?

Main metrics are:


 Response Time: connection time + waiting time + processing time
 Server Throughput
 Total Transfer
Tips: How to Start Performance Testing

1. Gather background information on the situation


1. Ask questions
2. Customer Needs
3. Tools for analysis
2. Develop an understanding of the situation - understand the goal
1. Main flow - List of user Actions
2. Main flow - List of URLs
3. Defining the workload
1. Transactions to be simulated
2. Types of performance tests to be run
3. Analyze factors affecting the load definition
Tips: How to Start Performance Testing

4. Set up the test infrastructure/architecture


5. Validate the tests
6. Set up the test infrastructure/architecture
7. Validate the tests
8. Prepare for the test execution
9. Execute the tests and collect the data
10. Reporting Performance Test Results
11. Present conclusions and recommendations
Practice: Apache JMeter
Materials for self-study and Tasks

1. Study: 6-12 Lessons. Prepare for test.

2. Read: http://www.seleniumhq.org/docs/
1. Introduction
2. Selenium-IDE

3. Install: Selenium IDE and try to automate several flows from any site.
1. http://www.seleniumhq.org/download/

4. Install: Selenium Builder and try to automate several flows from any site.
1. http://sebuilder.github.io/se-builder/

You might also like