Performance is one of the main painful areas of Selenium test. One of the most important points of improvements is Test Data creation and clean up. In this talk, we will discuss how to create test data via HTTP requests and clean it after the test run.
Optimization of the Selenium suite is important for us. In this talk, I will present how to create HTTP requests builder to create and clean up test data after the Selenium test run. This will help you to prepare particular situation before logging into web application via Selenium and test the exact functionality you need. After the test run the cleanup should be done again with HTTP request to avoid performance issues and minimize flakiness for other tests in the suite.
In addition, I will also present how to use HTTP code to set up session cookie and make configurations then extract cookie and pass to Selenium, which will help to skip logging in from UI for every test.
Test Data Preparation: Tips and Tricks - SQA Days 22 - Saint Petersburg
1. Test Data Preparation: Tips and Tricks
Sargis Sargsyan
Sr. Automation QA Engineer at Workfront
2. SQA Days 2017
2
TABLE OF CONTENTS - OUR AGENDA
What is Test Data?
Why is it
Important?
1
What is Test Data
Generation?
2
Why should test
data be created
before test
execution?
3
Object class
generation based
on JSON
4
Maintaining
responses of HTTP
requests using
Jackson library
5
How to store login
info in browser to
avoid logging in
from UI
6
Q&A
7
Test Data
Preparation via
HTTP requests
4
3. SQA Days 2017
3
WHAT IS TEST DATA?WHY IS IT IMPORTANT?
1. A single Selenium test should test one and only thing. A bug in another part of the application
that is not exactly related to the test should not cause the test to fail.
2. Every test should be independent. The test outcome should not affected by another test in the
suite.
3. Make a faster tests. As quicker test suite as much useful it is.
4. Every test should create and clean the data before and the after the test run.
5. We should not do the same action from the UI for every test case (e.g. login action)
When we are talking about best practice in Seleniumtest,
some of things often come up are:
4. SQA Days 2017
4
WHAT IS TEST DATA?WHY IS IT IMPORTANT?
Each test run does the following
Run the testTest initialize Test clean up
5. SQA Days 2017
5
WHAT IS TEST DATA GENERATION?
Test Data Generators based on their approaches are typically classified into
Random Test Data Generators
Goal OrientedGenerators Intelligent Test Data Generators
Pathwise Data Generators
TD
6. SQA Days 2017
6
WHY SHOULD TEST DATA BE CREATED BEFORE TEST EXECUTION?
!
!
Login
Submissions
Pages Navigation
TD
The reason for this is that
Selenium tests often involve
setups that may include
Only after doing those things
you are ready to assert
on some aspect of the website
Actions
Sign up Interactions
8. SQA Days 2017
8
BASIC IDEA BEHIND COMBINING THESE TOOLS
These are thesteps how to get started with OKHttpand Test Data Preparation
FIRST STEP
We will be creating
instances of HTTP
for various methods
like GET,PUT,POST
etc. by mentioning
the request URL
SECOND STEP
We will be
composing the
request body as
JSON
THIRD STEP
Execute the desired
HTTP method when
headers etc are all
set
FOURTH STEP
Capture the
response and
convert it to a JSON
object.
FIFTH STEP
Desterialize JSON to
any Java Object
15. SQA Days 2017
15
JACKSON- CONVERT JAVA OBJECT TO / FROM JSON
15
Let’s see how to use Jackson 2.x to convert Java object to / from JSON.
Convert Java object to
JSON
Convert JSON to Java
object
20. SQA Days 2017
20
AVOID CONSTANTLY TESTING LOGIN PAGE
These 3 steps to skip testing Login continuously
send an HTTP request to log
in
set the session cookie value
Navigate to a app specific
page
Login Succeed
27. SQA Days 2017
27
BEST PRACTICE VS. BAD PRACTICE
XPATH is the best
selector to use
#
Preferred selector order : id> name > css > xpath
28. SQA Days 2017
28
BEST PRACTICE VS. BAD PRACTICE
Automate
CAPTCHAS
#
CAPTCHAs canbebypassed using twostrategies:
• The firstidea isto disableCAPTCHAsinyour test environment.
• The second idea is toadd a hook to allowtests to bypassthe CAPTCHA.
29. SQA Days 2017
29
BEST PRACTICE VS. BAD PRACTICE
Create Specific
Application User per
Test
"
31. SQA Days 2017
31
BEST PRACTICE VS. BAD PRACTICE
Gmail and Facbook
Logins
#
WebDriver is not the ideal choicetoautomate loginintowebsites likeGmail andFacebook,
firstlybecause it isagainsttheir policy and secondly because it isslow and unreliable.
The most appropriatechoicewould be to usethe API that these websites provide.
32. SQA Days 2017
32
BEST PRACTICE VS. BAD PRACTICE
Performance Testing
Using WebDriver
#
Using selenium WebDriver is not anideal choice for performance testing, not
because it can’tdoit but becauseit is not meant for thisjob ultimatelytester
might not get good results.
33. SQA Days 2017
33
BEST PRACTICE VS. BAD PRACTICE
Make Tests
Independent Of Each
Other
"
34. SQA Days 2017
34
BEST PRACTICE VS. BAD PRACTICE
Avoid Thread.sleep
prefer Wait or
FluentWait
"