Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Test Data Preparation: Tips and Tricks - SQA Days 22 - Saint Petersburg

97 views

Published on

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.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Test Data Preparation: Tips and Tricks - SQA Days 22 - Saint Petersburg

  1. 1. Test Data Preparation: Tips and Tricks Sargis Sargsyan Sr. Automation QA Engineer at Workfront
  2. 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. 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. 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. 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. 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
  7. 7. Test Data Preparation via HTTP requests
  8. 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
  9. 9. SQA Days 2017 9 OKHTTP - WILL DO REST FOR YOU
  10. 10. SQA Days 2017 10 POSTMAN - BEST FRIEND OF YOU
  11. 11. SQA Days 2017 11 OKHTTP - BASIC EXAMPLE FOR GET
  12. 12. SQA Days 2017 12 OKHTTP - BASIC EXAMPLE FOR POST
  13. 13. SQA Days 2017 13 GENERATE JAVA OBJECT CLASS BASED ON JSON
  14. 14. SQA Days 2017 14 GENERATE JAVA OBJECT CLASS BASED ON JSON
  15. 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 
  16. 16. SQA Days 2017 16 JACKSON - CONVERT JAVA OBJECT TO JSON 16 
  17. 17. SQA Days 2017 17 JACKSON - JSON FROM STRING TO OBJECT 17 
  18. 18. SQA Days 2017 18 JACKSON - RETRIEVE OBJECT VIA API 18
  19. 19. Skipping login fromUI
  20. 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
  21. 21. SQA Days 2017 21 GENERATE SESSION ID VIA API
  22. 22. SQA Days 2017 22 GENERATE SESSION ID VIA API
  23. 23. SQA Days 2017 23 A SINGLE TEST WILL LOOK LIKE
  24. 24. SQA Days 2017 24 SINGLE TEST RUN
  25. 25. BestPracticevs. BadPractice
  26. 26. SQA Days 2017 26 BEST PRACTICE VS. BAD PRACTICE Use PageObjects pattern "
  27. 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. 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. 29. SQA Days 2017 29 BEST PRACTICE VS. BAD PRACTICE Create Specific Application User per Test "
  30. 30. SQA Days 2017 30 BEST PRACTICE VS. BAD PRACTICE Suite Retries #"
  31. 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. 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. 33. SQA Days 2017 33 BEST PRACTICE VS. BAD PRACTICE Make Tests Independent Of Each Other "
  34. 34. SQA Days 2017 34 BEST PRACTICE VS. BAD PRACTICE Avoid Thread.sleep prefer Wait or FluentWait "
  35. 35. QUESTIONS? Go Ahead, Don’t Hesitate! ?
  36. 36. THANK YOU! Have a Nice Day!   @sargisqa  /sargissargsyansargis.sargsyan@live.com

×