<record xmlns="http://www.loc.gov/MARC21/slim" xmlns:zs="http://www.loc.gov/zing/srw/">
  <leader>12243nam a22004933i 4500</leader>
  <controlfield tag="001">almahu_9949927123002882</controlfield>
  <controlfield tag="003">DE-602</controlfield>
  <controlfield tag="005">20250207083542.0</controlfield>
  <controlfield tag="006">m     o  d |      </controlfield>
  <controlfield tag="007">cr cnu||||||||</controlfield>
  <controlfield tag="008">241229s2023    xx      o     ||||0 eng d</controlfield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9788196782696</subfield>
    <subfield code="q">(electronic bk.)</subfield>
  </datafield>
  <datafield tag="035" ind1=" " ind2=" ">
    <subfield code="a">(MiAaPQ)EBC31011472</subfield>
  </datafield>
  <datafield tag="035" ind1=" " ind2=" ">
    <subfield code="a">(Au-PeEL)EBL31011472</subfield>
  </datafield>
  <datafield tag="035" ind1=" " ind2=" ">
    <subfield code="a">(OCoLC)1414456642</subfield>
  </datafield>
  <datafield tag="040" ind1=" " ind2=" ">
    <subfield code="a">MiAaPQ</subfield>
    <subfield code="b">eng</subfield>
    <subfield code="e">rda</subfield>
    <subfield code="e">pn</subfield>
    <subfield code="c">MiAaPQ</subfield>
    <subfield code="d">MiAaPQ</subfield>
  </datafield>
  <datafield tag="049" ind1=" " ind2=" ">
    <subfield code="a">DE-11;9949927123002882</subfield>
  </datafield>
  <datafield tag="091" ind1=" " ind2=" ">
    <subfield code="a">DE-11;9949927123002882</subfield>
  </datafield>
  <datafield tag="092" ind1=" " ind2=" ">
    <subfield code="a">almahu_9949927123002882</subfield>
  </datafield>
  <datafield tag="100" ind1="1" ind2=" ">
    <subfield code="a">Skadorva, Vitaly.</subfield>
  </datafield>
  <datafield tag="245" ind1="1" ind2="0">
    <subfield code="a">Ultimate Web Automation Testing with Cypress :</subfield>
    <subfield code="b">Master End-To-End Web Application Testing Automation to Accelerate Your QA Process with Cypress (English Edition).</subfield>
  </datafield>
  <datafield tag="250" ind1=" " ind2=" ">
    <subfield code="a">1st ed.</subfield>
  </datafield>
  <datafield tag="264" ind1=" " ind2="1">
    <subfield code="a">Delhi :</subfield>
    <subfield code="b">Orange Education PVT Ltd,</subfield>
    <subfield code="c">2023.</subfield>
  </datafield>
  <datafield tag="264" ind1=" " ind2="4">
    <subfield code="c">&#169;2023.</subfield>
  </datafield>
  <datafield tag="300" ind1=" " ind2=" ">
    <subfield code="a">1 online resource (424 pages)</subfield>
  </datafield>
  <datafield tag="336" ind1=" " ind2=" ">
    <subfield code="a">text</subfield>
    <subfield code="b">txt</subfield>
    <subfield code="2">rdacontent</subfield>
  </datafield>
  <datafield tag="337" ind1=" " ind2=" ">
    <subfield code="a">computer</subfield>
    <subfield code="b">c</subfield>
    <subfield code="2">rdamedia</subfield>
  </datafield>
  <datafield tag="338" ind1=" " ind2=" ">
    <subfield code="a">online resource</subfield>
    <subfield code="b">cr</subfield>
    <subfield code="2">rdacarrier</subfield>
    <subfield code="b">cr</subfield>
    <subfield code="b">cr</subfield>
    <subfield code="b">cr</subfield>
    <subfield code="b">cr</subfield>
    <subfield code="b">cr</subfield>
    <subfield code="b">cr</subfield>
  </datafield>
  <datafield tag="505" ind1="0" ind2=" ">
    <subfield code="a">Intro -- Cover Page -- Title Page -- Copyright Page -- Dedication Page -- About the Author -- About the Technical Reviewer -- Acknowledgements -- Preface -- Errata -- Table of Contents -- 1. Getting Started with Cypress Testing -- Introduction -- Structure -- Introduction to Cypress -- Overview of Cypress -- Advantages of Cypress -- Integration with Modern Web Technologies and Frameworks -- Benefits of using Cypress for automation testing -- Real-time reloading and time-travel debugging -- Automatic waiting and retries -- Simple and easy-to-understand API -- Built-in parallelization and dashboard features -- Integration with CI/CD tools -- Wide range of plugins and community support -- Difference between Cypress and Selenium -- Architecture: Cypress's direct browser access versus Selenium's WebDriver-based approach -- Language Support: JavaScript in Cypress versus multiple languages in Selenium -- Automatic waiting and command retries in Cypress -- Speed and performance comparison -- Ease of setup and learning curve -- Key features of Cypress 12 -- Multiple origins testing with 'cy.origin()' -- Browser context preservation with `cy.session()` -- Test isolation -- Fix for dreaded detached DOM errors -- Conclusion -- Further Reading -- 2. Setting Up the Development Environment -- Introduction -- Structure -- Installing Node.js -- NPM (Node Package Manager) -- Yarn -- Installing Cypress -- Configuring Cypress -- Project structure -- Creating your first Cypress project -- Conclusion -- Further Readings -- 3. Writing Your First Test -- Introduction -- Structure -- Introducing the Cypress Test Runner -- Writing a simple test case -- Using Cypress commands -- Navigating commands -- Querying DOM commands -- Action commands -- Assertion commands -- Network requests commands -- Cookies and local storage commands -- Using Cypress assertions.</subfield>
  </datafield>
  <datafield tag="505" ind1="8" ind2=" ">
    <subfield code="a">BDD assertions -- TDD assertions -- Sinon-Chai assertions -- Complex assertions -- Assertion timeout -- Understanding hooks and aliases -- Introducing hooks -- Using aliases -- Scopes of hooks and aliases -- Hooks scope -- Aliases scope -- Best practices for using hooks and aliases -- Dealing with asynchronous operations -- Conclusion -- Further readings -- 4. End-to-End (E2E) Testing -- Introduction -- Structure -- Overview of E2E testing -- The crucial role of E2E testing -- E2E testing with Cypress: A new age in testing -- Testing user interactions -- Clicking and double clicking -- Typing into input fields -- Checking and unchecking boxes -- Selecting options in dropdowns -- Working with events -- Drag and Drop -- Hovering -- File uploads -- Keyboard interactions -- Scrolling -- Right clicking -- Form interactions -- Dealing with popups and alerts -- Working with iframes -- Working with different types of elements -- Text elements -- Input fields -- Buttons -- Links -- Images -- Lists -- Tables -- Scalable vector graphics (SVGs) -- Forms -- Dialog and pop-up windows -- Canvas -- Audio and video elements -- Shadow DOM -- Custom Elements -- Map Elements -- Handling timeouts and retries -- Timeouts -- Automatic retries -- Custom retries -- Best practices for handling timeouts and retries -- Conclusion -- Further readings -- 5. Component Testing -- Introduction -- Structure -- Introduction to component testing -- Types of component testing -- Timing of component testing execution -- Differentiating component testing and unit testing -- Component testing vs end-to-end testing -- Setting up component testing with Cypress -- Writing component tests -- Scaffold React Application -- Testing React components -- Crafting a component -- First component test -- Locating elements and assertions -- Incorporating props into components -- Testing interactions.</subfield>
  </datafield>
  <datafield tag="505" ind1="8" ind2=" ">
    <subfield code="a">Testing React components with events -- Testing Angular components -- Building an Angular component -- Component inputs -- Interactions with the component -- Testing Angular component events -- Testing Vue.js components -- Building a Vue.js component -- Locating elements and assertions -- Incorporating props into components -- Testing interactions -- Testing Vue.js components with events -- Best practices for component testing -- Understand the component's functionality -- Isolate the component -- Use descriptive test titles -- Favor integration over snapshot tests -- Test different states -- Test events and side effects -- Keep tests DRY, but not at all costs -- Incorporate accessibility checks -- Continuously run tests in your development environment -- Use a test-first methodology (TDD/BDD) -- Debugging and troubleshooting component tests -- Utilize Cypress's time traveling and real-time reloading -- Use cy.log for custom logging -- Use cy.pause for pausing execution -- Use Cypress's built-in debuggability -- Reviewing test artifacts -- Integrating component tests into your testing workflow -- Running component tests locally -- Running component tests in continuous integration -- Writing component tests -- Running component tests -- Conclusion -- Further readings -- 6. API Testing -- Introduction -- Structure -- Introduction to API testing -- Understanding RESTful APIs -- Exploring GraphQL -- Comparing REST and GraphQL -- Cypress for API Testing -- Testing RESTful APIs -- Testing GraphQL APIs -- Aliasing Multiple Queries or Mutations -- Expectations for Query or Mutation Results -- Modifying a Query or Mutation Response -- Validating API responses -- Conclusion -- Further Readings -- 7. Data-Driven Testing -- Introduction -- Structure -- Overview of data-driven testing -- Data-Driven Testing in Action -- Using JSON Files for Test Data.</subfield>
  </datafield>
  <datafield tag="505" ind1="8" ind2=" ">
    <subfield code="a">Reasons for Using JSON Files -- Structuring JSON Files for Test Data -- Reading JSON Files in Cypress -- Implementing Data-Driven Tests with JSON Files -- Reading Data from Databases -- Reasons for Using Databases for Test Data -- Setting up the Database Connection -- Setting up MongoDB Connection -- Setting up MySQL Connection -- Using MongoDB and MySQL Data in Cypress Tests -- Implementing Data-Driven Test Cases -- Segregation of Test Data and Production Data -- Leveraging Realistic Data in Tests -- Minimizing Test Data Duplication -- Employing Cypress Plugins for Database Testing -- Setting up a Test Database -- Connecting Cypress to the Test Database -- Test Cases for CRUD Operations -- Test Case to Verify Data Integrity -- Testing Database Transactions -- Testing Database Migrations -- Conclusion -- Further Reading -- 8. Advanced Cypress Techniques -- Introduction -- Structure -- Cypress custom commands -- Creating a custom command -- Using a custom command -- Custom command overwrites -- Asynchronous custom commands -- Chaining custom commands -- Passing options to custom commands -- Custom commands with aliases -- Validating custom commands -- Use cases for custom commands -- Overriding existing commands -- Handling errors in custom commands -- Debugging custom commands -- Best practices for custom commands -- Using videos and screenshots for debugging -- Debugging with screenshots -- Debugging with videos -- Using screenshots and videos effectively -- Working with Cypress plugins -- Configuration -- Preprocessors -- Run lifecycle -- Spec lifecycle -- Browser launching -- Screenshot handling -- cy.task -- List of plugins -- Crafting a plugin -- Custom plugin examples -- Interacting with a database -- Plugin Events -- Environment variables -- Browser launch API -- Custom Webpack preprocessor -- Existing Cypress plugin examples.</subfield>
  </datafield>
  <datafield tag="505" ind1="8" ind2=" ">
    <subfield code="a">cypress-cucumber-preprocessor -- cypress-axe -- Handling authentication and authorization -- Authentication vs authorization -- Approaches to testing authentication and authorization -- Testing the UI -- Programmatic login -- Handling authorization -- Testing API authorization -- Authentication by visiting a different domain with cy.origin() -- Programmatic login using Auth0 authentication -- Parallel test execution -- Using CI/CD tools for parallelization -- Parallelization beyond the Dashboard: plugins -- cypress-parallel -- cypress-split -- Cross-browser testing -- Running tests in a specific browser -- Running tests in all supported browsers -- Electron browser: an integral part of Cypress -- Chrome browsers -- Firefox browsers -- Managing test flakiness across different browsers -- Comparing browser behaviors -- WebKit (experimental) -- Network stubbing and mocking -- Using the cy.intercept() command -- Intercepting responses and asserting with cy.wait() -- POST request stubbing -- Wildcards and glob patterns -- Visual regression testing -- Setting up cypress-image-snapshot plugin -- Creating your first visual test -- Dealing with dynamic content -- Image comparison strategies -- Setting up cypress-visual-regression -- Basic usage of cypress-visual-regression -- Dealing with dynamic content -- Customizing cypress-visual-regression -- Conclusion -- Further Reading -- 9. Cypress Cloud, Smart Orchestration, and Flaky Test Management -- Introduction -- Structure -- Introduction to Cypress Cloud -- Understanding Cypress Cloud -- Key features of Cypress Cloud -- Detailed test recording and optimized management -- Smart Orchestration in Cypress -- Introduction to Smart Orchestration -- Parallelization -- Load Balancing -- Spec Prioritization -- Run Cancellation -- Managing flaky tests -- Network instability -- Concurrency issues.</subfield>
  </datafield>
  <datafield tag="505" ind1="8" ind2=" ">
    <subfield code="a">Test order dependency.</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">Dive into the world of automated web testing with "Ultimate Web Automation Testing with Cypress." From foundational concepts to advanced techniques, the book equips professionals with the skills to seamlessly integrate Cypress into their workflow. Starting with setup and basic tests, it progresses to cover end-to-end, component, API, and data-driven testing with practical examples and best practices. Further, it explores advanced topics like custom commands, plugins, Cypress Cloud, Smart Orchestration and Flaky Test Management. The book also unveils the integration with GitHub, GitLab, and Cucumber, and concludes with CI/CD implementation using Docker and Jenkins Pipelines, along with effective reporting techniques. By the end, you will have a profound understanding of Cypress, empowering you to excel in web application testing and advance your careers in the competitive software testing industry.</subfield>
  </datafield>
  <datafield tag="588" ind1=" " ind2=" ">
    <subfield code="a">Description based on publisher supplied metadata and other sources.</subfield>
  </datafield>
  <datafield tag="590" ind1=" " ind2=" ">
    <subfield code="a">Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.</subfield>
  </datafield>
  <datafield tag="655" ind1=" " ind2="4">
    <subfield code="a">Electronic books.</subfield>
  </datafield>
  <datafield tag="776" ind1="0" ind2="8">
    <subfield code="i">Print version:</subfield>
    <subfield code="a">Skadorva, Vitaly</subfield>
    <subfield code="t">Ultimate Web Automation Testing with Cypress: Master End-To-End Web Application Testing Automation to Accelerate Your QA Process with Cypress (English Edition)</subfield>
    <subfield code="d">Delhi : Orange Education PVT Ltd,c2023</subfield>
  </datafield>
  <datafield tag="797" ind1="2" ind2=" ">
    <subfield code="a">ProQuest (Firm)</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2="0">
    <subfield code="u">https://ebookcentral.proquest.com/lib/huberlin-ebooks/detail.action?docID=31011472</subfield>
    <subfield code="z">Click to View</subfield>
  </datafield>
  <datafield tag="338" ind1=" " ind2=" ">
    <subfield code="b">cr</subfield>
  </datafield>
  <datafield tag="924" ind1=" " ind2=" ">
    <subfield code="a">9949927123002882</subfield>
    <subfield code="b">DE-11</subfield>
    <subfield code="c">KOBV</subfield>
    <subfield code="d">c</subfield>
  </datafield>
  <datafield tag="950" ind1=" " ind2=" ">
    <subfield code="s">false</subfield>
  </datafield>
</record>