{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/BllfmgtEgYXRkk9rqBkw/nV8pUR1Dfs7FcKplnUi4/xUFEuGbVZ-12.js"],
  "sourcesContent": ["import{jsx as e,jsxs as t}from\"react/jsx-runtime\";import{ComponentPresetsConsumer as r,Link as n}from\"framer\";import{motion as a}from\"framer-motion\";import*as i from\"react\";import o from\"https://framerusercontent.com/modules/pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js\";export const richText=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Incorporating these essential tools into your CI/CD testing strategy can improve your automation efforts. Each tool offers unique capabilities that cater to different aspects of testing.\"}),/*#__PURE__*/e(\"h3\",{children:\"Qodex.ai\"}),/*#__PURE__*/e(\"img\",{alt:\"Qodex\",className:\"framer-image\",height:\"206\",src:\"https://framerusercontent.com/images/GYz9DeG0o4WFmp6YQmNeJ5tkEz0.png\",srcSet:\"https://framerusercontent.com/images/GYz9DeG0o4WFmp6YQmNeJ5tkEz0.png?scale-down-to=512 512w,https://framerusercontent.com/images/GYz9DeG0o4WFmp6YQmNeJ5tkEz0.png 937w\",style:{aspectRatio:\"937 / 412\"},width:\"468\"}),/*#__PURE__*/e(\"p\",{children:\"Qodex.ai is an advanced platform that enhances CI/CD testing by leveraging artificial intelligence to improve test automation and efficiency. It integrates seamlessly into CI/CD pipelines, offering sophisticated test management and execution capabilities. \"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(n,{href:\"https://qodex.ai\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Qodex.ai\u2019\"})}),\"s AI-driven approach enables intelligent test case generation and anomaly detection. Additionally, its predictive analytics ensure that your testing process is not only faster but also smarter.\"]}),/*#__PURE__*/e(\"p\",{children:\"Its compatibility with various CI/CD tools makes it a valuable addition to any modern development workflow.\"}),/*#__PURE__*/e(\"h3\",{children:\"Testsigma\"}),/*#__PURE__*/e(\"img\",{alt:\"Testsigma\",className:\"framer-image\",height:\"337\",src:\"https://framerusercontent.com/images/4tJEe1gU8Lda63LgWmyKErFnMs.png\",srcSet:\"https://framerusercontent.com/images/4tJEe1gU8Lda63LgWmyKErFnMs.png?scale-down-to=512 512w,https://framerusercontent.com/images/4tJEe1gU8Lda63LgWmyKErFnMs.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/4tJEe1gU8Lda63LgWmyKErFnMs.png 1200w\",style:{aspectRatio:\"1200 / 675\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Testsigma is an all-in-one test automation platform that simplifies the testing process across the software development lifecycle. It allows teams to create, execute, and manage tests in a single interface, promoting collaboration among developers and testers. \"}),/*#__PURE__*/t(\"p\",{children:[\"Testsigma supports various testing types, including functional, performance, and \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/api-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API testing\"})}),\". Its seamless integration into CI/CD pipelines ensures that quality is maintained at every stage of development.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Selenium\"}),/*#__PURE__*/e(\"img\",{alt:\"Selenium\",className:\"framer-image\",height:\"329\",src:\"https://framerusercontent.com/images/GwWl2pTfswIi2v73MIMHnDlKcU.png\",srcSet:\"https://framerusercontent.com/images/GwWl2pTfswIi2v73MIMHnDlKcU.png?scale-down-to=512 512w,https://framerusercontent.com/images/GwWl2pTfswIi2v73MIMHnDlKcU.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/GwWl2pTfswIi2v73MIMHnDlKcU.png 1110w\",style:{aspectRatio:\"1110 / 659\"},width:\"555\"}),/*#__PURE__*/e(\"p\",{children:\"Selenium is a widely recognized open-source framework for automating web applications. It enables developers to write tests in multiple programming languages, making it flexible and adaptable to different tech stacks. \"}),/*#__PURE__*/e(\"p\",{children:\"Selenium supports various browsers and platforms, allowing teams to conduct cross-browser testing efficiently. \"}),/*#__PURE__*/e(\"p\",{children:\"By integrating Selenium into CI/CD workflows, teams can ensure that web applications function correctly across different environments, enhancing overall software quality.\"}),/*#__PURE__*/e(\"h3\",{children:\"Jenkins\"}),/*#__PURE__*/e(\"img\",{alt:\"Jenkins\",className:\"framer-image\",height:\"200\",src:\"https://framerusercontent.com/images/RFuLfZxep7BILXxMAUJppchvSUY.png\",srcSet:\"https://framerusercontent.com/images/RFuLfZxep7BILXxMAUJppchvSUY.png?scale-down-to=512 512w,https://framerusercontent.com/images/RFuLfZxep7BILXxMAUJppchvSUY.png 600w\",style:{aspectRatio:\"600 / 400\"},width:\"300\"}),/*#__PURE__*/e(\"p\",{children:\"Jenkins is a powerful automation server that plays a central role in CI/CD processes. It allows teams to automate the building, testing, and deployment of applications, streamlining the development workflow. \"}),/*#__PURE__*/t(\"p\",{children:[\"With its extensive plugin ecosystem, Jenkins integrates with numerous \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/tags/qa-automation-tools\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"testing tools\"})}),\", enabling teams to create robust CI/CD pipelines that include automated testing at various stages. This integration helps maintain code quality and accelerates the release process.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Cucumber\"}),/*#__PURE__*/e(\"img\",{alt:\"Cucumber\",className:\"framer-image\",height:\"256\",src:\"https://framerusercontent.com/images/A297i5gBU4zC9lRP0zdiWGXiMs.png\",srcSet:\"https://framerusercontent.com/images/A297i5gBU4zC9lRP0zdiWGXiMs.png?scale-down-to=512 512w,https://framerusercontent.com/images/A297i5gBU4zC9lRP0zdiWGXiMs.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/A297i5gBU4zC9lRP0zdiWGXiMs.png 1467w\",style:{aspectRatio:\"1467 / 512\"},width:\"733\"}),/*#__PURE__*/e(\"p\",{children:\"Cucumber is a tool that supports Behavior Driven Development (BDD), allowing teams to write tests in plain language that can be understood by both technical and non-technical stakeholders. \"}),/*#__PURE__*/e(\"p\",{children:\"This collaborative approach helps ensure that all team members are aligned on the application\u2019s behavior. \"}),/*#__PURE__*/e(\"p\",{children:\"Cucumber integration into CI/CD pipelines, teams can automate acceptance tests, verifying that the software meets user requirements and functions as intended.\"}),/*#__PURE__*/e(\"h3\",{children:\"Appium\"}),/*#__PURE__*/e(\"img\",{alt:\"Appium\",className:\"framer-image\",height:\"225\",src:\"https://framerusercontent.com/images/KKSJ7agCIbBxDdFxUObsbZzu4AE.png\",srcSet:\"https://framerusercontent.com/images/KKSJ7agCIbBxDdFxUObsbZzu4AE.png?scale-down-to=512 512w,https://framerusercontent.com/images/KKSJ7agCIbBxDdFxUObsbZzu4AE.png 900w\",style:{aspectRatio:\"900 / 450\"},width:\"450\"}),/*#__PURE__*/e(\"p\",{children:\"Appium is an open-source tool for automating mobile applications, supporting both native and hybrid apps across various platforms. \"}),/*#__PURE__*/e(\"p\",{children:\"It allows teams to write tests using their preferred programming languages and frameworks, making it versatile for mobile testing. \"}),/*#__PURE__*/e(\"p\",{children:\"With Appium integrated into CI/CD workflows, teams can ensure that mobile applications are thoroughly tested for functionality and performance. This ultimately enhances the user experience.\"})]});export const richText1=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"CI/CD testing is vital for delivering high-quality software quickly and efficiently. It automates integration and deployment, helping teams spot issues early and maintain quality while rapidly responding to user feedback. \"}),/*#__PURE__*/e(\"p\",{children:\"As organizations increasingly adopt CI/CD practices, the role of automated testing becomes more critical, ensuring that software releases are stable, functional, and secure. \"}),/*#__PURE__*/e(\"p\",{children:\"Looking ahead, the future of automated testing in CI/CD is promising. With advancements in artificial intelligence and machine learning, tools like Qodex.ai are set to revolutionize the testing landscape. \"}),/*#__PURE__*/e(\"p\",{children:\"It enhances test automation, provides intelligent insights, streamlines workflows, improves software quality, and accelerates release cycles for empowered teams.\"}),/*#__PURE__*/t(\"p\",{children:[\"Ready to transform your CI/CD testing process? Visit \",/*#__PURE__*/e(n,{href:\"https://qodex.ai\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Qodex.ai\"})}),\" to discover how our advanced platform can elevate your testing efforts and help you deliver high-quality software faster than ever. Don\u2019t miss out on the opportunity.\"]})]});export const richText2=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Ever find yourself staring at a long list of UI test automation frameworks, unsure where to start? You're not alone. Selecting the appropriate one may feel like trying to select the ideal instrument from a crowded toolbox.\"}),/*#__PURE__*/e(\"p\",{children:\"But here's the thing: the right choice can make your testing process a breeze, while the wrong one could slow you down. So, let's break it down and figure out which framework is the best fit for your project.\"}),/*#__PURE__*/e(\"h3\",{children:\"Key Benefits of Choosing the Right UI Test Automation Framework \"}),/*#__PURE__*/e(\"p\",{children:\"Choosing the right UI test automation framework is more than just a technical decision\u2014it's a strategic one. The right framework aligns with your team's skills, integrates smoothly with your existing tools, and scales as your project grows.\"}),/*#__PURE__*/e(\"p\",{children:\"It helps you automate repetitive tasks, saving time and reducing human error. Plus, a well-suited framework makes it easier to maintain your tests over time, ensuring that your automation efforts don't become a burden down the road.\"}),/*#__PURE__*/e(\"p\",{children:\"Making the correct decision enables your team to produce high-quality software more quickly and confidently.\"})]});export const richText3=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"A UI test automation framework is essentially your toolkit for automating the testing of your application's user interface. Think of it as a collection of tools and libraries designed to make your life easier by automating repetitive, time-consuming tasks.\"}),/*#__PURE__*/e(\"p\",{children:\"These frameworks provide a structured way to write, execute, and manage UI tests, ensuring that every aspect of your application's interface works as intended every time.\"}),/*#__PURE__*/t(\"p\",{children:[\"(Check out to know more: \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/basic-steps-for-ui-performance-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!1,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"https://qodex.ai/blog/basic-steps-for-ui-performance-testing\"})}),\")\"]}),/*#__PURE__*/e(\"h3\",{children:\"Purpose\"}),/*#__PURE__*/e(\"p\",{children:\"The primary goal of a UI test automation framework is to ensure that your application\u2019s user interface functions smoothly and delivers a great user experience. It\u2019s not just about checking if buttons work or if pages load correctly.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"It\u2019s about verifying that users can interact with your application as intended, without any hiccups.\\xa0\"}),/*#__PURE__*/t(\"p\",{children:[\"By automating these tests, you can quickly identify and fix issues related to functionality, \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/understanding-usability-testing-a-beginners-guide\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!1,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"usability\"})}),\", and performance, ensuring that your application meets user expectations\"]}),/*#__PURE__*/e(\"h2\",{children:\"Challenges While Performing UI Testing\"}),/*#__PURE__*/e(\"h3\",{children:\"UI Complexity\"}),/*#__PURE__*/e(\"p\",{children:\"User interfaces today are more dynamic and interactive than ever, which is fantastic for user experience but challenging for testing.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"Complex elements like drag-and-drop features, dynamic content loading, and intricate animations require precise and thorough testing.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"The challenge lies in ensuring these elements function as intended across different scenarios. If not carefully tested, bugs can easily go unnoticed, affecting the user experience.\"}),/*#__PURE__*/e(\"h3\",{children:\"Cross-platform Compatibility\"}),/*#__PURE__*/e(\"p\",{children:\"Your users aren\u2019t just on one browser or device\u2014they\u2019re everywhere. Ensuring your UI works seamlessly across different browsers, screen sizes, and operating systems is no small feat.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"Each platform has its own way of rendering things, so what works wonderfully on one may not function on another. The challenge is ensuring a uniform user experience, regardless of the platform or device your application is accessed on.\\xa0\"}),/*#__PURE__*/e(\"h3\",{children:\"Maintenance\"}),/*#__PURE__*/e(\"p\",{children:\"Applications evolve constantly\u2014new features are added, existing ones are updated, and old ones are retired. The constant changes require regular updates to UI tests to keep them effective and relevant.\"}),/*#__PURE__*/e(\"p\",{children:\"The challenge is maintaining your automated tests in line with these changes without letting them become a time-consuming task. Consistent maintenance is essential to keep your testing efforts both valuable and accurate.\"}),/*#__PURE__*/e(\"h3\",{children:\"Performance\"}),/*#__PURE__*/e(\"p\",{children:\"UI testing, especially when automated, can be resource-intensive. Running comprehensive tests across multiple platforms can slow down your development pipeline if not managed efficiently.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"The challenge is to balance thorough testing with meeting tight deadlines. Achieving this balance requires careful planning and resource management to ensure your tests run smoothly without compromising your application's quality.\"})]});export const richText4=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"img\",{alt:\"Framework Selection Criteria\",className:\"framer-image\",height:\"450\",src:\"https://framerusercontent.com/images/Q1cm99FfXwqHzLBfS8UXqUaatFk.png\",srcSet:\"https://framerusercontent.com/images/Q1cm99FfXwqHzLBfS8UXqUaatFk.png?scale-down-to=512 512w,https://framerusercontent.com/images/Q1cm99FfXwqHzLBfS8UXqUaatFk.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/Q1cm99FfXwqHzLBfS8UXqUaatFk.png 1600w\",style:{aspectRatio:\"1600 / 900\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"When choosing a UI test automation framework, the first thing to check is whether it supports the platforms and devices your application targets.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"Does it work seamlessly across all operating systems and browsers you need? Ensuring broad compatibility is crucial for delivering a consistent user experience, no matter where your application is used.\"}),/*#__PURE__*/e(\"h3\",{children:\"Complexity and Support Level\"}),/*#__PURE__*/e(\"p\",{children:\"A framework that\u2019s difficult to use can slow down your team. Look for one that offers an intuitive interface and comprehensive documentation. Also, consider the availability of support resources.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"Whether that's an active community, detailed guides, or responsive customer support, the more accessible the help, the quicker your team can overcome challenges.\"}),/*#__PURE__*/e(\"h3\",{children:\"Extent of Automation\"}),/*#__PURE__*/e(\"p\",{children:\"The level of automation a framework offers can make a significant difference in your testing efficiency. Some frameworks provide basic automation, while others offer advanced features like visual testing, parallel execution, and AI-driven analysis.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"Consider what level of automation aligns with your needs and choose a framework that can scale with your project\u2019s complexity.\"}),/*#__PURE__*/t(\"p\",{children:[\"(Get insights on API automation: \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/what-is-api-automation-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"https://qodex.ai/blog/what-is-api-automation-testing\"})}),\")\"]}),/*#__PURE__*/e(\"h3\",{children:\"Pricing and Licensing\"}),/*#__PURE__*/e(\"p\",{children:\"Budget constraints are a reality, so it\u2019s essential to evaluate the cost-effectiveness of a framework. Does it fit within your budget while offering the features you need?\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"Also, consider the licensing options\u2014whether they\u2019re flexible enough to accommodate your team\u2019s size and project scope without breaking the bank.\"}),/*#__PURE__*/e(\"h3\",{children:\"Open Source\"}),/*#__PURE__*/e(\"p\",{children:\"Open-source frameworks come with the benefit of being free to use, but that\u2019s not the only advantage. They\u2019re often backed by active communities that contribute to ongoing development and provide support.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"When you pick open-source, you gain access to a vast amount of shared knowledge and resources.\\xa0\"}),/*#__PURE__*/e(\"h3\",{children:\"Active Maintenance\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"A well-maintained framework is crucial for staying ahead of changes in technology.\\xa0 Regular upgrades maintain compatibility with the most recent browsers, devices, and testing procedures. Active maintenance also signals that the framework is evolving with industry trends.\"})]});export const richText5=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"img\",{alt:\"Qodex ai\",className:\"framer-image\",height:\"315\",src:\"https://framerusercontent.com/images/6TGluYStAHsUTXq0qFKta52jdUY.png\",srcSet:\"https://framerusercontent.com/images/6TGluYStAHsUTXq0qFKta52jdUY.png?scale-down-to=512 512w,https://framerusercontent.com/images/6TGluYStAHsUTXq0qFKta52jdUY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/6TGluYStAHsUTXq0qFKta52jdUY.png 1200w\",style:{aspectRatio:\"1200 / 630\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Qodex.ai is a modern UI test automation framework designed to streamline the testing process with a focus on speed and accuracy. It leverages AI-driven insights to automate complex testing scenarios, making it a powerful tool for teams looking to enhance their testing capabilities.\"}),/*#__PURE__*/e(\"p\",{children:\"Qodex.ai is built to integrate seamlessly with existing workflows, offering a user-friendly interface that reduces the learning curve, even for those new to test automation.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Features\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(n,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!1,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Qodex.ai\"})}),\" stands out with its advanced AI-driven features, which help identify and prioritize test cases based on impact and coverage. It supports parallel testing, allowing you to run multiple tests simultaneously across different environments, saving valuable time.\\xa0\"]}),/*#__PURE__*/e(\"p\",{children:\"The platform also provides sophisticated reporting capabilities that provide actionable insights, helping you identify and resolve issues more quickly.\"}),/*#__PURE__*/t(\"p\",{children:[\"Additionally, Qodex.ai\u2019s flexibility allows for easy integration with popular\",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/cicd-trends\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!1,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\" CI/CD \"})}),\"pipelines, ensuring that automated testing is an integral part of your development process.\"]}),/*#__PURE__*/t(\"p\",{children:[\"(Know more about CI/CD - \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/ci-cd-testing-importance\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!1,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"What is CI/CD Testing and Why It's Essential? - Qodex.ai\"})}),\")\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Community\"})}),/*#__PURE__*/e(\"p\",{children:\"Although new, Qodex.ai is quickly building a dedicated user base. The active community offers resources like tutorials and forums, while the Qodex.ai team provides responsive support to help users with any challenges.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Selenium WebDriver\"})}),/*#__PURE__*/e(\"img\",{alt:\"Selenium WebDriver\",className:\"framer-image\",height:\"298\",src:\"https://framerusercontent.com/images/5uDELIhC9RO8cwrmu7XIdipyMo.png\",srcSet:\"https://framerusercontent.com/images/5uDELIhC9RO8cwrmu7XIdipyMo.png?scale-down-to=512 512w,https://framerusercontent.com/images/5uDELIhC9RO8cwrmu7XIdipyMo.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/5uDELIhC9RO8cwrmu7XIdipyMo.png 1078w\",style:{aspectRatio:\"1078 / 597\"},width:\"539\"}),/*#__PURE__*/e(\"p\",{children:\"Selenium WebDriver is one of the most popular and widely used open-source UI test automation frameworks. Launched in 2008, it has become a go-to choice for testers due to its versatility and robust feature set.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"Selenium\u2019s ability to support multiple programming languages and its compatibility with various browsers make it an essential tool in many testing toolkits. Its long history in the industry has allowed it to mature into a reliable and well-documented framework.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Feature\"}),\"\\xa0\"]}),/*#__PURE__*/e(\"p\",{children:\"Selenium WebDriver offers extensive cross-browser compatibility, allowing you to run tests across all major browsers, including Chrome, Firefox, Safari, and Internet Explorer.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"It supports multiple programming languages such as Java, Python, C#, and Ruby, giving testers the flexibility to work with the language they\u2019re most comfortable with.\"}),/*#__PURE__*/e(\"p\",{children:\"\\xa0It simulates user actions effectively and integrates well with various testing frameworks and CI/CD tools.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Community\"})}),/*#__PURE__*/e(\"p\",{children:\"Selenium has one of the largest communities in test automation, offering extensive online resources, documentation, and support forums. This makes it a reliable choice for testers at all experience levels.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Cypress\"})}),/*#__PURE__*/e(\"img\",{alt:\"Cypress\",className:\"framer-image\",height:\"1050\",src:\"https://framerusercontent.com/images/CNGC9hmZVKUQWVpI9yPLGTa9E.png\",srcSet:\"https://framerusercontent.com/images/CNGC9hmZVKUQWVpI9yPLGTa9E.png?scale-down-to=512 512w,https://framerusercontent.com/images/CNGC9hmZVKUQWVpI9yPLGTa9E.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/CNGC9hmZVKUQWVpI9yPLGTa9E.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/CNGC9hmZVKUQWVpI9yPLGTa9E.png 2800w\",style:{aspectRatio:\"2800 / 2100\"},width:\"1400\"}),/*#__PURE__*/e(\"p\",{children:\"Cypress is a JavaScript-based tool designed for fast and reliable testing of web applications. It\u2019s built specifically for modern web apps, offering developers a powerful yet intuitive environment to write and run tests directly in the browser.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Features\"})}),/*#__PURE__*/e(\"p\",{children:\"Cypress excels with features like real-time reloading, allowing you to see the results of your tests instantly as you code.\\xa0 It interacts seamlessly with common frameworks and tools, making it a valuable complement to your existing setup.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"One of its standout features is time-travel debugging, which lets you step back and inspect the state of your application at any point during the test run, making it easier to pinpoint issues.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Browser Support\"})}),/*#__PURE__*/e(\"p\",{children:\"Cypress supports multiple browsers, including Chrome, Firefox, and Edge. This ensures your tests are not only fast but also comprehensive, covering different environments where your users might access your application.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Playwright\"})}),/*#__PURE__*/e(\"img\",{alt:\"Playwright\",className:\"framer-image\",height:\"303\",src:\"https://framerusercontent.com/images/oBeyZYIhV3pHXNS8nx2uLOBFpIk.png\",srcSet:\"https://framerusercontent.com/images/oBeyZYIhV3pHXNS8nx2uLOBFpIk.png?scale-down-to=512 512w,https://framerusercontent.com/images/oBeyZYIhV3pHXNS8nx2uLOBFpIk.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/oBeyZYIhV3pHXNS8nx2uLOBFpIk.png 1080w\",style:{aspectRatio:\"1080 / 607\"},width:\"540\"}),/*#__PURE__*/e(\"p\",{children:\"Playwright is an open-source testing framework notable for supporting many programming languages, including JavaScript, Python, and C#. It\u2019s designed to provide reliable, end-to-end testing for modern web applications, offering a robust alternative to traditional tools.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Features\"})}),/*#__PURE__*/e(\"p\",{children:\"Playwright is known for its reliable auto-waiting feature, which automatically waits for elements to be actionable before proceeding with the test. This reduces flakiness and makes tests more stable.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"It also offers device emulation, allowing you to test how your application behaves on different devices. Additionally, Playwright supports headless browser testing, enabling faster test execution without the need for a graphical interface.\"}),/*#__PURE__*/t(\"p\",{children:[\"(Read more: \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/software-testing-strategies-and-techniques-guide\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!1,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Software Testing Strategies and Techniques Guide - Qodex.ai\"})}),\")\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Cross-browser Testing\"})}),/*#__PURE__*/e(\"p\",{children:\"Playwright supports cross-browser testing across Chromium, WebKit, and Firefox. This broad compatibility ensures that your web applications work seamlessly across all major browsers, making it easier to deliver a consistent user experience.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"TestCafe\"})}),/*#__PURE__*/e(\"img\",{alt:\"TestCafe\",className:\"framer-image\",height:\"315\",src:\"https://framerusercontent.com/images/7lCm3lQLC2dybveojxZbml48.png\",srcSet:\"https://framerusercontent.com/images/7lCm3lQLC2dybveojxZbml48.png?scale-down-to=512 512w,https://framerusercontent.com/images/7lCm3lQLC2dybveojxZbml48.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/7lCm3lQLC2dybveojxZbml48.png 1200w\",style:{aspectRatio:\"1200 / 630\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"TestCafe is a cross-platform testing tool that stands out for its simplicity and ease of use. Unlike many other frameworks, it doesn\u2019t require browser plugins or WebDriver installations, making it a lightweight and hassle-free option for automating UI tests.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Features\"})}),/*#__PURE__*/e(\"p\",{children:\"TestCafe comes equipped with a built-in wait mechanism, automatically waiting for elements to appear before proceeding, which minimizes flaky tests.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"It also enables parallel test execution, which allows you to run several tests concurrently and accelerate the testing process. Another advantage is that it doesn\u2019t rely on WebDriver, which simplifies setup and reduces dependencies.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Compatibility\"})}),/*#__PURE__*/e(\"p\",{children:\"TestCafe offers broad compatibility, supporting all major browsers and platforms. Whether you\u2019re testing on Windows, macOS, or Linux, TestCafe ensures that your tests can be executed seamlessly across different environments, providing consistent results.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"ACCELQ \"})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"160\",src:\"https://framerusercontent.com/images/3YCwySmavaPcZ2rdg4RCYeKuwdI.png\",srcSet:\"https://framerusercontent.com/images/3YCwySmavaPcZ2rdg4RCYeKuwdI.png?scale-down-to=512 512w,https://framerusercontent.com/images/3YCwySmavaPcZ2rdg4RCYeKuwdI.png 777w\",style:{aspectRatio:\"777 / 320\"},width:\"388\"}),/*#__PURE__*/e(\"p\",{children:\"ACCELQ is a cloud-based, no-code test automation platform designed for both web and mobile applications.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"It\u2019s ideal for teams looking to automate without writing extensive code, making it accessible to non-technical users while still offering powerful testing capabilities.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Features\"})}),/*#__PURE__*/e(\"p\",{children:\"ACCELQ leverages AI/ML to enhance its testing capabilities, providing intelligent suggestions and automating complex scenarios. It offers comprehensive support for both web and mobile testing, ensuring a wide range of application types can be covered.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"The platform also includes built-in analytics, giving you valuable insights into your testing performance and helping you identify areas for improvement.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Usage\"})}),/*#__PURE__*/t(\"p\",{children:[\"ACCELQ is particularly well-suited for continuous UI and \",/*#__PURE__*/e(n,{href:\"https://www.qodex.ai/post/postman-alternatives-api-testing-with-ai\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API testing\"})}),\", making it a great choice for teams practicing \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/agile-testing-methodology-importance-best-practices-and-challenges\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!1,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Agile\"})}),\" or DevOps. Its cloud-based architecture facilitates cooperation and scalability, guaranteeing that your testing efforts can scale with your project's requirements.\"]}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"Katalon Studio\"})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"250\",src:\"https://framerusercontent.com/images/wvCloUyhibvhM3A4WBkswB8qgw8.png\",srcSet:\"https://framerusercontent.com/images/wvCloUyhibvhM3A4WBkswB8qgw8.png?scale-down-to=512 512w,https://framerusercontent.com/images/wvCloUyhibvhM3A4WBkswB8qgw8.png 696w\",style:{aspectRatio:\"696 / 500\"},width:\"348\"}),/*#__PURE__*/e(\"p\",{children:\"Katalon Studio is an all-in-one testing solution that simplifies automation with its keyword-driven approach. Katalon Studio is designed to cater to both beginners and experienced testers. It provides a comprehensive platform that allows you to manage everything from test development to execution without switching tools.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Features\"})}),/*#__PURE__*/e(\"p\",{children:\"Katalon Studio shines with its codeless testing capabilities, allowing you to create automated tests without writing a single line of code. This makes it accessible for non-developers while still being powerful enough for advanced users.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:\"The platform also supports reusable test components, saving you time by letting you build once and use it across multiple tests. Additionally, Katalon includes built-in test case management, which keeps your testing process organized and efficient.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"User Base\"})}),/*#__PURE__*/e(\"p\",{children:\"Katalon Studio is ideal for teams with diverse testing needs, whether you're working on web, mobile, or desktop applications. Its versatility and ease of use make it a strong choice for teams of all sizes, from small startups to large enterprises. This guarantees that each team member may make a valuable contribution to the testing procedure.\"})]});export const richText6=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Automated UI testing plays a crucial role in delivering high-quality software by catching issues early and ensuring a seamless user experience. However, the effectiveness of your testing efforts largely depends on selecting the right tools.\"}),/*#__PURE__*/t(\"p\",{children:[\"Choosing a robust framework like\",/*#__PURE__*/e(n,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!1,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\" Qodex.ai\"})}),\" can streamline your testing process, offering AI-driven insights and advanced features that enhance efficiency and accuracy. With Qodex.ai, you\u2019re equipped to handle complex UI testing scenarios effortlessly, saving time and resources.\"]}),/*#__PURE__*/e(\"p\",{children:\"Ready to elevate your UI testing game? Explore how Qodex.ai can transform your testing process\u2014visit our page now and see the difference it can make for your team.\"})]});export const richText7=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Ever wondered how your favorite apps talk to each other seamlessly? That's where APIs come in. Picture APIs as skilled interpreters at a global conference \u2013 they ensure everyone speaks the same language, no matter where they're from. In the tech world, APIs are these essential bridges that let different software applications chat, share data, and work together smoothly.\"}),/*#__PURE__*/t(\"h3\",{children:[/*#__PURE__*/e(\"br\",{}),\"Why API Testing Is Your Software's Best Friend\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/t(\"p\",{children:[\"Think about sending an important message to a friend. You'd want to make sure it's clear, arrives correctly, and makes sense, right? That's exactly what \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/software-api-testing-tools\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API testing\"})}),\" does for software. It's like having a quality control expert who checks every conversation between applications to ensure everything works perfectly.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Here's why API testing is crucial:\"})}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Reliability Champions\"}),\": When you test APIs, you're essentially making sure your software won't break down at crucial moments. Just like you'd test drive a car before a long journey, API testing ensures your applications can handle their daily workload without hiccups. \",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Security Guardians:\"}),\" In today's digital world, data security is gold. \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/software-api-testing-tools\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API testing\"})}),\" acts like a security guard, checking for any vulnerabilities that could let unwanted visitors sneak in. It helps protect sensitive information and keeps your system secure.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Performance Boosters:\"}),\" Nobody likes a slow app, right? API testing helps identify performance bottlenecks early, ensuring your software runs as smoothly as a well-oiled machine. It's like having a fitness trainer for your applications, keeping them in top shape.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cost Savers:\"}),\" Finding and fixing issues early through API testing is like catching a small leak before it floods your house. It's much cheaper and easier to fix problems during development than after your software is live and running.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/t(\"p\",{children:[\"Let's break down what good API testing can prevent:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"881\",src:\"https://framerusercontent.com/images/KgMGxVSGhWo0fAU2g0fFuLf75l8.png\",srcSet:\"https://framerusercontent.com/images/KgMGxVSGhWo0fAU2g0fFuLf75l8.png?scale-down-to=512 512w,https://framerusercontent.com/images/KgMGxVSGhWo0fAU2g0fFuLf75l8.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/KgMGxVSGhWo0fAU2g0fFuLf75l8.png 1805w\",style:{aspectRatio:\"1805 / 1762\"},width:\"902\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),\"Ready to dive deeper? In the following sections, we'll explore the most common defects you might encounter during API testing and how to tackle them head-on. Whether you're a seasoned developer or just starting with APIs, understanding these fundamentals will help you build more reliable, secure, and efficient software systems.\"]})]});export const richText8=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Let's talk about something that often sneaks into API testing without much fanfare \u2013 missing or duplicate functionality. Think of your API as a Swiss Army knife. If it's missing a crucial tool or has two of the same blade, it's not working at its best.\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"What Are We Looking At?\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Missing Endpoints\"}),\" are like having a TV remote with a missing volume button \u2013 frustrating and limiting. These are API functions that should be there but aren't, leaving developers scratching their heads when they need to perform specific tasks.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Redundant Features\"}),\" are like having two front doors to your house \u2013 unnecessary and potentially confusing. When APIs have multiple ways to do the same thing, it creates confusion and bloats your system.\"]}),/*#__PURE__*/e(\"h4\",{children:\"Impact on Your System\"}),/*#__PURE__*/t(\"p\",{children:[\"When your API has these issues, here's what happens:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"How to address system issues for seamless operations?\",className:\"framer-image\",height:\"505\",src:\"https://framerusercontent.com/images/ATi3VfUaIWt7kKrPo5j0MYxQxFM.png\",srcSet:\"https://framerusercontent.com/images/ATi3VfUaIWt7kKrPo5j0MYxQxFM.png?scale-down-to=512 512w,https://framerusercontent.com/images/ATi3VfUaIWt7kKrPo5j0MYxQxFM.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/ATi3VfUaIWt7kKrPo5j0MYxQxFM.png 1791w\",style:{aspectRatio:\"1791 / 1010\"},width:\"895\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Catching These Issues Early\"]}),/*#__PURE__*/e(\"p\",{children:\"How do we spot these sneaky problems? Here are the most effective detection strategies:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Listen to Your Users\"}),\" Your users are like canaries in a coal mine \u2013 they'll be the first to notice when something's not right. Pay attention when they report missing features or confusion about different methods.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Quality Assurance Testing\"}),\" Having dedicated \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/api-testing-responsibility-qa-development\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"QA teams systematically test your API\"})}),\" is like having a professional home inspector. They'll catch issues before they become problems.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Regular Code Reviews\"}),\" Think of code reviews as your API's regular health check-ups. Having experienced developers look through the code can spot redundancies and gaps that automated tests might miss.\"]})})]}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Making Things Right\"]}),/*#__PURE__*/e(\"p\",{children:\"Here's your action plan for fixing these issues:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Regular API Audits\"}),\" Schedule regular check-ups of your API's functionality. This helps ensure everything's working as intended and nothing's duplicated unnecessarily.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Feedback Loops\"}),\" Create easy ways for developers to report issues and suggest improvements. The more feedback you get, the better your API becomes.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Smart Development Cycles\"}),\" Use an iterative development approach that lets you add features gradually and test thoroughly at each step. It's like building a house \u2013 you want to make sure each part is solid before moving on to the next.\"]})})]}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Pro Tips for Prevention\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Document everything meticulously\"})})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Create a clear roadmap for API development\"})})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Establish standard practices for adding new endpoints\"})})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Regular team discussions about API architecture\"})})})]}),/*#__PURE__*/e(\"p\",{children:\"Remember, in API testing, both missing and duplicate functionalities are equally important to address. Just as a car needs all its parts (and only one of each), your API needs to be complete and efficient without unnecessary redundancy.\"})]});export const richText9=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Ever tried using a recipe with incorrect measurements? That's what data issues in APIs feel like to developers. When your API handles data incorrectly, it's like trying to bake a cake with salt instead of sugar \u2013 the results can be disastrous.\"}),/*#__PURE__*/e(\"h4\",{children:\"Common Data Problems You Need to Watch For\"}),/*#__PURE__*/t(\"p\",{children:[\"Data issues in API testing come in various flavors. Here's what you might encounter:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Factors Leading to Data Quality Issues\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/3bS28d6RG98B71gOmZ9JBk4oQY.png\",srcSet:\"https://framerusercontent.com/images/3bS28d6RG98B71gOmZ9JBk4oQY.png?scale-down-to=512 512w,https://framerusercontent.com/images/3bS28d6RG98B71gOmZ9JBk4oQY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/3bS28d6RG98B71gOmZ9JBk4oQY.png 1917w\",style:{aspectRatio:\"1917 / 1081\"},width:\"958\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"When Security Meets Data\"]}),/*#__PURE__*/e(\"p\",{children:\"Poor data handling in APIs isn't just about incorrect information \u2013 it's also a security risk. Here's what could go wrong:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Data Exposure\"}),\" Imagine your private diary being left open on a public table. That's what happens when APIs don't properly protect sensitive data during transmission.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Data Integrity\"}),\" When data isn't properly validated, it's like having a bank that doesn't verify the authenticity of checks. This can lead to corrupted databases and compromised systems.\"]})})]}),/*#__PURE__*/e(\"h4\",{children:\"Making Your Data Bulletproof\"}),/*#__PURE__*/e(\"p\",{children:\"Let's look at practical solutions to keep your data clean and secure:\"}),/*#__PURE__*/e(\"h5\",{children:\"1. Strong Validation Mechanisms\"}),/*#__PURE__*/e(\"p\",{children:\"Implement thorough validation checks at every entry point:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Input format verification\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Data type checking\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Range validation\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Required field validation\"})})]}),/*#__PURE__*/e(\"h5\",{children:\"2. Regular Data Auditing\"}),/*#__PURE__*/e(\"p\",{children:\"Think of this as spring cleaning for your API:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Schedule regular data quality checks\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Monitor data accuracy\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Track data usage patterns\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Clean up obsolete data\"})})]}),/*#__PURE__*/e(\"h5\",{children:\"3. Query Performance Optimization\"}),/*#__PURE__*/e(\"p\",{children:\"Make your data retrieval efficient:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Index frequently accessed data\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Optimize database queries\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Cache appropriate data\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Monitor query performance\"})})]}),/*#__PURE__*/e(\"h5\",{children:\"4. Security Implementation\"}),/*#__PURE__*/e(\"p\",{children:\"Protect your data like a fortress:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Encrypt sensitive data\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Implement access controls\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Use secure protocols (HTTPS)\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular security updates\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Best Practices for Data Management\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Documentation is Key:\"}),\" Keep clear records of your data structures and validation rules. It's like having a detailed map of your data landscape.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Version Control:\"}),\" Track changes to your data schemas. This helps maintain compatibility and prevents unexpected breaks.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Monitoring Systems:\"}),\" Set up alerts for data anomalies. Early detection means easier fixes.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Testing Environments:\"}),\" Always test data changes in a safe environment before going live.\"]})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Pro Tip\"})}),/*#__PURE__*/e(\"p\",{children:\"Don't just test with perfect data \u2013 try breaking things! Test your API with:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Invalid data formats\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Missing fields\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Extremely large values\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Special characters\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Empty strings\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Remember, in API testing, data issues can ripple through your entire system. Taking the time to properly handle data is like building on a solid foundation \u2013 it makes everything else more stable and secure.\"}),/*#__PURE__*/e(\"p\",{children:\"Stay tuned for our next section, where we'll dive into authentication and access control issues in API testing!\"})]});export const richText10=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Think of your API as a high-security building. Just like you wouldn't want strangers wandering through restricted areas, you need robust security measures to protect your API from unauthorized access.\"}),/*#__PURE__*/e(\"h4\",{children:\"Understanding the Risks\"}),/*#__PURE__*/t(\"p\",{children:[\"When your \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/unveiling-the-top-api-security-vulnerabilitie\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API's security\"})}),\" is compromised, it's like leaving your front door wide open. Here's what's at stake:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Overview of API Risks\",className:\"framer-image\",height:\"583\",src:\"https://framerusercontent.com/images/X8KwQYvO81UMNTyeE6Ew4uaO03o.png\",srcSet:\"https://framerusercontent.com/images/X8KwQYvO81UMNTyeE6Ew4uaO03o.png?scale-down-to=512 512w,https://framerusercontent.com/images/X8KwQYvO81UMNTyeE6Ew4uaO03o.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/X8KwQYvO81UMNTyeE6Ew4uaO03o.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/X8KwQYvO81UMNTyeE6Ew4uaO03o.png 2070w\",style:{aspectRatio:\"2070 / 1167\"},width:\"1035\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Spotting Security Gaps\"]}),/*#__PURE__*/e(\"p\",{children:\"Detecting security issues early is crucial. Here's how to keep your eyes on the prize:\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Audit Log Analysis\"}),\" Monitor your API's activity like a security camera:\"]})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Track access patterns\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Identify unusual behaviors\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Record authentication attempts\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Document system changes\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Real-time Monitoring\"}),\" Keep a watchful eye on your API's security status:\"]})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Track authentication failures\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Monitor access patterns\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Alert on suspicious activities\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Log security events\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Building Your Security Fortress\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"1. Strong Authentication Methods\"})}),/*#__PURE__*/t(\"p\",{children:[\"Choose the right security approach:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"API Authentication Methods Overview\",className:\"framer-image\",height:\"881\",src:\"https://framerusercontent.com/images/uHYuSDx9Rq5zp1W5I872r9MuL0k.png\",srcSet:\"https://framerusercontent.com/images/uHYuSDx9Rq5zp1W5I872r9MuL0k.png?scale-down-to=512 512w,https://framerusercontent.com/images/uHYuSDx9Rq5zp1W5I872r9MuL0k.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/uHYuSDx9Rq5zp1W5I872r9MuL0k.png 1820w\",style:{aspectRatio:\"1820 / 1762\"},width:\"910\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"strong\",{children:\"2. Access Control Implementation\"})]}),/*#__PURE__*/e(\"p\",{children:\"Your API needs different security clearance levels, just like a secure facility:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Role-based access control (RBAC)\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Permission-based restrictions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Resource-level security\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"IP whitelisting\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"3. Regular Security Checks\"})}),/*#__PURE__*/e(\"p\",{children:\"Keep your security measures up to date:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Scheduled security audits\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Penetration testing\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Vulnerability assessments\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Security patch management\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Pro Security Tips\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Never Trust, Always Verify\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Validate all incoming requests\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Check authorization for every action\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Verify token validity\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Authenticate at all endpoints\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Keep It Simple\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Use standard security protocols\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Avoid complex custom solutions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Document security measures\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Train team members\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Remember: In API testing, security isn't a one-time setup \u2013 it's an ongoing process. Regular testing and updates are crucial for maintaining strong security measures.\"}),/*#__PURE__*/e(\"p\",{children:\"Coming up next: We'll explore how to tackle performance bottlenecks in your API testing journey!\"})]});export const richText11=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Just like a highway during rush hour, APIs can get congested. Performance issues in API testing can significantly impact your system's efficiency and user satisfaction. Let's dive into how to keep your API traffic flowing smoothly and efficiently.\"}),/*#__PURE__*/e(\"h4\",{children:\"Understanding Performance Issues\"}),/*#__PURE__*/e(\"p\",{children:\"When your API starts showing signs of sluggishness \u2013 like response times creeping over one second or frequent timeouts \u2013 it's time to take action. These performance bottlenecks can lead to frustrated users, service interruptions, and in worst cases, complete system failures. Even minor delays in data updates can create a poor user experience, while server overload might result in system-wide crashes.\"}),/*#__PURE__*/e(\"h3\",{children:\"Detection and Monitoring\"}),/*#__PURE__*/e(\"p\",{children:\"Finding these bottlenecks requires a systematic approach. Modern monitoring tools act as your API's health tracker, keeping an eye on vital signs like response times, error rates, and resource utilization. These tools provide valuable insights into your API's performance patterns and help identify potential issues before they become critical problems. Load testing complements this by simulating real-world conditions, helping you understand how your API performs under pressure.\"}),/*#__PURE__*/e(\"h4\",{children:\"Infrastructure and Optimization\"}),/*#__PURE__*/e(\"p\",{children:\"To speed things up, start with infrastructure optimization. Think of it as tuning your car's engine \u2013 the right server size, optimized database configurations, and proper hardware resources can make a significant difference. Load balancing plays a crucial role too, distributing traffic effectively across your systems. Whether it's through round-robin distribution or geographic routing, proper load balancing ensures no single component bears too much burden.\"}),/*#__PURE__*/e(\"h4\",{children:\"Effective Caching Strategies\"}),/*#__PURE__*/e(\"p\",{children:\"Caching is another powerful tool in your performance optimization arsenal. Different caching strategies serve different purposes. Client-side caching works well for static content, while CDNs excel at delivering media files across geographic locations. Application-level caching handles frequent requests efficiently, and database caching can significantly reduce query load times.\"}),/*#__PURE__*/e(\"h4\",{children:\"Code-Level Improvements\"}),/*#__PURE__*/e(\"p\",{children:\"Code optimization is equally important. By streamlining your code \u2013 minimizing database calls, optimizing queries, and implementing pagination \u2013 you can significantly improve performance. Think of it as decluttering your house; removing unnecessary operations makes everything run more smoothly.\"}),/*#__PURE__*/e(\"h4\",{children:\"Continuous Performance Testing\"}),/*#__PURE__*/e(\"p\",{children:\"Regular performance testing ensures your API maintains its speed and reliability. Set clear benchmarks and test under various conditions that mirror real-world usage. This includes testing with realistic data volumes, simulating actual user patterns, and preparing for peak load scenarios. Remember to document all improvements and monitor trends over time.\"}),/*#__PURE__*/e(\"h4\",{children:\"The Path Forward\"}),/*#__PURE__*/e(\"p\",{children:\"Performance optimization is an ongoing journey. By implementing clear metrics, monitoring resource utilization, and planning for scalability, you can ensure your API remains fast and reliable. Remember, in API testing, true performance isn't just about raw speed \u2013 it's about delivering consistent, reliable service under all conditions.\"}),/*#__PURE__*/e(\"p\",{children:\"Through careful monitoring, strategic optimization, and regular testing, you can keep your API running smoothly, providing the best possible experience for your users. After all, in today's fast-paced digital world, every millisecond counts.\"})]});export const richText12=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Think of error handling like customer service \u2013 clear, consistent communication makes everyone's life easier. Let's explore how to make your API's error messages helpful rather than headache-inducing.\"}),/*#__PURE__*/e(\"h4\",{children:\"Why Error Handling Matters\"}),/*#__PURE__*/t(\"p\",{children:[\"Inconsistent error handling can be like getting different answers to the same question. Here's what happens:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Error Handling Impact Funnel\",className:\"framer-image\",height:\"664\",src:\"https://framerusercontent.com/images/x4LqrC0POwPmVuoEeVbckOMXs.png\",srcSet:\"https://framerusercontent.com/images/x4LqrC0POwPmVuoEeVbckOMXs.png?scale-down-to=512 512w,https://framerusercontent.com/images/x4LqrC0POwPmVuoEeVbckOMXs.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/x4LqrC0POwPmVuoEeVbckOMXs.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/x4LqrC0POwPmVuoEeVbckOMXs.png 2358w\",style:{aspectRatio:\"2358 / 1329\"},width:\"1179\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Finding the Weak Spots\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Monitoring for Issues\"})}),/*#__PURE__*/e(\"p\",{children:\"Your error tracking should be like a well-organized filing system:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Track error frequencies\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Monitor error patterns\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Analyze error severity\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Document error contexts\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Code Review Focus Points\"})}),/*#__PURE__*/e(\"p\",{children:\"During reviews, pay special attention to:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Error message consistency\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Status code usage\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Exception handling patterns\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Error documentation\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Building Better Error Handling\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"1. Standardized Error Formats\"})}),/*#__PURE__*/e(\"p\",{children:\"Every error response should include:\"}),/*#__PURE__*/e(\"div\",{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(r,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(o,{...t,code:'{\\n\\xa0\\xa0\\xa0\\xa0\"status\": \"error\",\\n\\xa0\\xa0\\xa0\\xa0\"code\": \"AUTH_001\",\\n\\xa0\\xa0\\xa0\\xa0\"message\": \"Invalid authentication token\",\\n\\xa0\\xa0\\xa0\\xa0\"details\": \"Token has expired\",\\n\\xa0\\xa0\\xa0\\xa0\"timestamp\": \"2024-01-15T10:30:00Z\"\\n}',language:\"JSX\"})})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"strong\",{children:\"2. Comprehensive Error Logging\"})]}),/*#__PURE__*/e(\"p\",{children:\"Implement logging that captures:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Error context\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Stack traces\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"User information\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"System state\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"3. Best Practices Implementation\"})}),/*#__PURE__*/e(\"p\",{children:\"Train your team on these key principles:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Use appropriate HTTP status codes\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Provide clear error messages\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Include actionable information\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Maintain security in errors\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Practical Error Handling Tips\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Keep Security in Mind\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Hide sensitive information\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Use generic messages for public\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Log detailed errors internally\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Implement proper error levels\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"User-Friendly Messaging\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Clear error descriptions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Suggested actions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Support contact information\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Relevant error codes\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"3\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Documentation\"}),\" Create comprehensive error documentation:\"]})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Error code catalog\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Common solutions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Troubleshooting guides\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Integration examples\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Remember: Good error handling in API testing isn't just about catching errors \u2013 it's about making them useful for both developers and users.\"}),/*#__PURE__*/e(\"h4\",{children:\"The Road to Better Error Handling\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Audit current error messages\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Create error handling standards\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Implement consistent logging\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular team training\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Monitor error patterns\"})})]}),/*#__PURE__*/e(\"p\",{children:\"By following these guidelines, you'll transform your API's error handling from a source of frustration into a helpful debugging tool.\"}),/*#__PURE__*/e(\"h3\",{children:\"Wrapping Up: Your Path to Better API Testing\"}),/*#__PURE__*/e(\"p\",{children:\"Testing your APIs isn't just about finding bugs \u2013 it's about building reliable, secure, and efficient software that users can trust. By understanding and addressing common defects in API testing, from functionality gaps to performance bottlenecks, you're laying the groundwork for robust applications that can stand the test of time.\"}),/*#__PURE__*/e(\"p\",{children:\"Remember, successful API testing is an ongoing journey. Stay vigilant about security, keep performance optimized, and always handle errors gracefully. By following the strategies we've discussed, you'll be well-equipped to catch and fix issues before they impact your users.\"}),/*#__PURE__*/e(\"p\",{children:\"Ready to put these insights into action? Your journey to better API testing starts now!\"})]});export const richText13=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Ever wondered what \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/history-and-invention-of-api\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API really means\"})}),\" in the software world? Let's break it down. An API (Application Programming Interface) is like a digital handshake between different software applications, allowing them to talk to each other seamlessly. Think of it as a waiter in a restaurant \u2013 taking your order to the kitchen and bringing back exactly what you asked for.\"]}),/*#__PURE__*/t(\"p\",{children:[\"In today's interconnected digital world, understanding the meaning of \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/api-testing-in-software-development\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API testing\"})}),\" has become more crucial than ever. With businesses relying heavily on integrated systems, from mobile apps to cloud services, the need for robust API testing isn't just a technical requirement \u2013 it's a business necessity.\"]}),/*#__PURE__*/e(\"p\",{children:\"But here's the million-dollar question that keeps popping up in development teams worldwide: Who should really own API testing? Should it be the QA team with their testing expertise, or should it fall under the development team's umbrella? This isn't just about assigning responsibility; it's about ensuring your software's quality and reliability in the most efficient way possible.\"}),/*#__PURE__*/e(\"p\",{children:\"As teams struggle with this decision, many find themselves wondering about the best approach. In the upcoming sections, we'll dive deep into both sides of this debate, helping you understand the unique advantages each team brings to the table. Whether you're a project manager weighing your options or a team leader looking to optimize your testing process, this guide will help you make an informed decision that best suits your organization's needs.\"}),/*#__PURE__*/t(\"p\",{children:[\"Let's explore what \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/api-testing-in-software-development\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API testing\"})}),\" means for different teams and how you can find the perfect balance for your projects.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Understanding API Testing Fundamentals: Core Elements Every Team Should Know\"}),/*#__PURE__*/e(\"p\",{children:\"Before diving into who owns API testing, let's understand what it really means to test an API effectively. Think of API testing as a health check-up for your software's communication system \u2013 it ensures everything is working exactly as intended.\"}),/*#__PURE__*/e(\"h4\",{children:\"Core Components That Define API Meaning and Function\"}),/*#__PURE__*/t(\"p\",{children:[\"Let's break down the essential components in a way that's easy to grasp:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Key Components of API Functionality\",className:\"framer-image\",height:\"679\",src:\"https://framerusercontent.com/images/X9g9X25Lj2En5CVQpL42XBYS5AY.png\",srcSet:\"https://framerusercontent.com/images/X9g9X25Lj2En5CVQpL42XBYS5AY.png?scale-down-to=512 512w,https://framerusercontent.com/images/X9g9X25Lj2En5CVQpL42XBYS5AY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/X9g9X25Lj2En5CVQpL42XBYS5AY.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/X9g9X25Lj2En5CVQpL42XBYS5AY.png 2412w\",style:{aspectRatio:\"2412 / 1359\"},width:\"1206\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Key Testing Areas for Robust APIs\"]}),/*#__PURE__*/e(\"p\",{children:\"When we talk about what API testing means in practice, it boils down to three critical areas:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Functionality Testing\"}),\" Your API should do exactly what it promises \u2013 no more, no less. This means checking if it handles data correctly and responds appropriately to different types of requests.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Security Verification\"}),\" With data breaches making headlines, \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/security-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"security testing\"})}),\" isn't optional. Teams need to verify that the API protects sensitive information and resists unauthorized access attempts.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Performance Checks\"}),\" An API needs to perform well under pressure. This means testing how it handles multiple requests and ensuring it maintains speed and reliability even during peak usage.\"]})})]}),/*#__PURE__*/e(\"h3\",{children:\"Types of API Tests That Matter\"}),/*#__PURE__*/e(\"p\",{children:\"Different scenarios require different types of tests. Here's what teams typically focus on:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Functional Testing:\"}),\" Ensures the basic operations work correctly\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Load Testing:\"}),\" Verifies performance under expected and peak conditions\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Security Testing:\"}),\" Protects against vulnerabilities and unauthorized access\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Integration Testing:\"}),\" Checks how well the API works with other system components\"]})})]}),/*#__PURE__*/e(\"p\",{children:\"Understanding these fundamentals helps both QA and development teams grasp what API testing means for their specific roles. Whether you're writing code or testing it, these components form the foundation of effective API testing strategies.\"}),/*#__PURE__*/e(\"p\",{children:\"Remember, regardless of who owns the testing process, these fundamentals remain crucial for delivering reliable and secure APIs that meet user expectations.\"})]});export const richText14=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"When it comes to understanding what API testing means in a professional context, QA teams bring unique advantages to the table. Let's explore why many organizations choose to put their QA teams in charge of API testing.\"}),/*#__PURE__*/e(\"h4\",{children:\"Specialized Testing Expertise\"}),/*#__PURE__*/e(\"p\",{children:\"QA professionals are trained to think differently about what API functionality means. While developers focus on building features, QA teams excel at:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Identifying edge cases that might break the API\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Understanding various testing methodologies\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Approaching testing from an end-user perspective\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Maintaining testing standards across different APIs\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Comprehensive Test Coverage\"}),/*#__PURE__*/t(\"p\",{children:[\"Here's how QA teams ensure thorough API testing coverage:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Enhancing Software Quality Through Strategic QA Practices\",className:\"framer-image\",height:\"578\",src:\"https://framerusercontent.com/images/cDuJbHn9kFhaFDjWeMND08dC5A.png\",srcSet:\"https://framerusercontent.com/images/cDuJbHn9kFhaFDjWeMND08dC5A.png?scale-down-to=512 512w,https://framerusercontent.com/images/cDuJbHn9kFhaFDjWeMND08dC5A.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/cDuJbHn9kFhaFDjWeMND08dC5A.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/cDuJbHn9kFhaFDjWeMND08dC5A.png 2053w\",style:{aspectRatio:\"2053 / 1157\"},width:\"1026\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Testing Tools and Frameworks\"]}),/*#__PURE__*/e(\"p\",{children:\"QA teams bring extensive experience with specialized tools that enhance API testing:\"}),/*#__PURE__*/e(\"p\",{children:'\"What API testing means to QA teams goes beyond basic functionality checks,\" explains our testing expert. \"We use advanced tools like Postman, Rest Assured, and JMeter to ensure comprehensive testing coverage.\"'}),/*#__PURE__*/e(\"h4\",{children:\"Dedicated Focus on Quality\"}),/*#__PURE__*/e(\"p\",{children:\"The greatest advantage of QA ownership is their singular focus on quality. Unlike developers who juggle between coding and testing, QA teams can:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Devote full attention to testing scenarios\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Maintain objectivity in quality assessment\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Create standardized testing processes\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Track and analyze quality metrics consistently\"})})]}),/*#__PURE__*/e(\"p\",{children:\"QA teams understand what API reliability means for business success. Their specialized focus helps ensure that APIs not only work but work exceptionally well under all conditions.\"}),/*#__PURE__*/e(\"h4\",{children:\"Real-World Impact\"}),/*#__PURE__*/e(\"p\",{children:\"Consider this: QA teams typically catch 80% of critical API issues before they reach production. This early detection means:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Lower fix costs\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Better user satisfaction\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Reduced production incidents\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Stronger API security\"})})]}),/*#__PURE__*/e(\"p\",{children:\"When QA owns API testing, they bring a level of expertise and focus that helps ensure robust, reliable APIs ready for production use.\"}),/*#__PURE__*/t(\"p\",{children:[\"Remember: While QA ownership has clear advantages, the decision should align with your organization's specific needs and development processes. The key is ensuring that whoever owns the testing process understands what \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/build-quality-api\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API quality\"})}),\" means for your business success.\"]})]});export const richText15=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"When developers take ownership of API testing, they bring a unique perspective to what API functionality means in practice. Let's explore why having developers lead the testing effort can be advantageous.\"}),/*#__PURE__*/e(\"h4\",{children:\"Deep Technical Understanding\"}),/*#__PURE__*/e(\"p\",{children:\"Developers possess intimate knowledge of the API's architecture and implementation details. This means:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[\"They understand what \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/what-is-an-api-endpoint\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API endpoints\"})}),\" mean in the context of the codebase\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"They can quickly identify the root causes of issues\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"They know the technical limitations and possibilities\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"They can optimize test cases based on implementation details\"})})]}),/*#__PURE__*/t(\"h4\",{children:[\"Real-Time Development Benefits\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Benefits of Agile Development Practices\",className:\"framer-image\",height:\"564\",src:\"https://framerusercontent.com/images/jQkv4ncjD81H57owcI9WTn3SHAA.png\",srcSet:\"https://framerusercontent.com/images/jQkv4ncjD81H57owcI9WTn3SHAA.png?scale-down-to=512 512w,https://framerusercontent.com/images/jQkv4ncjD81H57owcI9WTn3SHAA.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/jQkv4ncjD81H57owcI9WTn3SHAA.png 2002w\",style:{aspectRatio:\"2002 / 1129\"},width:\"1001\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Early Bug Detection\"]}),/*#__PURE__*/e(\"p\",{children:\"Development team ownership leads to earlier issue detection because:\"}),/*#__PURE__*/e(\"p\",{children:'\"Understanding what API testing means from a developer\\'s perspective allows us to catch issues before they become deeply embedded in the codebase,\" shares a senior developer. \"We can often prevent bugs rather than just detect them.\"'}),/*#__PURE__*/e(\"h4\",{children:\"Seamless CI/CD Integration\"}),/*#__PURE__*/e(\"p\",{children:\"Developers excel at integrating API testing into the CI/CD pipeline:\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Automated Testing\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[\"Direct implementation of \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/what-is-api-automation-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"test automation\"})})]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Quick updates to test cases when API changes\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Immediate feedback on code changes\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Pipeline Efficiency\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Streamlined testing processes\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Automated quality gates\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Faster deployment cycles\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"3\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Code Quality\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Unit tests aligned with API functionality\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Integration tests that match real-world scenarios\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/performance-testing-tools\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Performance tests\"})}),\" based on actual usage patterns\"]})})]}),/*#__PURE__*/e(\"h4\",{children:\"Cost-Effective Testing\"}),/*#__PURE__*/e(\"p\",{children:\"Developer-owned testing can be more cost-effective because:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Issues are caught earlier in the development cycle\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Fixes can be implemented immediately\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Testing is integrated into the development workflow\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Less back-and-forth between teams\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Remember: While developer ownership of API testing has clear advantages, it's crucial to ensure that testing doesn't become an afterthought in the rush to deliver features. The key is maintaining a balance between development speed and thorough testing.\"}),/*#__PURE__*/t(\"p\",{children:[\"The meaning of \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/build-quality-api\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"API quality\"})}),\" should remain constant regardless of who owns the testing process. The focus should be on delivering reliable, secure, and efficient APIs that meet business requirements.\"]})]});export const richText16=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Regardless of who owns the testing process, understanding what API testing means for quality requires following established best practices. Here's a comprehensive guide to ensure your API testing is effective and efficient.\"}),/*#__PURE__*/e(\"h4\",{children:\"Setting Up Test Environments\"}),/*#__PURE__*/t(\"p\",{children:[\"A proper \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/test-environment-in-software-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"test environment\"})}),\" is crucial for understanding what API behavior means in different scenarios:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Which environment type should be used for the specific purpose?\",className:\"framer-image\",height:\"602\",src:\"https://framerusercontent.com/images/nZvjj5AOBzCixChGDuUqj3tAJDQ.png\",srcSet:\"https://framerusercontent.com/images/nZvjj5AOBzCixChGDuUqj3tAJDQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/nZvjj5AOBzCixChGDuUqj3tAJDQ.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/nZvjj5AOBzCixChGDuUqj3tAJDQ.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/nZvjj5AOBzCixChGDuUqj3tAJDQ.png 2137w\",style:{aspectRatio:\"2137 / 1204\"},width:\"1068\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Writing Effective Test Cases\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/understanding-test-suite-and-test-case-hierarchy-in-software-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Good test cases\"})}),\" help everyone understand what API reliability means:\"]}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Test Case Structure\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Clear test objectives\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Detailed steps to execute\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Expected results\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Actual results\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Pass/fail criteria\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Coverage Areas\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Basic functionality\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Edge cases\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Error handling\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Security scenarios\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Performance requirements\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Automated Testing Implementation\"}),/*#__PURE__*/e(\"p\",{children:'\"The meaning of API testing evolves with automation,\" notes our testing expert. Here\\'s what to focus on:'}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Test Automation Framework\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Choose appropriate tools\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Set up reusable components\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Implement proper error handling\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Maintain test data sets\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Continuous Integration\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular test execution\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Automated reporting\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Quick feedback loops\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Version control integration\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Result Analysis and Validation\"}),/*#__PURE__*/e(\"p\",{children:\"Effective analysis helps everyone understand what API quality means:\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key Metrics to Track\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Response times\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Success rates\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Error frequencies\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Coverage percentages\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Validation Process\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Compare expected vs actual results\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Document discrepancies\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Track trends over time\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Identify patterns in failures\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Essential Checks\"}),/*#__PURE__*/e(\"p\",{children:\"Every API test should verify:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Correct data handling\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Proper error responses\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Authentication/authorization\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Performance under load\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Security compliance\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Remember: Good API testing practices transcend team boundaries. Whether it's QA or development leading the charge, these fundamentals ensure your APIs meet quality standards and business requirements.\"}),/*#__PURE__*/e(\"p\",{children:\"Pro Tip: Create a shared understanding of what API success means for your organization by documenting these practices and making them accessible to all teams involved in the development process.\"})]});export const richText17=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"In modern software development, understanding what API testing means requires moving beyond the traditional QA vs. Development divide. Let's explore how a collaborative approach can maximize testing effectiveness.\"}),/*#__PURE__*/e(\"h4\",{children:\"The Shared Responsibility Model\"}),/*#__PURE__*/t(\"p\",{children:[\"Think of API testing as a team sport where both QA and development bring their unique strengths:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Testing and Quality Assurance Focus\",className:\"framer-image\",height:\"521\",src:\"https://framerusercontent.com/images/riI94E0s6WD01rnEbRL3tPffZQ.png\",srcSet:\"https://framerusercontent.com/images/riI94E0s6WD01rnEbRL3tPffZQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/riI94E0s6WD01rnEbRL3tPffZQ.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/riI94E0s6WD01rnEbRL3tPffZQ.png 1849w\",style:{aspectRatio:\"1849 / 1042\"},width:\"924\"}),/*#__PURE__*/t(\"h4\",{children:[/*#__PURE__*/e(\"br\",{}),\"Effective Collaboration Strategies\"]}),/*#__PURE__*/e(\"p\",{children:\"Create a unified approach to understand what API quality means:\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Joint Planning Sessions\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular sync meetings\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Shared test planning\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Combined expertise for complex scenarios\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Unified quality goals\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Clear Communication Channels\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Daily standups\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Shared documentation\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular feedback loops\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Issue tracking systems\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Tools That Enable Collaboration\"}),/*#__PURE__*/e(\"p\",{children:\"Modern tools help teams understand what API testing means in practice:\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Shared Testing Platforms\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Version control for test cases\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Collaborative test execution\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Real-time result sharing\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Automated reporting\"})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Documentation and Knowledge Sharing\"})})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"API specifications\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Test case repositories\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Best practices guides\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Lessons learned\"})})]}),/*#__PURE__*/e(\"h4\",{children:\"Benefits of Cross-Team Ownership\"}),/*#__PURE__*/e(\"p\",{children:\"This approach delivers multiple advantages:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Faster issue resolution\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Better test coverage\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Improved code quality\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Enhanced team knowledge\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Reduced bottlenecks\"})})]}),/*#__PURE__*/e(\"p\",{children:'\"When teams collaborate, the meaning of API testing evolves from a checklist to a shared quality mission,\" notes our senior architect. This collaborative spirit leads to better outcomes for everyone involved.'}),/*#__PURE__*/e(\"h4\",{children:\"Making It Work\"}),/*#__PURE__*/e(\"p\",{children:\"Success factors for collaborative API testing:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Clear roles and responsibilities\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Shared access to tools and resources\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular knowledge sharing sessions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Unified quality metrics\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Joint ownership of outcomes\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Remember: The goal isn't to blur lines between teams but to create synergy that enhances the overall testing process. When QA and development work together, they create a more robust and efficient testing environment.\"}),/*#__PURE__*/e(\"p\",{children:\"By adopting this collaborative approach, teams can ensure their APIs meet both technical requirements and business objectives while maintaining high quality standards.\"}),/*#__PURE__*/e(\"h3\",{children:\"Conclusion\"}),/*#__PURE__*/e(\"p\",{children:\"The debate over API testing ownership ultimately comes down to what works best for your organization. Whether QA leads, development owns it, or teams adopt a collaborative approach, understanding what API testing means for your specific context is crucial.\"}),/*#__PURE__*/e(\"p\",{children:\"The key is to focus on the end goal: delivering reliable, secure, and high-performing APIs. Choose an approach that aligns with your team structure, development methodology, and business objectives. Remember that successful API testing isn't about who owns it \u2013 it's about ensuring quality through well-defined processes, proper tools, and clear communication.\"}),/*#__PURE__*/e(\"p\",{children:\"Consider your team's strengths and challenges when deciding your testing strategy, and be open to adjusting your approach as needs evolve.\"})]});export const richText18=/*#__PURE__*/e(i.Fragment,{children:/*#__PURE__*/e(\"p\",{children:\"Ever wanted to run your favorite Android apps on your computer? Or maybe you're a developer looking to test your latest mobile creation without a physical device? Enter the world of Android emulators \u2013 your ticket to bringing the Android experience to your PC!\"})});export const richText19=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Think of an Android emulator as a magic window on your computer. It creates a virtual Android device right on your PC, letting you install and run Android apps as if you were using a real smartphone or tablet. Pretty cool, right?\"}),/*#__PURE__*/e(\"h3\",{children:\"Why Should You Care?\"}),/*#__PURE__*/e(\"p\",{children:\"Whether you're a tech enthusiast, a hardcore gamer, or a budding app developer, Android emulators open up a world of possibilities:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Gamers\"}),\": Enjoy mobile games on a bigger screen with your keyboard and mouse.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Developers\"}),\": Test your apps across different Android versions without buying a bunch of devices.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Casual Users\"}),\": Use your favorite Android apps right alongside your PC programs.\"]})})]}),/*#__PURE__*/e(\"p\",{children:\"Ready to dive in? We've tested the cream of the crop to bring you the 10 fastest and most reliable Android emulators for PC in 2025.\"})]});export const richText20=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Let's dive deeper into each of these powerful Android emulators, exploring what makes them stand out in 2025.\"}),/*#__PURE__*/e(\"h3\",{children:\"1. LambdaTest\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"LambdaTest \",className:\"framer-image\",height:\"314\",src:\"https://framerusercontent.com/images/U4DzJQRIdWJrNXhF9CrjzNKEEy4.png\",srcSet:\"https://framerusercontent.com/images/U4DzJQRIdWJrNXhF9CrjzNKEEy4.png?scale-down-to=512 512w,https://framerusercontent.com/images/U4DzJQRIdWJrNXhF9CrjzNKEEy4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/U4DzJQRIdWJrNXhF9CrjzNKEEy4.png 1122w\",style:{aspectRatio:\"1122 / 629\"},width:\"561\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"LambdaTest isn't just another Android emulator; it's a comprehensive testing powerhouse that's revolutionizing how developers and QA teams work. This cloud-based platform offers a unique blend of emulation and real device testing, making it a go-to choice for professionals who need to ensure their apps work flawlessly across a wide range of devices and operating systems.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Access to over 3000+ real browsers and operating systems\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Both automated and live testing capabilities\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Native app testing with simple .apk file upload\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Geolocation testing for targeting specific countries\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Integration with 120+ popular development and testing tools\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Compatible with Windows, Linux, and macOS\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[\"Supports Appium for \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/top-mobile-app-automation-testing-tools-and-techniques\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"automated mobile testing\"})})]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Free trial available, with paid plans starting from $15/month\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"2. ARChon\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"ARChon \",className:\"framer-image\",height:\"298\",src:\"https://framerusercontent.com/images/u9RvIXaisaLfs8GvNDBsvWTXMk.png\",srcSet:\"https://framerusercontent.com/images/u9RvIXaisaLfs8GvNDBsvWTXMk.png?scale-down-to=512 512w,https://framerusercontent.com/images/u9RvIXaisaLfs8GvNDBsvWTXMk.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/u9RvIXaisaLfs8GvNDBsvWTXMk.png 1384w\",style:{aspectRatio:\"1384 / 596\"},width:\"692\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"ARChon takes a refreshingly lightweight approach to Android emulation. Born from a creative extension of Google's Chrome OS Android support, ARChon allows users to run Android apps directly within their Chrome browser. This innovative solution is perfect for those who want quick, hassle-free access to Android apps without the need for heavy software installation.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Runs seamlessly on Windows, Mac, and Linux through the Chrome browser\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Ideal for productivity apps and light Android applications\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Completely free to use\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"No heavy software installation required\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Perfect for small, non-gaming projects\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"3. BlueStacks\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"BlueStacks \",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/FWpmk3G6kBPRn7V7zwICojLEUY.png\",srcSet:\"https://framerusercontent.com/images/FWpmk3G6kBPRn7V7zwICojLEUY.png?scale-down-to=512 512w,https://framerusercontent.com/images/FWpmk3G6kBPRn7V7zwICojLEUY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/FWpmk3G6kBPRn7V7zwICojLEUY.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"BlueStacks has long reigned as the king of Android emulators, and for good reason. This powerhouse of an emulator combines ease of use with a robust feature set, making it a favorite among gamers and app enthusiasts alike. With its vast library of apps and games, coupled with performance-enhancing features, BlueStacks continues to set the standard for Android emulation on PC.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Boasts a library of over 2 million Android games and apps\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Fast boot times and optimized for low RAM usage\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Advanced features like key mapping and customizable game controls\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Multi-instance synchronization for running multiple apps\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Cloud streaming capability with BlueStacks 10\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular updates based on user feedback\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Free to use, with premium features available\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"4. Remix OS Player\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"Remix OS Player\",className:\"framer-image\",height:\"337\",src:\"https://framerusercontent.com/images/7aMjXXb2o9MdMae4n6NVUrYYT6g.png\",srcSet:\"https://framerusercontent.com/images/7aMjXXb2o9MdMae4n6NVUrYYT6g.png?scale-down-to=512 512w,https://framerusercontent.com/images/7aMjXXb2o9MdMae4n6NVUrYYT6g.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/7aMjXXb2o9MdMae4n6NVUrYYT6g.png 1200w\",style:{aspectRatio:\"1200 / 675\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Remix OS Player brings a fresh perspective to Android emulation by reimagining how Android should look and feel on a PC. This innovative emulator creates a seamless blend of Android functionality with a familiar desktop interface, making it an excellent choice for those who want the best of both worlds.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Windows-style interface with start menu, system tray, and taskbar\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Ability to run multiple applications in resizable windows\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Compatible with most Google Play Store games and applications\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Designed to run alongside Windows, not replacing it\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Custom key mapping for enhanced gaming experience\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Free for Windows users\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"5. Genymotion\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"Genymotion\",className:\"framer-image\",height:\"210\",src:\"https://framerusercontent.com/images/0bpBlrTfc3AALD4gIN9Zf5FKJDw.png\",srcSet:\"https://framerusercontent.com/images/0bpBlrTfc3AALD4gIN9Zf5FKJDw.png?scale-down-to=512 512w,https://framerusercontent.com/images/0bpBlrTfc3AALD4gIN9Zf5FKJDw.png 630w\",style:{aspectRatio:\"630 / 420\"},width:\"315\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Genymotion is the emulator of choice for serious Android developers and testers. This powerful platform goes beyond simple app running, offering a comprehensive suite of tools designed to streamline the development and testing process. With its wide range of virtual devices and extensive compatibility, Genymotion is an indispensable tool in any Android developer's arsenal.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Extensive library of virtual Android devices\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Seamless compatibility with Android SDK and Android Studio\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Support for various testing frameworks (Appium, Espresso, Robotium)\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/t(\"p\",{children:[\"Integration with popular \",/*#__PURE__*/e(n,{href:\"https://qodex.ai/blog/continuous-integration-testing-what-it-is-and-how-it-works\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(a.a,{children:\"Continuous Integration\"})}),\" solutions\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Large selection of widgets and sensors for real-life scenario simulation\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Available for Windows, macOS, and Linux\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Supports Android versions from 4.1 to 8.0\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Pricing starts at $136/user/year for the basic plan\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"6. LDPlayer\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"LDPlayer\",className:\"framer-image\",height:\"219\",src:\"https://framerusercontent.com/images/wMq6D5e2RyBfSkTrIJnbqCVELMo.png\",srcSet:\"https://framerusercontent.com/images/wMq6D5e2RyBfSkTrIJnbqCVELMo.png?scale-down-to=512 512w,https://framerusercontent.com/images/wMq6D5e2RyBfSkTrIJnbqCVELMo.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/wMq6D5e2RyBfSkTrIJnbqCVELMo.png 1280w\",style:{aspectRatio:\"1280 / 439\"},width:\"640\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"LDPlayer has been making waves in the Android emulation scene, particularly in Southeast Asia. This free and lightweight emulator has quickly gained popularity for its impressive performance, even on lower-end PCs. LDPlayer strikes a balance between being user-friendly for casual users and feature-rich for more demanding gamers and power users.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Free to use with no hidden costs\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Optimized for smooth performance on a wide range of PC specifications\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Advanced features like keyboard mapping and multi-instance synchronization\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Built-in app store (LDStore) with a wide selection of Android apps and games\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular updates to improve compatibility and performance\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Supports multiple languages, making it accessible to a global audience\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Adjustable settings to optimize performance based on your PC's capabilities\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"7. Bliss OS\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"Bliss OS\",className:\"framer-image\",height:\"205\",src:\"https://framerusercontent.com/images/jN1oD50t1BFiMFLihviVDBso.png\",srcSet:\"https://framerusercontent.com/images/jN1oD50t1BFiMFLihviVDBso.png?scale-down-to=512 512w,https://framerusercontent.com/images/jN1oD50t1BFiMFLihviVDBso.png 600w\",style:{aspectRatio:\"600 / 411\"},width:\"300\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Bliss OS takes a unique approach to Android emulation by offering a full Android operating system that you can install directly on your PC. This open-source project gives users the purest Android experience possible on a computer, making it a favorite among tech enthusiasts and those who want complete control over their Android environment.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Full Android OS that can be installed via USB drive or virtual machine\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Open-source and completely ad-free\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Supports the Substratum Theme engine for extensive customization\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Based on the latest Android versions, currently offering a beta version running Android 9 Pie\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Provides a genuine Android experience without the limitations of traditional emulators\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Ideal for users who want to turn their PC into a full-fledged Android device\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"8. Nox Player\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"Nox Player\",className:\"framer-image\",height:\"199\",src:\"https://framerusercontent.com/images/ms0IQAeIng1PgbibfGOWN9cQxQ8.png\",srcSet:\"https://framerusercontent.com/images/ms0IQAeIng1PgbibfGOWN9cQxQ8.png?scale-down-to=512 512w,https://framerusercontent.com/images/ms0IQAeIng1PgbibfGOWN9cQxQ8.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/ms0IQAeIng1PgbibfGOWN9cQxQ8.png 1500w\",style:{aspectRatio:\"1500 / 399\"},width:\"750\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Nox Player has carved out a niche for itself by catering to both gamers and power users. This versatile emulator offers a clean, ad-free interface coupled with a robust set of features that allow users to customize their Android experience. Nox Player's focus on providing tools for both gaming and productivity makes it a well-rounded choice for various use cases.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Support for keyboard, gamepad, and script recording\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Easy one-click root access for the virtual device\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Clean, intuitive interface without intrusive ads\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Multiple instance support for running several apps simultaneously\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Compatible with Windows and macOS\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Ability to specify CPU and RAM usage for optimal performance\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Based on Android 5 Lollipop, which might be a consideration for some users\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"9. MEmu\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"MEmu\",className:\"framer-image\",height:\"180\",src:\"https://framerusercontent.com/images/JsShFpWcz0sMwAIGL2KbE9zHS8.png\",srcSet:\"https://framerusercontent.com/images/JsShFpWcz0sMwAIGL2KbE9zHS8.png?scale-down-to=512 512w,https://framerusercontent.com/images/JsShFpWcz0sMwAIGL2KbE9zHS8.png 730w\",style:{aspectRatio:\"730 / 360\"},width:\"365\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"MEmu stands out in the crowded Android emulator market with its strong performance and flexibility. This emulator is designed to provide a smooth experience across a wide range of PC hardware, making it accessible to users with both high-end and more modest computer setups. MEmu's support for multiple Android versions adds to its versatility, making it a solid choice for both gaming and productivity.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Support for both AMD and Nvidia chips, broadening its compatibility\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Compatible with multiple Android versions (Jelly Bean, Kit Kat, and Lollipop)\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Optimized for gaming with features like key mapping and high-performance mode\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Ability to run multiple instances with different Android versions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Support for both x86 and ARM architecture\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Regular updates to improve stability and add new features\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Free to use, making it accessible to all users\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"10. KoPlayer\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"KoPlayer\",className:\"framer-image\",height:\"280\",src:\"https://framerusercontent.com/images/CWuu8HkgTQfKW5wqmAKNdnffhQ.png\",srcSet:\"https://framerusercontent.com/images/CWuu8HkgTQfKW5wqmAKNdnffhQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/CWuu8HkgTQfKW5wqmAKNdnffhQ.png 560w\",style:{aspectRatio:\"560 / 560\"},width:\"280\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Rounding out our list is KoPlayer, an emulator that puts stability at the forefront of its design. While it may not be as well-known as some of the other options, KoPlayer offers a reliable Android experience with a focus on smooth operation and ease of use. Its straightforward approach makes it an excellent choice for users who prioritize dependability in their Android emulation.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Key features:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Utilizes new kernel technology to enhance stability\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Comes with a built-in Google Play Store for easy app access\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Supports keyboard mapping and gamepad emulation for improved gaming experience\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Compatible with both Windows and macOS\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Simple and intuitive user interface\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Ability to record gameplay and share it easily\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"11.5px\",\"--framer-text-color\":\"rgb(29, 28, 29)\",\"--framer-text-decoration\":\"none\"},children:/*#__PURE__*/e(\"p\",{children:\"Free to use, though users might encounter occasional ads\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Each of these emulators brings something unique to the table, catering to different needs and preferences. Whether you're a gamer, developer, or casual user, there's an Android emulator on this list that's perfect for your requirements.\"})]});\nexport const __FramerMetadata__ = {\"exports\":{\"richText10\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText19\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText4\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText5\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText13\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText17\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText8\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText11\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText6\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText3\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText7\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText1\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText14\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText15\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText20\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText18\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText9\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText12\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText16\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["richText", "u", "x", "p", "Link", "motion", "richText1", "richText2", "richText3", "richText4", "richText5", "richText6", "richText7", "richText8", "richText9", "richText10", "richText11", "richText12", "ComponentPresetsConsumer", "t", "CodeBlock_default", "richText13", "richText14", "richText15", "richText16", "richText17", "richText18", "richText19", "richText20", "__FramerMetadata__"]
}
