{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/BllfmgtEgYXRkk9rqBkw/nV8pUR1Dfs7FcKplnUi4/xUFEuGbVZ-51.js"],
  "sourcesContent": ["import{jsx as e,jsxs as t}from\"react/jsx-runtime\";import{ComponentPresetsConsumer as n,Link as i}from\"framer\";import{motion as r}from\"framer-motion\";import*as a from\"react\";import{Youtube as s}from\"https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/bZxrMUxBPAhoXlARkK9C/YouTube.js\";export const richText=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"API mocking is a powerful concept that can be put to use in several development and testing scenarios.\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"External dependencies\"}),\" - Testing unexpected behavior and 3rd party dependencies.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Isolated development\"}),\" - Development environment for use by operation and architects.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Early functional testing\"}),\" - Starting testing work early in development, even before actual components are available.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Customer evaluation\"}),\" - Providing evaluation and pre-sales opportunities.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Avoiding API dependencies\"}),\" - Developing against future or unavailable functionality.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"'Start mocking your APIs today and unlock the potential for faster, better, and more secure software development.'\"})})})]});export const richText1=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"In this article, we will explore JWT (JSON Web Tokens), its limitations, and scenarios where its implementation proves invaluable.\"})})}),/*#__PURE__*/e(\"h3\",{children:\"What is JWT?\"}),/*#__PURE__*/e(\"p\",{children:\"JSON Web Tokens (JWTs) are a standardized way to securely send data between two parties. They contain information (claims) encoded in the JSON format. These claims help share specific details between the parties involved.\"}),/*#__PURE__*/e(\"p\",{children:\"At its core, a JWT is a mechanism for verifying the authenticity of some JSON data. This is possible because each JWT is signed using cryptography to guarantee that its contents have not been tampered with during transmission or storage.\"}),/*#__PURE__*/e(\"p\",{children:\"It\u2019s important to note that a JWT guarantees data ownership but not encryption. The reason is that the JWT can be seen by anyone who intercepts the token because it\u2019s serialized, not encrypted.\"}),/*#__PURE__*/e(\"p\",{children:\"It is strongly advised to use JWTs with HTTPS, a practice that extends to general web security. HTTPS not only safeguards the confidentiality of JWT contents during transmission but also provides a broader layer of protection for data in transit.\"})]});export const richText2=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/e(\"p\",{children:\"JWTs consist of three main parts: the header, the payload, and the signature. The header typically contains metadata about the token, such as the type of token and the hashing algorithm used. The payload contains the actual data being transmitted, such as user information or access rights. Lastly, the signature is created by combining the header, payload, and a secret key, ensuring the integrity of the token.\"})});export const richText3=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"The structure of the JWT consists of three parts separated by dots: the header, the payload, and the signature:\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"H\"})}),/*#__PURE__*/e(\"strong\",{children:\"eader\"}),\": The header typically consists of two parts: the type of token (which is JWT) and the signing algorithm being used, such as HMAC SHA256 or RSA. For example, a typical header might look like this:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/t(\"code\",{children:[\"{\",/*#__PURE__*/e(\"br\",{}),'  \"alg\": \"HS256\",',/*#__PURE__*/e(\"br\",{}),'  \"typ\": \"JWT\"',/*#__PURE__*/e(\"br\",{}),\"}\"]})]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"P\"})}),/*#__PURE__*/e(\"strong\",{children:\"ayload\"}),\":The payload usually contains the claims (user attributes) and additional data like issuer, expiration time, and audience. Here's an example payload:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/t(\"code\",{children:[\"{\",/*#__PURE__*/e(\"br\",{}),'  \"sub\": \"1234567890\",',/*#__PURE__*/e(\"br\",{}),'  \"name\": \"John Doe\",',/*#__PURE__*/e(\"br\",{}),'  \"admin\": true',/*#__PURE__*/e(\"br\",{}),\"}\"]})]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"Signature\"})}),\": The signature is created by combining the encoded header, the encoded payload, and a secret key. It's used to verify that the sender of the JWT is who they say they are and to ensure that the message wasn't changed along the way. The signature is created using the algorithm specified in the header. For example:\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/t(\"code\",{children:[\"HMACSHA256(\",/*#__PURE__*/e(\"br\",{}),'  base64UrlEncode(header) + \".\" +',/*#__PURE__*/e(\"br\",{}),\"  base64UrlEncode(payload),\",/*#__PURE__*/e(\"br\",{}),\"  secret)\"]})]}),/*#__PURE__*/e(\"p\",{children:\"So, altogether, a JWT looks like this:\"}),/*#__PURE__*/e(\"p\",{children:\"css:\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"header.payload.signatureujt54r6\"})}),/*#__PURE__*/e(\"img\",{alt:\"Structure of JSON\",className:\"framer-image\",height:\"131\",src:\"https://framerusercontent.com/images/YfJGzikWRShdyDxxY1yZD6OJqiM.png\",style:{aspectRatio:\"350 / 262\"},width:\"175\"})]});export const richText4=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Stateless:\"}),\"\\xa0Since JWTs contain all the necessary information within themselves, servers don't need to store session data, making them stateless.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Enhanced Security:\"}),\"\\xa0With the use of digital signatures, JWTs ensure data integrity and prevent tampering.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Flexibility:\"}),\"\\xa0JWTs are versatile and can be used for various purposes, including authentication, authorization, and information exchange\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Practical Applications of JWT\"})}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"User Authentication:\"}),\"\\xa0JWTs are commonly used for user authentication in web applications. Upon successful login, a JWT is issued to the client, which is then included in subsequent requests to access protected resources.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"API Authorization:\"}),\"\\xa0JWTs can be used to authorize access to APIs by including relevant user permissions or roles in the token payload.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Single Sign-On (SSO):\"}),\"\\xa0JWTs facilitate seamless authentication across multiple applications, allowing users to log in once and access multiple services without the need for repeated authentication.\"]})})]})]});export const richText5=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"In conclusion, JWTs are powerful tools for securely transmitting information between parties in a compact and efficient manner. Their versatility, security features, and ease of implementation make them invaluable in modern web development.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"em\",{children:['\"Stay connected with us for the latest updates, insights, and exciting content! \uD83D\uDE80 Follow us on ',/*#__PURE__*/e(\"strong\",{children:\"Twitter \"}),\"and \",/*#__PURE__*/e(\"strong\",{children:\"LinkedIn\"}),\". Hit the 'Like' button, give us a 'Follow,' and don't forget to 'Share' to spread the knowledge and inspiration. Join our growing community - '\"]}),/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/refer-and-earn-20-percent\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"em\",{children:\"https://www.qodex.ai/refer-and-earn-20-percent\"})})}),/*#__PURE__*/e(\"em\",{children:\"' ! \uD83C\uDF10\\\"\"})]})]});export const richText6=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Low-code software testing\"}),\"\\xa0is the\",/*#__PURE__*/e(\"strong\",{children:\"\\xa0game-changer \"}),\"the organization needs in 2024. But convincing everyone to embrace this new paradigm can be tricky. Fear not, QA champion! Here are 5 power moves to turn your colleagues into low-code evangelists:\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"5 Powers to Move:\"})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"1. Start Small, Prove Big:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Don't try to change everything overnight. Pick a small project or a specific team to try out low-code testing first.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Track the results carefully and show how it saves time, money, and makes testing easier.\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"2. Make It Everyone's Business:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Low-code testing isn't just for tech experts. Show how people from different teams, like those who know the business best or those who work closely with customers, can use it too.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"This gets more people involved, catches problems earlier, and makes sure the software is truly meeting everyone's needs.\"})})]}),/*#__PURE__*/t(\"p\",{children:[\" \",/*#__PURE__*/e(\"strong\",{children:\"3. Calm Fears, Highlight Growth:\"})]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Some folks might worry that low-code testing means fewer jobs for testers. Reassure them that their skills are still valuable, but now they can focus on more creative, challenging tasks instead of repetitive ones.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Explain how low-code testing can actually help them learn new skills and grow in their careers.\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"4. Invest in Learning:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Provide training and support to help everyone get comfortable with the new tools and ways of working.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Make sure there are clear instructions and resources available, and create opportunities for people to ask questions and share their experiences.\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"5. Build Bridges, Not Silos:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Encourage teams to work together and share knowledge about low-code testing.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"This helps break down barriers, spreads good ideas, and makes sure everyone is on the same page.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Creating a culture of collaboration is key to getting the most out of low-code testing.\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText7=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"In \",/*#__PURE__*/e(\"strong\",{children:\"2024\"}),\", the software development world demands speed, efficiency, and quality. Low-code software testing rises to this challenge, offering a game-changing approach to ensure software excellence without sacrificing speed. By implementing these \",/*#__PURE__*/e(\"strong\",{children:\"5 power moves\"}),\", you can champion low-code testing within the organization, empowering teams, boosting efficiency, and delivering outstanding software faster than ever before.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Our intuitive platform and powerful tools empower everyone, from testers to business analysts, to contribute to the testing process with ease. Experience unmatched efficiency, improved collaboration, and faster time to market with \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\". Join the low-code testing revolution today and transform the way you build and deliver software. Visit\",/*#__PURE__*/e(\"strong\",{children:\" \"}),/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/t(r.a,{children:[/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"}),\" \"]})}),\"now to start your \",/*#__PURE__*/e(\"strong\",{children:\"free trial\"}),\" and see the future of software testing in action.\"]})]});export const richText8=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"In the ever-evolving landscape of technology, APIs (Application Programming Interfaces) play a pivotal role in enabling seamless communication between software applications. One key aspect of harnessing the power of APIs is effective documentation. In this blog, we'll go through the essentials of mastering API documentation in 2024, empowering to create clear, user-friendly, and developer-centric documentation.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"API Documentation:\"})}),/*#__PURE__*/t(\"p\",{children:[\"API documentation is \",/*#__PURE__*/e(\"strong\",{children:\"technical content that describes the API in detail.\"}),\" It includes instructions on how to effectively use and integrate the API, with an emphasis on any security constraints.\"]}),/*#__PURE__*/t(\"p\",{children:[\"(read more - \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/what-is-api-automation-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"em\",{children:\"API Automation Testing\"})})}),\")\"]})]});export const richText9=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Plan with Precision:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Define Your Audience:\"}),\"\\xa0Understand who you're writing for \u2013 their technical expertise,\\xa0goals,\\xa0and pain points.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Structure Information Strategically:\"}),\"\\xa0Organize content logically for easy navigation and comprehension.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Choose the Right Format:\"}),\"\\xa0Select a format that suits the audience and content needs (interactive,\\xa0static,\\xa0reference-style,\\xa0tutorial-style).\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Establish Style Guidelines:\"}),\"\\xa0Ensure consistency and readability with a clear style guide.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Embrace Clarity as Your Superpower:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Speak the Language of Developers:\"}),\"\\xa0Use plain language,\\xa0avoid jargon,\\xa0and explain concepts clearly.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Provide Practical Examples:\"}),\"\\xa0Illustrate concepts with real-world code snippets and use cases.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Structure Content Logically:\"}),\"\\xa0Break down complex information into manageable chunks.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Visualize for Understanding:\"}),\"\\xa0Incorporate diagrams,\\xa0flowcharts,\\xa0and screenshots to enhance comprehension.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Design for Engagement:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Interactive Adventures:\"}),\"\\xa0Utilize code sandboxes,\\xa0try-it-out tools,\\xa0and interactive elements to encourage exploration.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"User-Friendly Navigation:\"}),\"\\xa0Create an intuitive interface with clear menus,\\xa0search functionality,\\xa0and breadcrumbs.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Visual Appeal:\"}),\"\\xa0Employ a clean and organized design that's easy on the eyes.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Keep It Fresh and Relevant:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Regular Updates:\"}),\"\\xa0Maintain alignment with API changes and enhancements.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Address User Feedback:\"}),\"\\xa0Actively collect feedback and incorporate improvements based on developer needs.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Version Control:\"}),\"\\xa0Track changes effectively and maintain a clear history of updates.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Leverage the Right Tools:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Documentation Generators:\"}),\"\\xa0Streamline the process with tools like \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\", Swagger or Postman.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Collaboration Platforms:\"}),\"\\xa0Facilitate teamwork and knowledge sharing with platforms like GitHub or GitLab.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Version Control Systems:\"}),\"\\xa0Track changes and manage versions with Git or similar systems.\"]})})]})]})]}),/*#__PURE__*/t(\"p\",{children:[\"At \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\",\\xa0we're committed to simplifying API automation and documentation.\\xa0Our platform empowers you to create exceptional API docs with ease,\\xa0ensuring clarity,\\xa0engagement,\\xa0and long-term maintainability.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:'\"Stay connected with us for the latest updates, insights, and exciting content! \uD83D\uDE80\\xa0Follow us on '}),/*#__PURE__*/e(i,{href:\"https://x.com/qodex_ai\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"X\"})})})}),/*#__PURE__*/t(\"em\",{children:[/*#__PURE__*/e(\"strong\",{children:\" \"}),\"and \"]}),/*#__PURE__*/e(i,{href:\"https://www.linkedin.com/company/qodexai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"LinkedIn\"})})})}),/*#__PURE__*/e(\"em\",{children:\". Hit the 'Like' button, give us a 'Follow,' and don't forget to 'Share' to spread the knowledge and inspiration.\\\"\"})]})]});export const richText10=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"In today's fast-paced software development world, ensuring quality isn't just the responsibility of programmers and QA professionals. But how can non-technical teams, like Product Managers, Business Analysts, and Quality Assurance Engineer, contribute to the quality assurance process without getting bogged down in code? \"}),/*#__PURE__*/t(\"p\",{children:[\"Enter \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\", the low-code testing platform that empowers everyone to contribute to software excellence.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Qodex.ai\",className:\"framer-image\",height:\"190\",src:\"https://framerusercontent.com/images/jWWtL7pcnmrYFh133EY7YT4V6MU.png\",style:{aspectRatio:\"740 / 380\"},width:\"370\"})]});export const richText11=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"1. Drag-and-Drop Your Way to Quality:\"}),\"\\xa0Forget coding!\\xa0\",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\"'s intuitive interface uses a visual,\\xa0drag-and-drop approach to test creation.\\xa0Think building LEGOs for software\u2014anyone can pick it up and start crafting meaningful tests.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"2. Speak Your Language, Not Code:\"}),\"\\xa0No need to decipher cryptic syntax.\\xa0\",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\" lets you write tests in plain English,\\xa0using familiar terms and actions that reflect your role and understanding of the software.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"3. AI Assistance for the Win:\"}),\"\\xa0Feeling overwhelmed?\\xa0\",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\"'s AI assistant guides you through the testing process,\\xa0suggesting relevant steps and actions based on your chosen workflow.\\xa0It's like having a friendly QA expert in your pocket.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"4. Collaboration is Key:\\xa0\"}),/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\" fosters a collaborative testing environment.\\xa0Share and discuss tests with your team,\\xa0regardless of their technical background.\\xa0This democratizes the QA process and leads to a more comprehensive understanding of the software.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"5. See the Impact, Celebrate the Wins:\\xa0\"}),/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\" provides clear and actionable reports that showcase the impact of your testing efforts.\\xa0Track progress,\\xa0identify trends,\\xa0and celebrate the bugs you've squashed with your newfound QA superpowers.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText12=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Improved software quality:\"}),\" Diverse perspectives lead to a wider range of test cases, catching edge cases and user experience issues that technical teams might miss.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Faster time to market:\"}),\" Early involvement from non-technical stakeholders identifies potential problems sooner, preventing delays and rework later in the development cycle.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Enhanced team communication:\"}),\" Collaborative testing fosters a better understanding of the software across departments, leading to more informed decisions and smoother development processes.\"]})})]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),/*#__PURE__*/e(\"strong\",{children:\" isn't just a testing tool; it's a bridge that connects the technical and non-technical worlds.\"}),\"\\xa0It empowers everyone to contribute their unique perspective to the software creation process,\\xa0resulting in higher quality,\\xa0faster delivery,\\xa0and a more cohesive team spirit.\"]})]});export const richText13=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:'In the world of technology, APIs (Application Programming Interfaces) are the unsung heroes behind the scenes, allowing different software applications to communicate and share information seamlessly. One important factor that influences the performance of APIs is \"latency.\" Let\\'s dive into the basics of API latency in simple terms.'}),/*#__PURE__*/e(\"h3\",{children:\"API Latency:\"}),/*#__PURE__*/e(\"p\",{children:\"API latency refers to the response time between when a query is entered into your infrastructure and when a response is delivered to the user. Overall, the shorter the response time, the better the user experience.\"})]});export const richText14=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"img\",{alt:\"API Latency and API Response Time\",className:\"framer-image\",height:\"487\",src:\"https://framerusercontent.com/images/JW8jbe7vpiAde6BFJP5OrzRyPIE.png\",style:{aspectRatio:\"1659 / 975\"},width:\"829\"}),/*#__PURE__*/e(\"img\",{alt:\"API Latency\",className:\"framer-image\",height:\"183\",src:\"https://framerusercontent.com/images/XjtpO7ptJ5eIL363MQ3t0J920.png\",style:{aspectRatio:\"740 / 366\"},width:\"370\"})]});export const richText15=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"p\",{children:[\"The latency might be 500ms, which leaves 2500ms, or 2.5 seconds, for processing. Just to have a number in mind, high-performing APIs are considered to have \",/*#__PURE__*/e(\"strong\",{children:\"between 0.1 and 1 second average response time\"}),\". At 2 seconds the delay is noticeable.\"]})});export const richText16=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"To improve API latency:\"}),/*#__PURE__*/t(\"p\",{children:[\"1. \",/*#__PURE__*/e(\"strong\",{children:\"Optimize Code:\"})]}),/*#__PURE__*/e(\"p\",{children:\"   Streamline and optimize the API code for faster execution.\"}),/*#__PURE__*/t(\"p\",{children:[\"2. \",/*#__PURE__*/e(\"strong\",{children:\"Use CDNs:\"})]}),/*#__PURE__*/e(\"p\",{children:\"   Employ Content Delivery Networks (CDNs) to distribute content closer to users, reducing latency.\"}),/*#__PURE__*/t(\"p\",{children:[\"3. \",/*#__PURE__*/e(\"strong\",{children:\"Caching Mechanisms:\"})]}),/*#__PURE__*/e(\"p\",{children:\"   Implement caching strategies to store and quickly retrieve frequently requested data.\"}),/*#__PURE__*/t(\"p\",{children:[\"4. \",/*#__PURE__*/e(\"strong\",{children:\"Reduce Network Calls:\"})]}),/*#__PURE__*/e(\"p\",{children:\"   Minimize the number of unnecessary network calls to enhance overall API speed.\"}),/*#__PURE__*/t(\"p\",{children:[\"5. \",/*#__PURE__*/e(\"strong\",{children:\"Load Balancing:\"})]}),/*#__PURE__*/e(\"p\",{children:\"   Distribute incoming API requests evenly across servers to prevent overload and reduce latency.\"}),/*#__PURE__*/t(\"p\",{children:[\"6. \",/*#__PURE__*/e(\"strong\",{children:\"Asynchronous Processing:\"})]}),/*#__PURE__*/e(\"p\",{children:\"   Utilize asynchronous processing for tasks that don't require immediate attention, freeing up resources for critical functions.\"}),/*#__PURE__*/t(\"p\",{children:[\"7. \",/*#__PURE__*/e(\"strong\",{children:\"Optimal Data Transfer:\"})]}),/*#__PURE__*/e(\"p\",{children:\"   Efficiently transfer data by compressing payloads and using appropriate data formats.\"}),/*#__PURE__*/t(\"p\",{children:[\"8. \",/*#__PURE__*/e(\"strong\",{children:\"Regular Monitoring:\"})]}),/*#__PURE__*/e(\"p\",{children:\"   Continuously monitor API performance and promptly address any issues to ensure optimal latency.\"})]});export const richText17=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Let's imagine you're using a weather app. When you open it to check the temperature, the app talks to a Weather API to get the info. The time it takes for the API to respond and show you the temperature is called API latency. If it's quick, you see the temperature right away. If it's slow, you might wait a bit. Fast API latency means speedy results! \uD83C\uDF21\uFE0F \uD83D\uDE80\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText18=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"In today's web development world, it's super important for apps to talk to each other in real-time. The usual way of asking and waiting for a response might not be fast enough when things need to happen right away. That's where webhooks and these fancy asynchronous API patterns step in. They're like superheroes, making sure that different parts of a system can chat and share info quickly, so everything works smoothly and fast.  \uD83D\uDE0E \uD83D\uDE80\"}),/*#__PURE__*/e(\"h3\",{children:\"Webhooks:\"}),/*#__PURE__*/e(\"p\",{children:\"A Webhook is like a digital messenger that tells the application when something interesting happens somewhere else. Imagine getting a notification on your phone the moment your favorite team scores a goal \u2013 that's the magic of webhooks in the digital world.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText19=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Webhooks are all about events and instant updates. Think of them as a system of triggers. When a specific event occurs in one application (let's call it the sender), a message (or webhook) is instantly sent to another application (the receiver) that's interested in that event.\"}),/*#__PURE__*/e(\"p\",{children:\"Here's the beauty of it: no need to constantly ask, \\\"Did anything happen? Anything new?\\\" Webhooks keep your apps in the loop without the need for constant checking. It's like having a friend who taps you on the shoulder every time something exciting happens.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Event Occurs:\"}),\" An event, such as a new user registration or a file update, triggers a webhook.\"]}),/*#__PURE__*/e(\"p\",{children:\"How Webhooks Work?\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"HTTP POST Request:\"}),\" The system generating the event makes an HTTP POST request to the webhook URL registered by the receiving system.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Payload:\"}),\" The payload of the request typically contains information about the event, allowing the receiving system to understand and process it.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Handling the Event:\"}),\" The receiving system processes the event based on the information in the payload. This could involve updating a database, sending notifications, or triggering further actions.\"]})})]})]});export const richText20=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"h5\",{children:[\"1. \",/*#__PURE__*/e(\"strong\",{children:\"Real-time Goodness:\"})]}),/*#__PURE__*/e(\"p\",{children:\"Forget delays. Webhooks bring real-time updates, ensuring your applications are always in sync with the latest happenings.\"}),/*#__PURE__*/t(\"h5\",{children:[\"2. \",/*#__PURE__*/e(\"strong\",{children:\"Efficiency is the Key:\"})]}),/*#__PURE__*/e(\"p\",{children:'No more wasting resources on constantly asking, \"Anything new?\" Webhooks only send data when there\\'s something worth sharing, saving bandwidth and processing power.'}),/*#__PURE__*/t(\"h5\",{children:[\"3. \",/*#__PURE__*/e(\"strong\",{children:\"Tailored for You:\"})]}),/*#__PURE__*/e(\"p\",{children:\"You decide what events matter to you. Webhooks are customizable, allowing you to choose exactly what you want to be notified about.\"}),/*#__PURE__*/e(\"h3\",{children:\"Where Webhooks Shine Bright?\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Notification Wonderland:\"})})})}),/*#__PURE__*/e(\"p\",{children:'Perfect for creating instant notification systems. Your apps can now shout, \"Hey, something cool just happened!\"'}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Buddy System with Other Apps:\"})})})}),/*#__PURE__*/e(\"p\",{children:\"Webhooks simplify teamwork between different applications. They're like messengers that allow your apps to talk and collaborate seamlessly.\"})]});export const richText21=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/e(\"p\",{children:\"Webhooks are superheroes, but even they face challenges. Sometimes messages might not get through due to hiccups in the digital universe. Debugging can be a bit tricky too. But fear not! With a bit of patience and some troubleshooting, these challenges can be conquered.\"})});export const richText22=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"With \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\"\\xa0(Next-gen Postman alternative), automating your API testing is not just efficient but also intelligent and insightful. By leveraging the power of AI, you ensure that your APIs are not only tested thoroughly but also optimized for peak performance. Within 30 minutes, you can set up a powerful, AI-driven API testing mechanism, ensuring your applications communicate seamlessly, reliably, and efficiently.\"]}),/*#__PURE__*/t(\"p\",{children:[\"So, dive into the world of intelligent API testing with \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),\"\\xa0and ensure your applications are always performing at their best.\"]})]});export const richText23=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"API (Application Programming Interface) testing is a type of software testing that aims to determine whether the APIs that are developed meet expectations when it comes to functionality, performance, reliability and security for an application.\"}),/*#__PURE__*/t(\"p\",{children:[\"(read - \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/what-is-api-automation-testing\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"API automation testing\"})}),/*#__PURE__*/e(\"strong\",{children:\"\\xa0\"}),\"for more information)\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are the types of APIs?\"})}),/*#__PURE__*/e(\"p\",{children:\"There are several types of APIs, including:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Web APIs:\"}),\" These APIs are designed for communication over the web and are widely used for building web applications. Examples include RESTful APIs, SOAP APIs, and GraphQL APIs.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Operating System APIs:\"}),\" These APIs are used for interaction with a device or server's underlying operating system. Examples include Windows API, iOS API, and Android API.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Library APIs:\"}),\" These APIs are used for software development and provide pre-built functions and classes for common tasks. Examples include Python's requests library, Java's JDBC API, and . NET's Entity Framework.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Hardware APIs:\"}),\" These APIs are used for interacting with hardware devices such as sensors, cameras, and printers. Examples include USB APIs, Bluetooth APIs, and GPIO APIs.\"]})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Mention a few common tools used for API testing.\"})}),/*#__PURE__*/t(\"p\",{children:[\"Some common \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/software-api-testing-tools\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"tools used for API testing\"})}),\" include:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),/*#__PURE__*/e(\"strong\",{children:\":\"}),\" It's like a smart assistant for API testing, using AI to learn and automate tests, saving you time and effort.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"JMeter:\"}),\" It's a stress tester for APIs, seeing how they handle lots of requests at once.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Postman:\"}),\" It's like a virtual post office for sending and checking API messages.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"SoapUI:\"}),\" It's a toolkit for building and testing APIs, like a Swiss Army knife for API work.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is a RESTful API?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"RESTful API \"}),\"is an interface that two computer systems use to exchange information securely over the internet. Most business applications have to communicate with other internal and third-party applications to perform various tasks.\"]}),/*#__PURE__*/t(\"p\",{children:[\"(read - \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/grpc-vs-restfor\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"gRPC vs REST\"})})}),\" more information)\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is SOAP API?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"SOAP API\"}),\" (Simple Object Access Protocol) is a protocol for exchanging structured information to implement web services. It uses XML as its message format and provides a set of rules for message exchange, fault handling, and security.\"]}),/*#__PURE__*/e(\"p\",{children:\"\\xa0\"})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is the difference between RESTful API and SOAP API?\"})}),/*#__PURE__*/e(\"p\",{children:\"The main difference between RESTful API and SOAP API lies in their architectural styles and message formats. \"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"RESTful API \"}),\"follows the principles of Representational State Transfer (REST) and typically uses HTTP methods such as GET, POST, PUT, and DELETE, with data represented in formats like JSON or XML. On the other hand, \",/*#__PURE__*/e(\"strong\",{children:\"SOAP API\"}),\" uses the Simple Object Access Protocol (SOAP) and typically relies on XML for message exchange, with predefined methods and strict message structures.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is an API endpoint?\"})}),/*#__PURE__*/t(\"p\",{children:[\"An \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/what-is-an-api-endpoint\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"API endpoint\"})})}),\" refers to a specific URL or URI (Uniform Resource Identifier) that represents a unique resource or service provided by an API. It acts as a point of interaction for clients to send requests and receive responses from an API.\\xa0\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Explain API documentation.\"})}),/*#__PURE__*/e(\"p\",{children:\"API documentation is a comprehensive guide that provides information on how to use and interact with an API. It typically includes details about API endpoints, request and response formats, authentication and authorization methods, error handling, and other relevant information.\\xa0\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is an API testing framework?\"})}),/*#__PURE__*/t(\"p\",{children:[\"An\",/*#__PURE__*/e(\"strong\",{children:\" \"}),\"API testing framework\",/*#__PURE__*/e(\"strong\",{children:\" \"}),\"is a set of predefined rules, conventions, and tools that provide a structured approach to designing, implementing, and executing API tests.\\xa0\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Mention common HTTP methods used in API testing.\"})}),/*#__PURE__*/e(\"p\",{children:\"Common HTTP methods used in API testing are:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"GET:\"}),\" Used to retrieve data or resources from an API.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"POST:\"}),\" Used to create new data or resources on an API.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"PUT:\"}),\" Used to update existing data or resources on an API.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"DELETE:\"}),\" Used to delete data or resources from an API.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"PATCH:\"}),\" Used to update existing data or resources on an API partially.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is the purpose of HTTP status codes in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"The purpose of HTTP status codes in API testing is to indicate the outcome of an API request. Status codes are three-digit numbers included in the response message from the server to provide information about the result of the request.\"}),/*#__PURE__*/t(\"p\",{children:[\"(read - \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/http-status-codes\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"HTTP Status Codes\"})})}),\" for\\xa0more information)\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is the role of headers in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"Headers in API testing play a significant role in controlling and managing the behavior of API requests and responses.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is JSON, and why is it commonly used in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"JSON\"}),\" stands for JavaScript Object Notation, and is a lightweight data-interchange format that is commonly used in API testing. JSON is commonly used in RESTful APIs since it enables efficient data serialization and deserialization, making it ideal for API testing.\"]}),/*#__PURE__*/t(\"p\",{children:[\"(read - \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/what-is-json\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"What is JSON\"})})}),/*#__PURE__*/e(\"strong\",{children:\"\\xa0\"}),\"for\\xa0more information)\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is XML, and when is it used in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"XML\"}),\", which stands for Extensible Markup Language, defines the set of rules for encoding documents in a format that is readable by both humans and machines. XML is used in API testing when APIs require data exchange in XML format.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is the purpose of authentication in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[\"The purpose of \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/10-api-authentication-best-practices-for-securing-apis\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"authentication in API testing\"})}),\" is to verify the identity of the requester before granting access to protected resources.\\xa0\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are some common authentication methods used in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"Some common authentication methods used in API testing include:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Token-based authentication: \"}),\"This involves issuing a token to the client after successful authentication, which is then included in subsequent API requests for authorization.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Basic authentication:\"}),\" This involves sending the username and password as part of the API request headers, encoded in base64 format.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"OAuth: \"}),\"This is a widely used authorization framework that allows for the delegation of access rights from one entity to another without sharing credentials.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you handle API authentication in your tests?\"})}),/*#__PURE__*/e(\"p\",{children:\"In API tests, authentication is typically handled by including the required authentication parameters, such as tokens, API keys, or OAuth credentials, in the appropriate headers or query parameters of the API requests.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is API versioning, and why is it important in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"API versioning\"}),\" is the practice of specifying a version number in the API endpoint or headers to ensure backward compatibility and manage changes in the API over time. API versioning is important in API testing to ensure that the correct version of the API is being tested and that changes in the API do not break existing client applications.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are the different types of error responses in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"Different types of error responses in API testing include:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"HTTP error status codes:\"}),\" These are standard \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/http-status-codes\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"HTTP status codes\"})}),\", such as 4xx and 5xx codes, that indicate errors in the API request or response.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Custom error responses:\"}),\" These are custom error messages or error objects returned by the API in case of errors or exceptions.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Validation errors:\"}),\" These are errors that occur when the API request does not meet the validation criteria or constraints defined by the API.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you handle error responses in your API tests?\"})}),/*#__PURE__*/e(\"p\",{children:\"Error responses in API tests can be handled by checking the response status codes, parsing the custom error messages or error objects returned by the API, and validating against expected error responses.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is the purpose of query parameters in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"Query parameters in API testing are used to pass additional parameters in the URL of an API request. These parameters are used to customize the behavior of the API request, such as filtering, sorting, or paginating results.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is the purpose of the request and response headers in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"Request and response headers in API testing are used to transmit additional information about the request or response. Request headers can be used to specify a content type, authentication, caching, language preferences, etc., while response headers can provide information about the server, caching, and more.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is the purpose of the request and response body in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"The request and response body in API testing contains the payload or data that is sent in the request and response messages. The request body is used to send data from the client to the server, such as input parameters or data to create/update resources, while the response body contains the data returned by the API in response to a request.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you handle dynamic values in API testing, such as timestamps or random data?\"})}),/*#__PURE__*/e(\"p\",{children:\"Dynamic values in API testing, such as timestamps or random data, can be handled by using techniques such as data-driven testing, parameterization, or test data management.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is API mocking, and why is it used in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/api-mocking-definition-guide-and-best-practices-for-software-development\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"API mocking\"})}),\" is the practice of simulating or emulating the behavior of an API endpoint during testing without actually invoking the real API. \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/api-mocking-definition-guide-and-best-practices-for-software-development\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"API mocking\"})}),\" is used in API testing to isolate the testing environment from external dependencies.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are the advantages of using API mocking in API testing?\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Test independence: \"}),/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/api-mocking-definition-guide-and-best-practices-for-software-development\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Mocking APIs\"})}),\" allows for testing APIs in isolation without relying on external APIs, reducing dependencies and potential failures due to external factors.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Test repeatability:\"}),\" Mocking APIs ensure consistent responses and behavior during testing, making it easy to reproduce and debug issues.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Test control: \"}),\"Mocking APIs provide control over the responses and behavior of the API endpoints, allowing for targeted testing of different scenarios or error conditions.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you perform load testing on APIs?\"})}),/*#__PURE__*/e(\"p\",{children:\"Load testing on APIs can be performed by simulating a large number of concurrent users or requests to the API endpoint using load testing tools or frameworks.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is API security testing, and why is it important?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/unveiling-the-top-api-security-vulnerabilitie\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"API security testing\"})}),\" is the practice of evaluating the security posture of an API to identify and mitigate potential security risks or vulnerabilities. It is important in API testing to ensure that APIs are secure and protect sensitive data.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are some common security vulnerabilities in APIs?\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Injection attacks: \"}),\"These occur when untrusted data is directly included in API requests or responses, allowing attackers to execute malicious commands or inject malicious code.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Authentication and authorization vulnerabilities: \"}),\"These occur when authentication or authorization mechanisms are weak or improperly implemented, leading to unauthorized access or privilege escalation.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cross-Site Scripting (XSS) attacks: \"}),\"These occur when an API does not properly validate or sanitize user input, allowing malicious scripts to be injected and executed in the responses displayed in web browsers.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you ensure the security of APIs in your tests?\"})}),/*#__PURE__*/e(\"p\",{children:\"Some best practices to ensure the security of APIs in your test include:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Input validation:\"}),\" Ensure that all input data in API requests are properly validated and sanitized to prevent injection attacks.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Authentication and authorization:\"}),\" Properly \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/what-is-api-authentication\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"implement and validate authentication\"})}),\" and authorization mechanisms to ensure that only authorized users can access the \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/what-is-an-api-endpoint\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"API endpoints\"})}),\" and perform authorized actions.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Secure communications: \"}),\"Use secure communication protocols, such as HTTPS, to encrypt data transmitted between the client and server.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is cross-site scripting (XSS), and how can it be prevented in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cross-site scripting (XSS) \"}),\"is a type of vulnerability where malicious scripts are injected into web pages. It can be prevented by properly validating and sanitizing user input in API requests.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is cross-site request forgery (CSRF), and how can it be prevented in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cross-Site Request Forgery (CSRF) \"}),\"is an attack where unauthorized actions are performed on behalf of authenticated users. It can be prevented by implementing CSRF tokens and verifying requests in API testing.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is input validation, and why is it important in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Input validation\"}),\" is the process of validating and sanitizing user input to prevent security vulnerabilities. It is important in API testing to prevent injection attacks and other malicious activities.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are some best practices for API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"Best practices for API testing include proper input validation, authentication and authorization, error handling, security testing, access controls, and regular updates and patches.\"}),/*#__PURE__*/t(\"p\",{children:[\"Read More about \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/software-api-testing-tools\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"API testing tools\"})})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you handle API versioning in your tests?\"})}),/*#__PURE__*/e(\"p\",{children:\"API versioning can be handled in tests by including versioning information in API endpoints or headers and ensuring backward compatibility to avoid breaking existing functionality.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are some techniques for handling API timeouts and retries in tests?\"})}),/*#__PURE__*/e(\"p\",{children:\"Techniques for handling API timeouts and retries in tests include setting appropriate timeout thresholds, implementing retries with backoff strategies, and handling error responses gracefully.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is API contract testing, and why is it important?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"API contract testing \"}),\"is important to validate the compatibility between API consumers and providers. It can be performed using tools like Swagger, Postman, or specialized contract testing frameworks.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you perform API contract testing in your tests?\"})}),/*#__PURE__*/e(\"p\",{children:\"API contract testing involves verifying that APIs meet predefined expectations and behaviors, ensuring compatibility and reliability.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is API performance testing, and why is it important?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"API performance testing \"}),'is like a \"workout\" for the \"messenger\" between apps. It checks how fast and reliably it can deliver information, even when many people are using it at the same time.']}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"It's important because:\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Happy Users:\"}),\" No one likes slow apps! Speedy APIs make apps feel snappy and responsive, keeping users happy.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Stronger Apps:\"}),' If the \"messenger\" is slow, the whole app can become sluggish or even crash. Performance testing helps build stronger, more reliable apps.']})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Handling Traffic:\"}),' Imagine a busy store on Black Friday\u2014the \"messenger\" needs to handle lots of shoppers! Performance testing ensures it can cope with high demand.']})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Finding Weak Spots:\"}),\" It helps uncover hidden problems before they cause real-world issues, like slow loading screens or errors during checkout.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Saving Money:\"}),\" Catching problems early can save money by preventing lost sales, customer frustration, and expensive fixes later on.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you measure the performance of APIs in your tests?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"API performance testing \"}),\"is important to measure the response time, throughput, and resource utilization of APIs. It can be performed using tools like JMeter, LoadRunner, or Gatling.\"]}),/*#__PURE__*/e(\"p\",{children:\"You can use the Collection Runner to test the performance of your API with the same requests, collections, and environments you use for functional API tests. To configure a performance test, create a collection with the requests you want to send to your API.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is API monitoring, and why is it important?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"API Monitoring \"}),\"refers to the practice of monitoring Application Programming Interfaces, most commonly in production, to gain visibility into performance, availability and functional correctness.\"]}),/*#__PURE__*/e(\"p\",{children:\"It is important to help the developers tackle problems before they escalate, mitigating any potential harm that could affect end-users or lead to revenue losses.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are some common tools used for API monitoring?\"})}),/*#__PURE__*/t(\"p\",{children:[\"Common tools used for API monitoring include \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\", Prometheus, Grafana, and ELK stack.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is API virtualization, and why is it used in API testing?\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"API virtualization\"}),\" allows you to re-execute tests without having to redo a complete data setup. It is used in API testing to isolate dependencies, simulate responses, and ensure consistent behavior.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are the benefits of using API virtualization in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"The benefits of using API virtualization in API testing include reduced dependency on external systems, faster and isolated testing, and improved test repeatability.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you handle versioning and backward compatibility in your API tests?\"})}),/*#__PURE__*/e(\"p\",{children:\"Versioning and backward compatibility in API tests can be handled by maintaining backward compatibility for existing APIs, providing clear versioning information, and updating tests accordingly.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is the purpose of API documentation in API testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"API documentation is like a guidebook for the API. Testers use it to:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Understand how the API works:\"}),\" It's like reading the instructions before playing a game, so you know the rules and how to use the different parts.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Design effective test cases:\"}),\" Knowing what the API is supposed to do helps testers create tests to make sure it works as expected.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Verify responses:\"}),\" The documentation tells testers what the API should return, so they can check if the answers are correct and complete.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Troubleshoot issues:\"}),\" If something goes wrong, the documentation can help testers figure out what's happening and how to fix it.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you generate and maintain API documentation in your tests?\"})}),/*#__PURE__*/t(\"p\",{children:[\"It can be generated and maintained using tools like \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\", Swagger, API Blueprint, or OpenAPI.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What are some best practices for API test automation?\"})}),/*#__PURE__*/e(\"p\",{children:\"Best practices for API test automation include using a framework or tool for automation, designing reusable and maintainable test scripts, incorporating test data management, and leveraging continuous integration and delivery (CI/CD) practices.\"}),/*#__PURE__*/t(\"p\",{children:[\"(Read - \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/cicd-trends\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"CI/CD Trends\"})})}),/*#__PURE__*/e(\"strong\",{children:\" \"}),\"for more information)\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you handle API changes and updates in your tests?\"})}),/*#__PURE__*/e(\"p\",{children:\"API changes and updates can be handled in tests by updating the test scripts, retesting affected functionalities, and ensuring backward compatibility before deploying changes to production.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"How do you prioritize API test cases for regression testing?\"})}),/*#__PURE__*/e(\"p\",{children:\"Prioritizing API test cases for regression testing can be based on the criticality of APIs, impact on business functionalities, frequency of API usage, and feedback from stakeholders.\"})]})]})});export const richText24=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"Mastering these 50+ questions equips you to tackle any API testing challenge.\\xa0From understanding core concepts to navigating advanced scenarios,\\xa0you'll impress interviewers with your knowledge and skills.\\xa0Remember,\\xa0practice makes perfect \u2013 so put these questions to the test and build your confidence.\\xa0You'll be ready to ace that interview and launch your successful API testing career!\"})})});export const richText25=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"5 Ways Qodex.ai Saves Your Time and Money on API TestingTired of spending countless hours manually testing APIs? Feeling the pinch of a shrinking QA budget?\"}),/*#__PURE__*/e(\"img\",{alt:\"How to save time and money\",className:\"framer-image\",height:\"156\",src:\"https://framerusercontent.com/images/TxoCfImudOOpxIwhl5aVQuj5o9w.png\",style:{aspectRatio:\"350 / 313\"},width:\"175\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Fear not,\\xa0brave developer,\\xa0for \"}),/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),/*#__PURE__*/e(\"strong\",{children:\" is here to slay the time-money dragon!\\xa0\"})]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Here are 5 ways this revolutionary platform can supercharge your API testing and deliver sweet,\\xa0sweet cost savings: \"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"1. Automation Unleashed:\"}),\"\\xa0\",/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai'\"})}),\"s AI writes and runs tests across browsers and devices, freeing your QA team from monotonous tasks. Imagine reclaiming hours spent clicking buttons for strategic analysis and problem-solving.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"2. Efficiency Amplified:\"}),\"\\xa0Parallel testing, smart scheduling, and centralized reporting streamline workflows. \",/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai \"})}),\"optimizes your testing process, boosting productivity and reducing manual effort. Think of faster test cycles, quicker feedback loops, and happier team members.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"3. Bugs Crushed Early, Costs Reduced:\"}),\"\\xa0Catching bugs early saves money! \",/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai'\"})}),\"s comprehensive testing covers functionality, performance, security, and more, pinpointing issues before they reach production and triggering expensive fixes. This proactive approach translates to cost savings and a smoother user experience.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"4. Scalability on Steroids:\"}),\"\\xa0Need to test a growing API landscape? \",/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" scales effortlessly with your team size and project demands. Ditch the need for additional testers, \",/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai \"})}),\"handles the scaling while you focus on innovation and expansion.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"5. Collaboration Champions:\"}),\"\\xa0\",/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai \"})}),\"fosters seamless communication and teamwork with its built-in tools. Share results, assign tasks, and track progress effortlessly, keeping everyone aligned and preventing costly miscommunication.\"]}),/*#__PURE__*/e(\"img\",{alt:\"API\",className:\"framer-image\",height:\"169\",src:\"https://framerusercontent.com/images/0yfzeay6jO4X5WZ7DgYjUeeMew.png\",style:{aspectRatio:\"350 / 338\"},width:\"175\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai \"})})}),/*#__PURE__*/e(\"strong\",{children:\"isn't just an API testing tool, it's a time and money-saving app. You get:\"})]}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Faster testing\"})})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Fewer bugs\"})})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Happier users\"})})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"More productive team\"})})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"A healthier budget\"})})})]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"So, why settle for outdated testing methods when you can have \"}),/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),/*#__PURE__*/e(\"strong\",{children:\" working its magic?\"}),\"\\xa0More time, less money, happier teams, and flawless APIs \u2013 that's the \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" promise. Visit their website today and see how this time-saving, money-making BFF can transform your API testing game!\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText26=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"p\",{children:[\"In the world of API development, two major players are\",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/how-to-test-the-rest-api-beginner-tips\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\" REST \"})}),\"(Representational State Transfer) and gRPC (gRPC Remote Procedure Call). Choosing the right one for your project can significantly impact performance, scalability, and ease of development. This blog will delve into the differences, benefits, and use cases of REST and gRPC, helping you make an informed decision.\"]})});export const richText27=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"What is an API?\"})})}),/*#__PURE__*/t(\"p\",{children:[\"An Application Programming Interface (API) is a set of rules that allows different software entities to communicate with each other. APIs enable the integration of new features and services into applications, ensuring seamless interaction between different systems.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Why APIs are Important\"})})}),/*#__PURE__*/e(\"p\",{children:\"APIs are the backbone of modern software development. They allow developers to use existing services and frameworks, promote modularity, and facilitate rapid development. Whether it's a web application, mobile app, or cloud service, APIs play a crucial role.\"}),/*#__PURE__*/e(\"img\",{alt:\"API\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/lwy1Zz03HCQNuu3B3kwf2JM0S3A.png\",srcSet:\"https://framerusercontent.com/images/lwy1Zz03HCQNuu3B3kwf2JM0S3A.png?scale-down-to=512 512w,https://framerusercontent.com/images/lwy1Zz03HCQNuu3B3kwf2JM0S3A.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/lwy1Zz03HCQNuu3B3kwf2JM0S3A.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]});export const richText28=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"What is REST?\"})})}),/*#__PURE__*/t(\"p\",{children:[\"REST, or Representational State Transfer, is an architectural style for designing networked applications. RESTful services use \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/http-status-codes\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"HTTP requests\"})}),\" to perform CRUD (Create, Read, Update, Delete) operations.\",/*#__PURE__*/e(\"br\",{}),'\"In simpler terms, ',/*#__PURE__*/e(\"em\",{children:\"a REST API is a set of rules that helps apps share information easily.\"}),'\"',/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Key Principles of REST\"})})}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Statelessness:\"}),\" Each request from a client to a server must contain all the information needed to understand and process the request.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Client-Server Architecture:\"}),\" The client and server are separate entities, promoting scalability and flexibility.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cacheability:\"}),\" Responses should be defined as cacheable or non-cacheable to improve performance.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Layered System:\"}),\" A client cannot tell if it is connected directly to the end server or an intermediary.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Uniform Interface:\"}),\" Simplifies and decouples the architecture, enabling each part to evolve independently.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"RESTful Web Services\"})})}),/*#__PURE__*/e(\"p\",{children:\"RESTful web services typically use HTTP methods such as GET, POST, PUT, and DELETE. They leverage URLs to identify resources and often use JSON or XML for data interchange.\"}),/*#__PURE__*/e(\"img\",{alt:\"Rest\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/M4ixoUPIy4N2O5eBCdJCM9CxFJc.png\",srcSet:\"https://framerusercontent.com/images/M4ixoUPIy4N2O5eBCdJCM9CxFJc.png?scale-down-to=512 512w,https://framerusercontent.com/images/M4ixoUPIy4N2O5eBCdJCM9CxFJc.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/M4ixoUPIy4N2O5eBCdJCM9CxFJc.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]});export const richText29=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"What is gRPC?\"})})}),/*#__PURE__*/t(\"p\",{children:[\"gRPC is a high-performance, open-source framework developed by Google. It uses HTTP/2 for transport, Protocol Buffers (protobufs) for serialization, and it supports multiple programming languages.\",/*#__PURE__*/e(\"br\",{}),'\"In simple terms, ',/*#__PURE__*/e(\"em\",{children:\"gRPC is like a speedy messenger that helps different programs understand each other, making it easier for them to work together, even if they're far away.\"}),'\"',/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Key Principles of gRPC\"})})}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Efficient Communication:\"}),\" gRPC uses HTTP/2, which allows for multiplexing multiple requests over a single connection, reducing latency.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Strongly Typed Contracts:\"}),\" gRPC uses Protocol Buffers, which provide a clear and efficient way to define service methods and message structures.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Bi-Directional Streaming:\"}),\" Supports bi-directional streaming, enabling real-time communication.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Language Agnostic:\"}),\" Provides tools to generate client and server code in multiple languages.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"gRPC Services\"})})}),/*#__PURE__*/e(\"p\",{children:\"gRPC services define methods using Protocol Buffers. Each service consists of a set of RPC (Remote Procedure Call) methods that can be called remotely by clients.\"}),/*#__PURE__*/e(\"img\",{alt:\"gRPC Services\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/7Y9GMdGYszZeWvqzIe2NMWAIS0.png\",srcSet:\"https://framerusercontent.com/images/7Y9GMdGYszZeWvqzIe2NMWAIS0.png?scale-down-to=512 512w,https://framerusercontent.com/images/7Y9GMdGYszZeWvqzIe2NMWAIS0.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/7Y9GMdGYszZeWvqzIe2NMWAIS0.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]});export const richText30=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Performance:\"}),/*#__PURE__*/t(\"p\",{children:[\"gRPC generally offers better performance than REST due to its use of HTTP/2, binary serialization, and efficient communication mechanisms. REST, while still performant, can be slower due to its reliance on text-based protocols and HTTP/1.1.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Scalability:\"}),/*#__PURE__*/t(\"p\",{children:[\"Both REST and gRPC can scale effectively, but gRPC's efficient communication and support for bi-directional streaming can make it more suitable for high-throughput, low-latency applications.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Ease of Development:\"}),/*#__PURE__*/t(\"p\",{children:[\"REST is easier to implement and understand, making it a popular choice for many developers. gRPC, while more complex, offers tools and libraries that simplify development, particularly for large-scale applications.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Security:\"}),/*#__PURE__*/t(\"p\",{children:[\"Both REST and gRPC support common security mechanisms such as TLS. REST, with its maturity, has a wide range of security practices and tools. gRPC, being newer, also provides robust security but might require additional considerations for complex security requirements.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Interoperability:\"}),/*#__PURE__*/t(\"p\",{children:[\"REST, with its use of HTTP and standard data formats like \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/what-is-json\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"JSON\"})}),\" and XML, is highly interoperable. gRPC, while language-agnostic, relies on Protocol Buffers, which may require additional tooling for integration with systems that do not natively support protobufs.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Payload Size:\"}),/*#__PURE__*/t(\"p\",{children:[\"gRPC messages are typically smaller due to binary serialization with Protocol Buffers, which can lead to reduced bandwidth usage and faster transmission. REST messages, using JSON or XML, can be larger and less efficient.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Error Handling:\"}),/*#__PURE__*/t(\"p\",{children:[\"REST uses standard HTTP status codes for error handling, which are widely understood. gRPC has its own status codes and provides detailed error messages, offering more granular error handling.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]})]}),/*#__PURE__*/e(\"img\",{alt:\"gRPC vs REST: Comparison Table\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/lA2WxWnbChLQmNlEyOnRFS8xHBQ.png\",srcSet:\"https://framerusercontent.com/images/lA2WxWnbChLQmNlEyOnRFS8xHBQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/lA2WxWnbChLQmNlEyOnRFS8xHBQ.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/lA2WxWnbChLQmNlEyOnRFS8xHBQ.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]});export const richText31=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"REST and gRPCs features make them suited for different use cases.\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:/*#__PURE__*/e(\"strong\",{children:\"Best for Public Web Services: REST\"})}),/*#__PURE__*/t(\"p\",{children:[\"REST\u2019s features are well-suited to public web service APIs. REST uses the HTTP 1.1 protocol which has universal browser support. gRPC, on the other hand, is less compatible since it uses HTTP 2.0. While gRPC\u2019s payload is smaller, REST\u2019s primary payload format, JSON, is more flexible and friendly to browsers. REST also allows you to use other message formats HTML, plain text, XML, and YAML which adds to its flexibility.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:/*#__PURE__*/e(\"strong\",{children:\"Best for Internal APIs, IoT, and mobile: gRPC\"})}),/*#__PURE__*/e(\"p\",{children:\"gRPC has features that make it suited for internal APIs, IoT, and mobile development. These applications benefit from gRPC\u2019s bi-directional streaming, small payload sizes, and built-in code generation. gRPC\u2019s small message size makes it more performant and scalable than REST for these applications.\"}),/*#__PURE__*/e(\"p\",{children:\"gRPC\u2019s low browser support makes it suited to internal APIs (non-public) and mobile development. Mobile applications usually do not require a browser, and gRPC\u2019s small message size can preserve the processing speed of the mobile device.\"}),/*#__PURE__*/t(\"p\",{children:[\"IoT APIs need bi-directional streaming because many devices may send messages to an API server concurrently. gRPC can process and respond to multiple requests from multiple clients at the same time. REST, on the other hand, only supports unary communication. IoT APIs also require lightweight messaging because of constrained bandwidth. Finally, it is easier to use gRPC to connect Internet of Things (IoT) devices such as phones to backend APIs.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:/*#__PURE__*/e(\"strong\",{children:\"Best for microservices: The jury is out\"})}),/*#__PURE__*/e(\"p\",{children:\"REST and gRPC are both used for microservices. While REST is more widely used for microservices, gRPC\u2019s features are particularly suited to this domain.\"}),/*#__PURE__*/e(\"p\",{children:\"Microservice architectures can leverage gRPC\u2019s built-in code generation to allow microservices written in different programming languages to communicate. gRPC\u2019s payload size and bi-directional streaming also allow faster and more efficient communication between microservices.\"})]})})]});export const richText32=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/e(\"p\",{children:\"Both gRPC and REST API have their use cases. gRPC excels in high-performance environments, supports bidirectional streaming, and uses Protocol Buffers for efficient serialization. REST API is simpler, more flexible, and better suited for use with web applications or when interacting with multiple programming languages.\"})});export const richText33=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Final Thoughts\"}),/*#__PURE__*/t(\"p\",{children:[\"Both REST and gRPC have their strengths and weaknesses. The choice between them depends on your specific needs, such as performance requirements, ease of development, and scalability.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"h5\",children:[/*#__PURE__*/e(\"h5\",{children:\"Which One Should You Choose?\"}),/*#__PURE__*/e(\"p\",{children:\"For public APIs and simple CRUD operations, REST is often the best choice due to its simplicity and wide adoption. For high-performance, low-latency systems, and real-time communication, gRPC is a more suitable option.\"})]})})]});export const richText34=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText35=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"In the world of software development,\\xa0testing is often seen as the less glamorous sidekick to coding.\\xa0But just like a superhero's trusted ally,\\xa0testing plays a crucial role in ensuring the success and safety of every digital adventure.\"}),/*#__PURE__*/e(\"p\",{children:\"While even the most seasoned QA professionals can face challenges.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\", your AI buddy, helps you to avoid 5 common mistakes and build software that rocks, not crashes!\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Mistake 1: Start Testing Too Late-\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"'Imagine building a house without checking the foundation - risky,\\xa0right?'\"}),\"\\xa0\"]}),/*#__PURE__*/e(\"p\",{children:\"\\xa0That's like waiting until late to test software.\\xa0\\xa0By catching bugs early with Qodex,\\xa0you avoid costly reworks and ensure a smooth development journey.\\xa0\u2728 Think of it as building on solid ground,\\xa0one test at a time!\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Mistake 2: Manual Testing Overload-\"})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"'Imagine spending hours clicking through the same login screen, only to miss a hidden bug later.'\"})}),/*#__PURE__*/t(\"p\",{children:[\"It's time-consuming,\\xa0repetitive,\\xa0and prone to human errors. \u2728\\xa0That's where\",/*#__PURE__*/e(\"strong\",{children:\" \"}),\"Qodex.ai swoops in with its AI superpowers!\\xa0It automates those tedious tasks,\\xa0freeing your team to focus on the creative,\\xa0complex stuff.\\xa0\\xa0Think of it as having a tireless robot army at your disposal,\\xa024/7!\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Mistake 3: Inadequate Test Coverage-\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"'Imagine missing a typo in a spellcheck app - embarrassing,\\xa0right?'\"}),\"\\xa0That's what incomplete testing leaves your software vulnerable to.\\xa0Qodex's smart test generation goes beyond the obvious,\\xa0uncovering hidden corners and ensuring your software shines everywhere,\\xa0not just on the surface.\\xa0\u2728\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Mistake 4: Poor Test Case Management-\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"'Juggling test cases?'\"}),\" \"]}),/*#__PURE__*/e(\"p\",{children:\"Qodex to the rescue!\\xa0Ditch the chaos of lost versions, duplicate tests, and endless spreadsheets. Qodex.ai's platform keeps everything organized, tracked, and prioritized like a zen kitty on a comfy shelf. \u200D\u2728 Focus on finding bugs, not wrangling tests.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Mistake 5: Neglecting Continuous Testing-\"})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"'Skipping continuous testing is like building a sandcastle without checking the tide.'\\xa0\"})}),/*#__PURE__*/e(\"p\",{children:\"You might end up with a soggy mess.\\xa0\u200D\u2728\\xa0Qodex seamlessly integrates testing into your development flow,\\xa0catching glitches early and often,\\xa0ensuring your software stands strong against every wave.\"})]});export const richText36=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Happy Users\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Saved Time and Money\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Reputation Protection\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Security Matters\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Faster Innovation\"})})]}),/*#__PURE__*/e(\"p\",{children:\"By automating these and other tasks, Qodex.ai helps teams:\"}),/*#__PURE__*/e(\"p\",{children:\"Reduce testing time and costs. Improve test coverage and accuracy.Free up testers for more strategic work.Accelerate software releases and time to market.\"}),/*#__PURE__*/t(\"p\",{children:[\"*Follow us on \",/*#__PURE__*/e(i,{href:\"https://www.linkedin.com/company/99934754/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"LinkedIn\"})}),\" and \",/*#__PURE__*/e(i,{href:\"https://x.com/qodex_ai\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"X\"})}),\" for more insights.\"]})]});export const richText37=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/e(\"p\",{children:\"Software development has traditionally been dominated by manual coding, where developers write code line by line to create applications. However, the rise of low-code and no-code platforms has introduced a new paradigm, allowing users to create applications through graphical user interfaces and pre-built components. Platforms like Qodex.ai are now emerging to blend these paradigms, offering a flexible and powerful development experience.\"})});export const richText38=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Traditional coding involves writing software applications using programming languages such as Java, Python, and C++. This method requires in-depth knowledge of syntax, logic, and algorithms. Developers manually code every feature, which allows for high customisation and flexibility.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"h5\",{children:\"Key Characteristics\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Language Proficiency:\"}),\" Requires expertise in specific programming languages.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Control:\"}),\" Offers complete control over the application's behavior and performance.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Complexity:\"}),\" Can handle complex and unique requirements.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"img\",{alt:\"What is Traditional Coding?\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/qexONcW2evDgJEaXL8JMlG3RA5Y.png\",srcSet:\"https://framerusercontent.com/images/qexONcW2evDgJEaXL8JMlG3RA5Y.png?scale-down-to=512 512w,https://framerusercontent.com/images/qexONcW2evDgJEaXL8JMlG3RA5Y.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/qexONcW2evDgJEaXL8JMlG3RA5Y.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]});export const richText39=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Low-code and no-code platforms simplify software development by enabling users to build applications through visual interfaces, drag-and-drop elements, and pre-built modules. These platforms are designed to reduce the complexity and time required for development, making it accessible to non-technical users.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"h5\",{children:\"Key Characteristics\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Ease of Use:\"}),\" Minimal to no coding required.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Speed:\"}),\" Accelerates the development process.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Accessibility:\"}),\" Allows non-developers to create applications.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"What are Low-Code and No-Code Platforms?\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/1RewktLlENrKLt2DXLU4T46K7Uk.png\",srcSet:\"https://framerusercontent.com/images/1RewktLlENrKLt2DXLU4T46K7Uk.png?scale-down-to=512 512w,https://framerusercontent.com/images/1RewktLlENrKLt2DXLU4T46K7Uk.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/1RewktLlENrKLt2DXLU4T46K7Uk.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]})]})]});export const richText40=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Development Speed\"})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Traditional Coding:\"}),\" Development can be time-consuming, especially for complex applications, as it involves writing and testing extensive code.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Low-Code/No-Code:\"}),\" Significantly faster as it uses pre-built components and visual tools, reducing development time from months to weeks or even days.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"ol\",{start:\"2\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Customization and Flexibility\"})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Traditional Coding:\"}),\" Offers unmatched customization and flexibility, allowing developers to build tailored solutions without limitations.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Low-Code/No-Code:\"}),\" While highly customizable within its framework, it may struggle with extremely specific or unique requirements.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"ol\",{start:\"3\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Scalability\"})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Traditional Coding:\"}),\" Highly scalable, as developers can optimize the code and architecture to handle growing user bases and data volumes.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Low-Code/No-Code:\"}),\" Generally scalable, but may face limitations depending on the platform's capabilities and how well it integrates with existing systems.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"ol\",{start:\"4\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Cost Efficiency\"})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Traditional Coding:\"}),\" Can be expensive due to the need for skilled developers, longer development cycles, and maintenance costs.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Low-Code/No-Code:\"}),\" Typically more cost-effective as it reduces the need for extensive coding skills and speeds up the development process, lowering labor costs.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"ol\",{start:\"5\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Learning Curve\"})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Traditional Coding:\"}),\" Steep learning curve requiring significant training and experience in programming languages and development practices.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Low-Code/No-Code:\"}),\" Easier to learn and use, making it accessible to business users and non-technical staff.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"ol\",{start:\"6\",children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"h5\",children:/*#__PURE__*/e(\"h5\",{children:\"Use Cases\"})})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Traditional Coding:\"}),\" Suitable for complex, large-scale, and highly customized projects requiring fine control over functionality and performance.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Low-Code/No-Code:\"}),\" Ideal for rapid prototyping, small to medium-sized applications, business process automation, and applications requiring quick deployment.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Comparative Analysis: Code vs. Click\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/wxTN5dqAF6VCZmxz6dCCodmPokA.png\",srcSet:\"https://framerusercontent.com/images/wxTN5dqAF6VCZmxz6dCCodmPokA.png?scale-down-to=512 512w,https://framerusercontent.com/images/wxTN5dqAF6VCZmxz6dCCodmPokA.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/wxTN5dqAF6VCZmxz6dCCodmPokA.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]})]})]});export const richText41=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"h5\",{children:\"Pros\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Unlimited Customization:\"}),\" Full control over the application.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Performance Optimization:\"}),\" Ability to fine-tune performance.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Scalability:\"}),\" Highly scalable with the right architecture.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"h5\",{children:\"Cons\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Time-Consuming:\"}),\" Longer development cycles.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Costly:\"}),\" Higher costs due to skilled labor and time.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Complexity:\"}),\" Requires extensive knowledge and experience.\"]})})]})]});export const richText42=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"h5\",{children:\"Pros\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Speed:\"}),\" Rapid development and deployment.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cost-Effective:\"}),\" Lower development costs.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Accessibility:\"}),\" Non-technical users can build applications.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"h5\",{children:\"Cons\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Limited Customization:\"}),\" Constraints within the platform.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Vendor Lock-In:\"}),\" Dependency on the platform provider.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Scalability Issues:\"}),\" Potential limitations with complex applications.\"]})})]})]});export const richText43=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Qodex.ai represents the next evolution in software development, merging the strengths of traditional coding with the ease of low-code/no-code platforms. By offering a hybrid approach, Qodex.ai enables developers and business users to collaborate seamlessly, accelerating development without sacrificing flexibility or control.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"h5\",{children:\"Key Features of Qodex.ai\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Hybrid Development Environment:\"}),\" Combines visual development tools with the ability to write custom code, providing a balanced approach to application development.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Scalable Architecture:\"}),\" Designed to handle both small-scale projects and large enterprise applications, ensuring scalability as your needs grow.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Integrated Collaboration Tools:\"}),\" Facilitates collaboration between developers and non-technical users, fostering a more inclusive development process.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Advanced Customization Options:\"}),\" Allows for deep customization through coding, while also providing pre-built modules for common functionalities.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"h5\",{children:\"Benefits of Using Qodex.ai\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Efficiency:\"}),\" Accelerates development timelines by leveraging both visual tools and custom coding.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Flexibility:\"}),\" Offers the freedom to customize applications to specific requirements, without the limitations often found in pure low-code/no-code platforms.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cost-Effectiveness:\"}),\" Reduces development costs by minimizing the need for extensive coding while still allowing for complex customizations.\"]})})]})]});export const richText44=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/e(\"p\",{children:\"When deciding between traditional coding, low-code/no-code platforms, or a hybrid solution like Qodex.ai, consider factors such as project complexity, budget, timeline, and team expertise. Complex, large-scale projects may benefit from traditional coding or hybrid platforms, while simpler, time-sensitive projects might be best suited for low-code/no-code solutions.\"})});export const richText45=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/e(\"p\",{children:\"The future of software development will likely see a hybrid approach, combining the strengths of both traditional coding and low-code/no-code platforms. As these platforms evolve, they will offer more advanced features, improved scalability, and better integration with traditional development tools. Platforms like Qodex.ai are at the forefront of this trend, offering a glimpse into the future of inclusive and efficient software development.\"})});export const richText46=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/e(\"p\",{children:\"Both traditional coding and low-code/no-code platforms have their unique advantages and challenges. By understanding their differences and evaluating your specific needs, you can choose the most suitable approach for your software development projects. Hybrid platforms like Qodex.ai offer a promising solution that leverages the best of both worlds, paving the way for more efficient and flexible development processes.\"})});export const richText47=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"In the fast-paced world of software development, API (Application Programming Interface) testing and management are critical. This is where tools like Postman have been game-changers, simplifying the way developers work with APIs. However, as technology evolves, so do the needs of developers. Enter \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" \u2014 the next-generation alternative to Postman, designed to bring AI-powered efficiency to your end-to-end API workflow including automation testing and security.\"]}),/*#__PURE__*/e(\"h3\",{children:\"What Makes Qodex.ai Stand Out?\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"API Automation testing\"}),\": \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" can write your API automation testing by analysing the request and response. These tests take care of everything related to request, response, datatype, code, latency etc and will fail even if there is a minute metadata change in the API. Once the test fails, our priority notification engine notifies the stakeholders to fix it.\"]}),/*#__PURE__*/e(\"div\",{className:\"framer-text-module\",style:{\"--aspect-ratio\":\"560 / 315\",aspectRatio:\"560 / 315\",height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(n,{componentIdentifier:\"module:NEd4VmDdsxM3StIUbddO/bZxrMUxBPAhoXlARkK9C/YouTube.js:Youtube\",children:t=>/*#__PURE__*/e(s,{...t,play:\"Off\",shouldMute:!0,thumbnail:\"Medium Quality\",url:\"https://www.youtube.com/watch?v=K1KBC4xJvKI\"})})})]})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Automation test in plain English: \"}),\"With \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\", any manual QA or a product guy can write automation tests just by writing in plain English. \"]})})}),/*#__PURE__*/e(\"img\",{alt:\"Qodex.ai\",className:\"framer-image\",height:\"126\",src:\"https://framerusercontent.com/images/NtFx1UnVIIenBsJ1zA7k2JhfN0.png\",style:{aspectRatio:\"840 / 253\"},width:\"420\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Instant API documentation\"}),\": \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" can write documentation for your API as well as for the whole collection and folders. Collection documentation will have all the details.\"]})})}),/*#__PURE__*/e(\"img\",{alt:\"Qodex.ai\",className:\"framer-image\",height:\"189\",src:\"https://framerusercontent.com/images/rvTNGqjSZksPTWSSbLJRryof2Ho.png\",style:{aspectRatio:\"740 / 378\"},width:\"370\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Automated API collections\"}),\": With \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" rails gem (\",/*#__PURE__*/e(i,{href:\"https://github.com/qodex-ai/qodex-rails\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"https://github.com/qodex-ai/qodex-rails\"})}),\"), you can easily list your whole collections and keep them updated without any manual or coding effort. \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" gem analyses your logs to build your collection set, write automation tests and auto-document it. It also takes care of securing your API fully with PII data masking.\"]})})}),/*#__PURE__*/e(\"img\",{alt:\"Qodex.ai\",className:\"framer-image\",height:\"190\",src:\"https://framerusercontent.com/images/jWWtL7pcnmrYFh133EY7YT4V6MU.png\",style:{aspectRatio:\"740 / 380\"},width:\"370\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Automated Fuzz Testing\"}),\": \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" uses AI to intelligently perform fuzz testing, which involves inputting vast amounts of random data (fuzz) into your APIs to test their robustness and security. This automated approach allows for more thorough testing in less time, identifying potential vulnerabilities that manual methods might miss.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Efficient Load Testing\"}),\": AI in \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" also transforms how load testing is conducted. By simulating a high volume of users or data requests, the system assesses how your APIs perform under stress. AI algorithms optimize this process, providing faster and more accurate insights into performance bottlenecks.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"User-Friendly Interface\"}),\": The no-code interface of \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" is designed for ease of use. You don't need to be a coding expert to navigate and utilize its full suite of features.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Real-Time Monitoring and Log Analysis\"}),\": \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" continuously monitors your APIs and analyses logs, providing real-time insights into performance and potential issues.\"]})})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText48=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"With \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" (AI copilot for automated API testing), automating your API testing is not just efficient but also intelligent and insightful. By leveraging the power of AI, you ensure that your APIs are not only tested thoroughly but also optimized for peak performance. Within 30 minutes, you can set up a powerful, AI-driven API testing mechanism, ensuring your applications communicate seamlessly, reliably, and efficiently.\"]}),/*#__PURE__*/t(\"p\",{children:[\"So, dive into the world of intelligent API testing with \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai\"})}),\" and ensure your applications are always performing at their best.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText49=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Here are 10 champions ready to crush bugs and deliver website excellence:\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"1. \"}),/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),/*#__PURE__*/e(\"strong\",{children:\":\"}),\"\\xa0The fearless leader,\\xa0commanding automation and AI to perform comprehensive functional,\\xa0API,\\xa0and security testing.\\xa0Leave no stone unturned in your quest for quality.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Qodex.ai\",className:\"framer-image\",height:\"323\",src:\"https://framerusercontent.com/images/jI2VnQERXVQyISv9u03yiG4ojo8.png\",srcSet:\"https://framerusercontent.com/images/jI2VnQERXVQyISv9u03yiG4ojo8.png?scale-down-to=512 512w,https://framerusercontent.com/images/jI2VnQERXVQyISv9u03yiG4ojo8.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/jI2VnQERXVQyISv9u03yiG4ojo8.png 1920w\",style:{aspectRatio:\"1920 / 647\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"2. Selenium:\"]}),\"\\xa0The heavyweight contender,\\xa0offering automation scripts for cross-browser testing.\\xa0A powerful ally for complex testing scenarios.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Selenium\",className:\"framer-image\",height:\"307\",src:\"https://framerusercontent.com/images/VL1wKf1m7m2XZPrihvC3Q1BU0g.png\",srcSet:\"https://framerusercontent.com/images/VL1wKf1m7m2XZPrihvC3Q1BU0g.png?scale-down-to=512 512w,https://framerusercontent.com/images/VL1wKf1m7m2XZPrihvC3Q1BU0g.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/VL1wKf1m7m2XZPrihvC3Q1BU0g.png 1920w\",style:{aspectRatio:\"1920 / 615\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"3. Cypress:\"]}),\"\\xa0The agile ninja,\\xa0ideal for fast,\\xa0easy-to-write tests with built-in debugging.\\xa0Perfect for quick wins and iterative testing.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Cypress\",className:\"framer-image\",height:\"317\",src:\"https://framerusercontent.com/images/EY7VCQQYQGygE7TVuBquChOT4w.png\",srcSet:\"https://framerusercontent.com/images/EY7VCQQYQGygE7TVuBquChOT4w.png?scale-down-to=512 512w,https://framerusercontent.com/images/EY7VCQQYQGygE7TVuBquChOT4w.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/EY7VCQQYQGygE7TVuBquChOT4w.png 1920w\",style:{aspectRatio:\"1920 / 635\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"4. Katalon Studio:\"]}),\"\\xa0The Swiss Army Knife,\\xa0combines automation,\\xa0recording,\\xa0and API testing in one.\\xa0A versatile comrade for diverse needs.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Katalon Studio\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/5Tt83KiNA8IFiTNdEkioCfjaEus.png\",srcSet:\"https://framerusercontent.com/images/5Tt83KiNA8IFiTNdEkioCfjaEus.png?scale-down-to=512 512w,https://framerusercontent.com/images/5Tt83KiNA8IFiTNdEkioCfjaEus.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/5Tt83KiNA8IFiTNdEkioCfjaEus.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"5. WebPageTest:\"]}),\"\\xa0The speed demon,\\xa0analyzing website performance across global locations.\\xa0Identify bottlenecks before users feel them.\"]}),/*#__PURE__*/e(\"img\",{alt:\"WebPageTest\",className:\"framer-image\",height:\"292\",src:\"https://framerusercontent.com/images/AEoAiQSYzGUuf7K70Da74Ebhak.png\",srcSet:\"https://framerusercontent.com/images/AEoAiQSYzGUuf7K70Da74Ebhak.png?scale-down-to=512 512w,https://framerusercontent.com/images/AEoAiQSYzGUuf7K70Da74Ebhak.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/AEoAiQSYzGUuf7K70Da74Ebhak.png 1920w\",style:{aspectRatio:\"1920 / 585\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"6. Accessibility Insights:\"]}),\"\\xa0The inclusivity champion,\\xa0ensuring your website welcomes everyone.\\xa0Build a website for all types of heroes.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Accessibility Insights\",className:\"framer-image\",height:\"379\",src:\"https://framerusercontent.com/images/6ScrYjDcp7EPBbko6YJHEYv4Z3E.png\",srcSet:\"https://framerusercontent.com/images/6ScrYjDcp7EPBbko6YJHEYv4Z3E.png?scale-down-to=512 512w,https://framerusercontent.com/images/6ScrYjDcp7EPBbko6YJHEYv4Z3E.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/6ScrYjDcp7EPBbko6YJHEYv4Z3E.png 1918w\",style:{aspectRatio:\"1918 / 758\"},width:\"959\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"7. BrowserStack:\"]}),\"\\xa0The global explorer,\\xa0testing across different browsers and devices.\\xa0Conquer compatibility challenges with ease.\"]}),/*#__PURE__*/e(\"img\",{alt:\"BrowserStack\",className:\"framer-image\",height:\"317\",src:\"https://framerusercontent.com/images/qgnhcZkBqzUA8LhZ0vHTkcGKA.png\",srcSet:\"https://framerusercontent.com/images/qgnhcZkBqzUA8LhZ0vHTkcGKA.png?scale-down-to=512 512w,https://framerusercontent.com/images/qgnhcZkBqzUA8LhZ0vHTkcGKA.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/qgnhcZkBqzUA8LhZ0vHTkcGKA.png 1920w\",style:{aspectRatio:\"1920 / 634\"},width:\"960\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"8. Sauce Labs:\"}),\"\\xa0The cloud warrior,\\xa0scaling your testing infrastructure on demand.\\xa0No need for on-premise hardware limitations.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Sauce Labs\",className:\"framer-image\",height:\"316\",src:\"https://framerusercontent.com/images/VaAvJ2WFaGOkNvVpdiAyMyro.png\",srcSet:\"https://framerusercontent.com/images/VaAvJ2WFaGOkNvVpdiAyMyro.png?scale-down-to=512 512w,https://framerusercontent.com/images/VaAvJ2WFaGOkNvVpdiAyMyro.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/VaAvJ2WFaGOkNvVpdiAyMyro.png 1920w\",style:{aspectRatio:\"1920 / 633\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"9. Applitools Eyes:\"]}),\"\\xa0The visual detective,\\xa0spotting visual inconsistencies and ensuring pixel-perfect design.\\xa0Leave no UI flaws behind.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Applitools Eyes\",className:\"framer-image\",height:\"291\",src:\"https://framerusercontent.com/images/v0m2X3LvHS3yK0jIJLXEuyRAVE.png\",srcSet:\"https://framerusercontent.com/images/v0m2X3LvHS3yK0jIJLXEuyRAVE.png?scale-down-to=512 512w,https://framerusercontent.com/images/v0m2X3LvHS3yK0jIJLXEuyRAVE.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/v0m2X3LvHS3yK0jIJLXEuyRAVE.png 1920w\",style:{aspectRatio:\"1920 / 583\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"10. Mockoon:\"]}),\"\\xa0The data magician,\\xa0mocking APIs and services for isolated testing.\\xa0Craft your testing scenarios for ultimate control.\"]}),/*#__PURE__*/e(\"img\",{alt:\"Mockoon\",className:\"framer-image\",height:\"270\",src:\"https://framerusercontent.com/images/0QVMtkMXz9nb61ItPq96lO82ZTk.png\",srcSet:\"https://framerusercontent.com/images/0QVMtkMXz9nb61ItPq96lO82ZTk.png?scale-down-to=512 512w,https://framerusercontent.com/images/0QVMtkMXz9nb61ItPq96lO82ZTk.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/0QVMtkMXz9nb61ItPq96lO82ZTk.png 1920w\",style:{aspectRatio:\"1920 / 541\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Qodex.ai\"})})}),/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\" \"})})}),/*#__PURE__*/e(\"strong\",{children:\"is not just a tool, it's a revolution.\"}),\"\\xa0It's the missing piece that transforms your QA team from a group of skilled individuals into a \",/*#__PURE__*/e(\"strong\",{children:\"unified force of testing awesomeness.\"})]}),/*#__PURE__*/t(\"p\",{children:[\"With \",/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai \"})}),\"at your helm,\\xa0you'll:\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Deliver bug-free, lightning-fast websites that users adore.Reduce testing time and free your QA heroes to focus on strategic initiatives.Build a culture of collaboration and shared success.\"})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"So, why settle for ordinary testing when you can unleash the extraordinary?\"}),\"\\xa0Visit \",/*#__PURE__*/e(i,{href:\"https://www.qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai \"})}),\"today and \",/*#__PURE__*/e(\"strong\",{children:\"empower your QA team to become the testing superheroes they were always meant to be.\"}),\"\\xa0\"]})]});export const richText50=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:'In today\\'s digital world, apps are like bustling cities powered by hidden workers called APIs. These \"Application Programming Interfaces\" handle all the behind-the-scenes tasks, fetching data, sending commands, and making your app tick. But what if these workers are vulnerable or prone to making mistakes?'}),/*#__PURE__*/t(\"p\",{children:[\"That's where \",/*#__PURE__*/e(\"strong\",{children:\"API fuzz testing\"}),\"\\xa0comes in, acting like a cybersecurity watchdog. Imagine throwing your API a bag of weird toys: scrambled data, impossible requests, and nonsensical commands. \",/*#__PURE__*/e(\"strong\",{children:\"It's like stress-testing your app's invisible helpers to see if they crack under pressure.\"})]}),/*#__PURE__*/t(\"p\",{children:['\"With the increasing use of APIs in web applications, it has become crucial to ensure that APIs are secure and functioning correctly.',/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"br\",{})})]}),/*#__PURE__*/e(\"h3\",{children:\"API Fuzzing:\"}),/*#__PURE__*/t(\"p\",{children:[\"API fuzzing is a software testing technique that helps detect vulnerabilities in \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/practices-for-automating-rest-api-testing-tutorial\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"APIs\"})}),\". It does this by sending unexpected or invalid input data to the APIs.\"]}),/*#__PURE__*/t(\"p\",{children:[\"API Fuzz Testing is like a cybersecurity superhero for the applications. It involves sending a variety of unexpected and potentially malicious inputs to your API, mimicking the creativity of hackers. \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai \"})}),\"simplifies this process, allowing you to identify vulnerabilities and weaknesses in your API that might go unnoticed in traditional testing.\"]})]});export const richText51=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"There are several types of API fuzzing, each with its approach and benefits. Understanding the different types of API fuzzing can help to choose the right approach for your needs. Let\u2019s look at each one of them:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Black-box fuzzing - \"}),\"This involves testing an API without any knowledge of its internal workings. Testers only have access to the API's public-facing endpoints and test it with unexpected input data.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Grey-box fuzzing - \"}),\"This type of fuzzing involves testing an API with some knowledge of its internal workings. Testers may have access to some parts of the \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/code-vs-click\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"code\"})}),\" or documentation, but still test it with unexpected input data.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"White-box fuzzing - \"}),\"This is a more \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/software-testing-strategies-and-techniques-guide\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"comprehensive testing approach\"})}),\" where testers have access to the source code of the API. They can use this knowledge to create more targeted and sophisticated input data to test the API.\"]})})]})]});export const richText52=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Discovering Hidden Vulnerabilities:\"}),\" API Fuzz Testing goes beyond standard testing by exploring the unexpected. Qodex.ai's advanced capabilities empower you to uncover vulnerabilities that traditional testing might miss.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Enhancing Security Posture:\"}),\" By proactively identifying and fixing vulnerabilities, you strengthen the security posture of your software. Qodex.ai ensures that your API is resilient against potential threats, making your applications more robust and secure.\"]})})]})});export const richText53=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/t(\"strong\",{children:[\"Qodex.ai\",/*#__PURE__*/e(\"br\",{})]})}),/*#__PURE__*/e(\"img\",{alt:\"Qodex.ai - An AI SoftwareTest Engineer\",className:\"framer-image\",height:\"481\",src:\"https://framerusercontent.com/images/gJU3Eag3uHm9MXg7SXgAyTZp9Yw.png\",srcSet:\"https://framerusercontent.com/images/gJU3Eag3uHm9MXg7SXgAyTZp9Yw.png?scale-down-to=512 512w,https://framerusercontent.com/images/gJU3Eag3uHm9MXg7SXgAyTZp9Yw.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/gJU3Eag3uHm9MXg7SXgAyTZp9Yw.png 1920w\",style:{aspectRatio:\"1920 / 962\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:/*#__PURE__*/e(\"br\",{})}),\"Qodex.ai\",/*#__PURE__*/e(\"strong\",{children:\" \"}),\"takes Fuzz Testing to the next level. With its user-friendly interface and automated security checks, \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai \"})}),\"simplifies the fuzz testing process. It ensures that your software stands resilient against unpredictable inputs, enhancing overall security.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Peach Fuzzer \"})}),/*#__PURE__*/t(\"p\",{children:[\"Peach Fuzzer\",/*#__PURE__*/e(\"strong\",{children:\" \"}),\"beats scanners as far as versatility and security. Peach Fuzzer permits clients to observe both known and obscure strings, dissimilar to other testing gadgets that can track down known strings.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Webscarab\"})}),/*#__PURE__*/t(\"p\",{children:[\"Webscarab\",/*#__PURE__*/e(\"strong\",{children:\" \"}),\"is written in Java to make it more straightforward to use at different levels. The Webscarab framework is utilized to deconstruct the application, which communicates utilizing HTTP and HTTPS conventions.\"]})]})]})});export const richText54=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"User-Friendly Interface:\"}),\" \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Qodex.ai \"})}),\"provides a straightforward and accessible platform for Fuzz Testing, making it easy for developers and security professionals alike.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Comprehensive Reporting: \"}),\"Understand the security status of your software effortlessly. Qodex.ai presents results clearly and concisely, saving you from deciphering complex reports.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Automated Security Checks:\"}),\" Let Qodex.ai handle the heavy lifting. With automated security checks, you can focus on building exceptional software while ensuring it stays secure.\"]})})]})});export const richText55=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"(Protecting Your Systems from Hackers)\"})})}),/*#__PURE__*/t(\"p\",{children:[\"Imagine the internet as a vast network of connected devices, each a potential target for cyberattacks. These attacks can cause widespread damage, steal data, disrupt operations, or even hold systems hostage. To prepare for these threats, security teams conduct a simulated attack called penetration testing, or pen testing for short. This involves testing their systems for weaknesses that hackers could exploit. It's like a security drill, helping organisations identify and fix problems before they become real disasters.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"h3\",{children:\"What is Penetration Testing?\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Penetration testing\"}),\", also known as pen testing, is a security exercise where a cybersecurity expert tries to find and exploit weaknesses in a computer system or network. This is done to identify and fix security flaws before malicious actors can exploit them. Think of it like a practice drill for your security defenses.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Example - 'A retail chain hires a pen tester to test the security of its point-of-sale (POS) systems. The pen tester discovers that the POS systems are vulnerable to a malware attack that could steal credit card information from customers. The retail chain implements security measures to protect its POS systems and customer data.'\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"h3\",{children:\"Benefits of penetration testing:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Identify and fix security weaknesses.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Reduce the risk of cyberattacks.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Improve compliance with industry regulations\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]}),/*#__PURE__*/e(\"h3\",{children:\"Types of penetration testing:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Black-box testing:\"}),\" The pen tester has no prior knowledge of the system they are testing.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"White-box testing:\"}),\" The pen tester has access to all of the information about the system they are testing.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Gray-box testing:\"}),\" The pen tester has some information about the system they are testing, but not all.\"]})})]})]});export const richText56=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Planning:\"}),\" The pen tester gathers information about the system, defines the scope of the test, and identifies assets that are off-limits.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Reconnaissance:\"}),\" The pen tester gathers more information about the system, such as IP addresses, open ports, and running services.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Vulnerability scanning:\"}),\" The pen tester uses \",/*#__PURE__*/e(i,{href:\"https://qodex.ai/blog/top-automation-testing-tools\",motionChild:!0,nodeId:\"xUFEuGbVZ\",openInNewTab:!0,scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"automated tools \"})}),\"to scan the system for vulnerabilities, identifying known weaknesses in software, hardware, and the network.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Exploitation:\"}),\" The pen tester attempts to exploit the vulnerabilities they have identified.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Post-exploitation:\"}),\" The pen tester gathers evidence of their exploits and assesses the impact of the vulnerabilities. They provide a report outlining their findings and recommendations for remediation.\"]})})]})});export const richText57=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Penetration testing and vulnerability scanning are both important tools for improving cybersecurity, but they serve different purposes.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Vulnerability scanning\"}),\" is an automated process that identifies known vulnerabilities in a system. It is a good way to get a quick overview of the security posture of a system, but it does not provide a comprehensive assessment of the system's security.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Penetration testing\"}),\" is a manual process that involves trying to exploit vulnerabilities in a system. It is a more thorough way to assess the security of a system, but it is also more time-consuming and expensive.\"]}),/*#__PURE__*/e(\"p\",{children:\"The key differences between penetration testing and vulnerability scanning:\"}),/*#__PURE__*/e(\"img\",{alt:\"Penetration Testing vs.  Vulnernablity Scanning\",className:\"framer-image\",height:\"507\",src:\"https://framerusercontent.com/images/HyiONzw0ZlIB8euKwNNVHGbP8Gk.png\",style:{aspectRatio:\"1718 / 1015\"},width:\"859\"}),/*#__PURE__*/e(\"img\",{alt:\"scanning\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/3PaIDMt0bfJRTGX5YYgneCttUZ8.png\",srcSet:\"https://framerusercontent.com/images/3PaIDMt0bfJRTGX5YYgneCttUZ8.png?scale-down-to=512 512w,https://framerusercontent.com/images/3PaIDMt0bfJRTGX5YYgneCttUZ8.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/3PaIDMt0bfJRTGX5YYgneCttUZ8.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/t(\"strong\",{children:[/*#__PURE__*/e(\"br\",{}),\"Vulnerability scanning\"]}),\" should be used regularly to get a quick overview of the security posture of a system. It is also a good way to identify vulnerabilities that can be easily exploited.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Penetration testing\"}),\" should be used periodically to get a more comprehensive assessment of the security of a system. It is also a good way to identify vulnerabilities that are not easily found by automated scanners.\"]})]});export const richText58=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Phase 1: Planning and Reconnaissance\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Define scope:\"}),\" Determine the systems to be tested and the types of tests to be conducted (black-box, white-box, or gray-box).\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Gather information:\"}),\" Use publicly available sources (e.g., social media, job postings) and internal sources (e.g., network diagrams, documentation) to gather information about the target system.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Identify attack vectors:\"}),\" Analyze the gathered information to identify potential attack vectors, such as open ports, vulnerable software, and social engineering opportunities.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Phase 2: Scanning and Vulnerability Assessment\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Network scanning:\"}),\" Use network scanners to identify open ports, running services, and other network vulnerabilities.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Vulnerability scanning:\"}),\" Use vulnerability scanners to identify known vulnerabilities in the target system's software, hardware, and firmware.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Manual vulnerability assessment:\"}),\" Perform manual testing to validate the findings of the automated scans and identify any additional vulnerabilities that may not be detected by automated tools.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Phase 3: Exploitation\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Select vulnerabilities to exploit:\"}),\" Prioritize the vulnerabilities based on their severity and exploitability.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Develop exploits:\"}),\" Develop or utilize existing exploits to exploit the selected vulnerabilities.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Document exploits:\"}),\" Document the exploits and the steps taken to execute them.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Phase 4: Post-exploitation\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Gather evidence:\"}),\" Gather evidence of the exploits, such as screenshots and logs.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Assess impact:\"}),\" Assess the impact of the exploits on the target system.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Recommend remediation:\"}),\" Recommend remediation measures to address the exploited vulnerabilities.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Phase 5: Reporting and Remediation\"})}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Prepare a report:\"}),\" Prepare a comprehensive report documenting the findings of the penetration test, including the identified vulnerabilities, exploits, and remediation recommendations.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Present findings:\"}),\" Present the findings to the organization's stakeholders, such as the IT team and management.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Remediate vulnerabilities:\"}),\" Collaborate with the IT team to remediate the identified vulnerabilities.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Guide To Do Penetration Testing\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/QzIk66EBuot60tPG76PP11QZw.png\",srcSet:\"https://framerusercontent.com/images/QzIk66EBuot60tPG76PP11QZw.png?scale-down-to=512 512w,https://framerusercontent.com/images/QzIk66EBuot60tPG76PP11QZw.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/QzIk66EBuot60tPG76PP11QZw.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]})]})]})]})});export const richText59=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Nmap: \"}),\"Nmap is an open-source network scanner that is used to identify open ports, running services, and other network vulnerabilities. \",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"NMAP\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/r1Ty7HyBOSkE2F8kXGbdZogSY.png\",srcSet:\"https://framerusercontent.com/images/r1Ty7HyBOSkE2F8kXGbdZogSY.png?scale-down-to=512 512w,https://framerusercontent.com/images/r1Ty7HyBOSkE2F8kXGbdZogSY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/r1Ty7HyBOSkE2F8kXGbdZogSY.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Wireshark: \"}),\"Wireshark is an open-source network protocol analyzer that allows you to capture and analyze network traffic.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Wireshark\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/Y9HiuAcnjMEU9iplQz6F576EbSU.png\",srcSet:\"https://framerusercontent.com/images/Y9HiuAcnjMEU9iplQz6F576EbSU.png?scale-down-to=512 512w,https://framerusercontent.com/images/Y9HiuAcnjMEU9iplQz6F576EbSU.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/Y9HiuAcnjMEU9iplQz6F576EbSU.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]})})]});export const richText60=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"Ever feel like you're constantly logging in to different websites with usernames, passwords, and those CAPTCHAs? \"})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"OpenID Connect (OIDC) aims to simplify this online login struggle, making your life easier and the web more secure. \"})}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is OpenID Connect?\"})}),/*#__PURE__*/t(\"p\",{children:[\"OpenID Connect (OIDC) is \",/*#__PURE__*/e(\"strong\",{children:\"an identity layer built on top of the OAuth 2.0 framework\"}),\". It allows third-party applications to verify the identity of the end-user and to obtain basic user profile information. OIDC uses JSON web tokens (JWTs), which you can obtain using flows conforming to the OAuth 2.0 specifications.\"]}),/*#__PURE__*/e(\"p\",{children:\"Example: \"}),/*#__PURE__*/e(\"p\",{children:\"Imagine you're at a party, and you need to prove your identity to get in. OpenID Connect is like your trusty ID card in the digital world. It's a technology that allows you to prove who you are to websites and apps without sharing sensitive information like your password.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})})]});export const richText61=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"Let\u2019s break it down with a real-life example:\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"=>\"}),\" Meet Bob. He wants to sign up for a new online service called Medium. Instead of creating a new account from scratch, Bob sees the option to sign in with Google. Here\u2019s how OpenID Connect makes this process seamless and secure:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Bob Chooses to Sign in with Google:\"}),'\\xa0Bob clicks the \"Sign in with Google\" button on Medium. This action triggers a behind-the-scenes process.']})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Medium Asks Google to Verify Bob\u2019s Identity:\"}),'\\xa0Medium sends a request to Google, asking, \"Hey, is this person really Bob?\" This request is like asking for verification at the party entrance.']})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Bob Confirms His Identity:\"}),\"\\xa0Google prompts Bob, asking if he wants to allow Medium to know his identity. Bob says yes, confirming that he is indeed Bob.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Google Shares Bob\u2019s Information with Medium:\"}),\"\\xa0After Bob confirms, Google securely sends Medium some basic information about Bob, like his name and email address. It\u2019s like showing your ID card at the party entrance.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Medium Completes Bob\u2019s Sign-Up:\"}),\"\\xa0With the information from Google, Medium creates Bob\u2019s account without needing his password. Bob can now access Medium hassle-free.\"]})})]})]});export const richText62=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Enhanced Security:\"}),\"\\xa0OpenID Connect reduces the risk of password theft and misuse. Bob never shared his password with Medium, making his account more secure.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"User Convenience:\"}),\"\\xa0Bob enjoys a seamless sign-up experience. He doesn\u2019t have to remember another password or go through a lengthy registration process.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Interoperability:\"}),\"\\xa0OpenID Connect is widely supported across various websites and platforms. Bob can use his Google account to sign in to multiple services, saving time and effort.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Reduced Costs:\"}),\" No need to manage complex login systems themselves\"]})})]})});export const richText63=/*#__PURE__*/e(a.Fragment,{children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"OpenID Connect\"}),\" is like an online ID card. It lets you prove who you are to websites without giving away your password. It's like showing your ID at a party \u2013 it's secure, easy, and keeps your info safe.\"]})});export const richText64=/*#__PURE__*/t(a.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"In today's digital age, web applications are crucial for businesses, providing platforms for users to interact, shop, learn, and much more. Ensuring these applications run smoothly and securely is vital. This is where web application testing comes in.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"img\",{alt:\"Qodex.ai\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/1f4zaaxNR2GkI9BdTtuXEPxF2aU.png\",srcSet:\"https://framerusercontent.com/images/1f4zaaxNR2GkI9BdTtuXEPxF2aU.png?scale-down-to=512 512w,https://framerusercontent.com/images/1f4zaaxNR2GkI9BdTtuXEPxF2aU.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/1f4zaaxNR2GkI9BdTtuXEPxF2aU.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"})]});\nexport const __FramerMetadata__ = {\"exports\":{\"richText29\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText27\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText58\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText44\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText64\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText35\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText46\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText8\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText33\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText37\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText50\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText24\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText11\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText19\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText14\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText6\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText31\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText45\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText30\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText7\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText32\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText59\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText13\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText53\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText1\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText54\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText40\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText43\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText48\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText18\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText17\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText16\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText22\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText10\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText36\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText3\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText39\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText55\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText41\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText28\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText23\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText63\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText20\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText51\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText34\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText61\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText9\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText60\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText5\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText21\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText57\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText56\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText52\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText42\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText25\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText26\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText12\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText15\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText38\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText47\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText4\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText49\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText62\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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AAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,UAAY,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,UAAY,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,UAAY,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,UAAY,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,SAAW,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,UAAY,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,WAAa,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,mBAAqB,CAAC,KAAO,UAAU,CAAC,CAAC",
  "names": ["richText", "u", "x", "p", "richText1", "richText2", "richText3", "richText4", "richText5", "Link", "motion", "richText6", "richText7", "richText8", "richText9", "richText10", "richText11", "richText12", "richText13", "richText14", "richText15", "richText16", "richText17", "richText18", "richText19", "richText20", "richText21", "richText22", "richText23", "richText24", "richText25", "richText26", "richText27", "richText28", "richText29", "richText30", "richText31", "richText32", "richText33", "richText34", "richText35", "richText36", "richText37", "richText38", "richText39", "richText40", "richText41", "richText42", "richText43", "richText44", "richText45", "richText46", "richText47", "ComponentPresetsConsumer", "t", "Youtube", "richText48", "richText49", "richText50", "richText51", "richText52", "richText53", "richText54", "richText55", "richText56", "richText57", "richText58", "richText59", "richText60", "richText61", "richText62", "richText63", "richText64", "__FramerMetadata__"]
}
