<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Minh Le (Henry)</title>
    <description>The latest articles on Forem by Minh Le (Henry) (@lengochoangminh).</description>
    <link>https://forem.com/lengochoangminh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1169408%2F4249db2b-242d-4cd2-8d0d-b438f5317a66.png</url>
      <title>Forem: Minh Le (Henry)</title>
      <link>https://forem.com/lengochoangminh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lengochoangminh"/>
    <language>en</language>
    <item>
      <title>How I Built a Playwright Pytest Automation Framework with an AI Assistant</title>
      <dc:creator>Minh Le (Henry)</dc:creator>
      <pubDate>Thu, 02 Apr 2026 03:55:14 +0000</pubDate>
      <link>https://forem.com/lengochoangminh/how-i-built-a-playwright-pytest-automation-framework-with-an-ai-assistant-5adi</link>
      <guid>https://forem.com/lengochoangminh/how-i-built-a-playwright-pytest-automation-framework-with-an-ai-assistant-5adi</guid>
      <description>&lt;h2&gt;
  
  
  Why use an AI assistant
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;"AI won’t replace humans. But humans who use AI will replace those who don’t."&lt;/em&gt; - Sam Altman&lt;/p&gt;

&lt;p&gt;Test automation is a perfect domain for AI augmentation. Much of the early work—boilerplate code, fixtures, selectors, test skeletons—follows predictable patterns. AI assistants can generate these patterns quickly, suggest test flows, and help debug issues, especially when given clear context.&lt;/p&gt;

&lt;p&gt;GitHub Copilot’s ecosystem is built for this. With Instruction files, you can define your architecture and coding rules. With Skills, you can give Copilot new capabilities. With Plugins, you can extend Copilot into domain‑specific workflows like Playwright automation.&lt;/p&gt;

&lt;p&gt;The engineer still owns the architecture, validations, and edge cases. The AI accelerates the repetitive parts.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I used the AI assistant
&lt;/h2&gt;

&lt;p&gt;Working with an AI assistant is like onboarding a new team member. Even the smartest assistant doesn’t automatically understand your project or expectations. You have to teach it how you work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Define the rules with Instruction Files&lt;/strong&gt;&lt;br&gt;
I created Instruction files that described:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture and folder structure&lt;/li&gt;
&lt;li&gt;Naming conventions&lt;/li&gt;
&lt;li&gt;Preferred libraries&lt;/li&gt;
&lt;li&gt;Locator strategy&lt;/li&gt;
&lt;li&gt;Coding style&lt;/li&gt;
&lt;li&gt;Test design principles&lt;/li&gt;
&lt;li&gt;Quality standards
These Instruction files became the “brain” the assistant used to generate consistent code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Equip the assistant with Skills and Plugins&lt;/strong&gt;&lt;br&gt;
To make the AI genuinely useful for Playwright automation, I added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Playwright CLI Skills&lt;/strong&gt;: These give Copilot real browser access, DOM exploration, and the ability to inspect selectors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing Automation Plugin&lt;/strong&gt;: This plugin adds Playwright‑specific workflows, structured test generation, and UI exploration capabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;QA Sub‑Agent&lt;/strong&gt;: A specialized reasoning model tuned for QA tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With these components, I effectively built a custom AI QA automation stack:&lt;br&gt;
•     &lt;strong&gt;QA Sub‑Agent&lt;/strong&gt; → QA‑focused reasoning&lt;br&gt;
•     &lt;strong&gt;Testing Automation Plugin&lt;/strong&gt; → Playwright engine&lt;br&gt;
•     &lt;strong&gt;Playwright CLI Skills&lt;/strong&gt; → Browser tools&lt;br&gt;
•     &lt;strong&gt;Instruction Files&lt;/strong&gt; → My rules and architecture&lt;br&gt;
At this point, the assistant behaved like a junior QA engineer who already understood my framework.&lt;/p&gt;

&lt;p&gt;============================&lt;br&gt;
Example test generation&lt;br&gt;
Here is the kind of prompt I gave the AI assistant:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use the instruction files and explore the website &lt;a href="https://www.target.com/" rel="noopener noreferrer"&gt;https://www.target.com/&lt;/a&gt;, then generate the test for the workflow below&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search for the product "AIWA ARC Noise Cancelling Over Ear Wireless Headphones"&lt;/li&gt;
&lt;li&gt;Add to cart (via Choose Options dialog)&lt;/li&gt;
&lt;li&gt;Verify cart&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;The assistant explored the site, followed the instructions, and produced a test using the Page Object Model, Playwright’s recommended selectors, and Pytest fixtures. It wasn’t a final product, I still reviewed and refined it, but it gave me a strong first draft in minutes instead of hours.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/FTU9VbvpDok"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What worked well
&lt;/h2&gt;

&lt;p&gt;The biggest benefit was speed. I could move from setup to first test execution much faster because the AI assistant handled a lot of the repetitive scaffolding. Another advantage was consistency, since I could ask it to follow the same naming patterns, locator strategy, and fixture style across files, which matches Copilot best practices for maintaining a consistent codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to watch out for
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Speed&lt;/strong&gt;&lt;br&gt;
The biggest win was how quickly I moved from an empty folder to a running test suite. The assistant handled repetitive scaffolding so I could focus on architecture and quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consistency&lt;/strong&gt;&lt;br&gt;
Because I defined my conventions upfront, the assistant generated code that matched my structure, naming patterns, and locator strategy. This aligns with Copilot’s best practices for maintaining a consistent codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reduced Cognitive Load&lt;/strong&gt;&lt;br&gt;
Instead of switching constantly between writing fixtures, designing POMs, and drafting tests, I could offload the mechanical parts and stay focused on higher‑level decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Watch Out For
&lt;/h2&gt;

&lt;p&gt;AI‑generated code still requires human review. Common pitfalls include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brittle or overly specific selectors&lt;/li&gt;
&lt;li&gt;Missing edge cases&lt;/li&gt;
&lt;li&gt;Incorrect assumptions about application behavior&lt;/li&gt;
&lt;li&gt;Over‑generalized test flows when prompts are vague
The more specific the prompt, the better the output. Treat the AI as a fast junior engineer: helpful, but not a substitute for expertise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Using GitHub Copilot’s Instruction files, Skills, and Plugins to build a Playwright + Pytest automation framework is not about replacing engineers—it’s about amplifying them. By combining AI‑generated scaffolding with human review, Playwright best practices, and thoughtful test design, you can dramatically accelerate framework setup without sacrificing quality.&lt;/li&gt;
&lt;li&gt;For teams looking to scale automation quickly, this hybrid workflow turns what used to be a slow, manual process into a streamlined, efficient one. It’s a modern, practical approach to building reliable UI automation at speed.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>python</category>
      <category>testing</category>
    </item>
    <item>
      <title>Simplify API Testing with Postbot: Postman's AI Assistant</title>
      <dc:creator>Minh Le (Henry)</dc:creator>
      <pubDate>Sun, 05 May 2024 10:22:07 +0000</pubDate>
      <link>https://forem.com/lengochoangminh/simplify-api-testing-with-postbot-postmans-ai-assistant-56b</link>
      <guid>https://forem.com/lengochoangminh/simplify-api-testing-with-postbot-postmans-ai-assistant-56b</guid>
      <description>&lt;p&gt;AI continues to pave the way for the future, offering numerous tools to enhance productivity. As a tester, you may have admired the AI tools developers use, such as ChatGPT and GitHub Copilot, and wished for a similar assistant in your software testing process. Postman has heard you and introduced Postbot, an AI assistant that simplifies API workflows in Postman.&lt;/p&gt;

&lt;p&gt;Here's how Postbot can streamline your work in Postman:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Automate API Testing:&lt;/strong&gt; Postbot can add new tests for your API requests and responses, update existing tests, or extract specific fields from responses.&lt;br&gt;
&lt;strong&gt;2. Generate API Documentation:&lt;/strong&gt; Postbot can automatically create comprehensive documentation for your API requests, including request parameters, descriptions, and response examples.&lt;br&gt;
&lt;strong&gt;3. Debug Requests:&lt;/strong&gt; Encountering unexpected errors in your API requests? Postbot can help you identify the root cause and offer solutions.&lt;br&gt;
&lt;strong&gt;4. Visualize Response Data:&lt;/strong&gt; Postbot enables you to display API response data in formats such as tables, charts, or graphs, enhancing cognitive understanding and presentation.&lt;br&gt;
&lt;strong&gt;5. Access Help and Resources:&lt;/strong&gt; Trained on Postman's Learning Center, Postbot can guide you through challenges, offering step-by-step assistance and linking you to detailed resources.&lt;/p&gt;

&lt;p&gt;Let's take a closer look at Postbot's capabilities: 👩‍💻👩‍💻👩‍💻&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xww137kuw2ygignd8xu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xww137kuw2ygignd8xu.png" alt="Image description" width="656" height="1180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To begin, you can ask Postbot to add tests for your API response simply by selecting the "Test for response" option. Postbot will then generate happy path tests for you automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssa25kbym0lfgpep0qu4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssa25kbym0lfgpep0qu4.png" alt="Image description" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Additionally, you can customize prompts using natural language to tailor your tests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flplqoxr670ixfqdkuv32.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flplqoxr670ixfqdkuv32.png" alt="Image description" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The innovation doesn't end there. Postman's Visualizer tool, powered by Postbot, lets you transform request responses into visually engaging representations such as graphs, tables, or charts, enhancing clarity and comprehension.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8lkl6my2qtrxunpsptx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8lkl6my2qtrxunpsptx.png" alt="Image description" width="566" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftnu7213ac39f1obgtmc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftnu7213ac39f1obgtmc9.png" alt="Image description" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy testing! 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Optimizing Performance Testing with Docker: K6, InfluxDB, and Grafana Integration</title>
      <dc:creator>Minh Le (Henry)</dc:creator>
      <pubDate>Wed, 25 Oct 2023 12:18:51 +0000</pubDate>
      <link>https://forem.com/lengochoangminh/dockerizing-k6-influxdb-grafana-dashboard-45p5</link>
      <guid>https://forem.com/lengochoangminh/dockerizing-k6-influxdb-grafana-dashboard-45p5</guid>
      <description>&lt;p&gt;In today's fast-paced software development landscape, performance testing is essential to ensure the reliability and scalability of applications. Docker has emerged as a valuable tool for simplifying the setup and management of performance testing environments. In this article, we'll explore how to leverage Docker to create a powerful performance-testing stack by integrating K6, InfluxDB, and Grafana.&lt;/p&gt;

&lt;h1&gt;
  
  
  Unpacking K6 👩‍💻
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;An open-source load testing tool that makes performance testing easy and productive for engineering teams. It's free, developer-centric, and extensible.&lt;/li&gt;
&lt;li&gt;Ability to write performance tests as code.&lt;/li&gt;
&lt;li&gt;Ability to run in hybrid mode to check for both Frontend &amp;amp; Back end performance test&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Key features of K6 🤔
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Load testing&lt;/li&gt;
&lt;li&gt;Browser testing. Through the k6 browser, you can run browser-based performance testing and catch issues related to browsers only which can be skipped entirely from the protocol level.&lt;/li&gt;
&lt;li&gt;Chaos and resilience testing. You can use k6 to simulate traffic as part of your chaos experiments, trigger them from your k6 tests, or inject different types of faults in Kubernetes with xk6-disruptor.&lt;/li&gt;
&lt;li&gt;Performance and synthetic monitoring&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  A Hands-On Approach 🚀
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;We set up the infrastructure to run the performance test with Grafana K6. Then, we send the test results to InfluxDB and visualize them to the Grafana Dashboard as a Time Series Analysis report.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Make sure that Docker Desktop is installed on your machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Clone the Repository:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/lengochoangminh/hands-on/tree/main/k6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Navigate to the folder K6&lt;/li&gt;
&lt;li&gt;Then launch the infrastructure:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up -d influxdb grafana
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;and execute the test script:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose run k6 run /src/test_scripts/dummy-json/GetSingleProduct.js --insecure-skip-tls-verify
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4okp4foe50lf3yu14dc2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4okp4foe50lf3yu14dc2.png" alt="Execution Logs" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finally, let's open your web browser and navigate to Grafana Dashboard to monitor live test results in Grafana Dashboard at &lt;a href="http://localhost:3000/d/k6/k6-load-testing-results" rel="noopener noreferrer"&gt;http://localhost:3000/d/k6/k6-load-testing-results&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwnkg2kh93gub2i1i5jca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwnkg2kh93gub2i1i5jca.png" alt="Grafana Dashboard" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>performance</category>
      <category>k6</category>
      <category>docker</category>
    </item>
    <item>
      <title>Simplifying Mobile App Testing with Appium 2.0 and Device Farms</title>
      <dc:creator>Minh Le (Henry)</dc:creator>
      <pubDate>Mon, 25 Sep 2023 13:03:19 +0000</pubDate>
      <link>https://forem.com/lengochoangminh/simplifying-mobile-app-testing-with-appium-20-and-device-farms-2d7i</link>
      <guid>https://forem.com/lengochoangminh/simplifying-mobile-app-testing-with-appium-20-and-device-farms-2d7i</guid>
      <description>&lt;p&gt;Setting up a mobile device farm for testing applications can be a daunting task, but recent advancements in tools like Appium 2.0 have made this process much more approachable and efficient. One such tool that stands out is the Appium Device Farm, known for its user-friendly interface and powerful capabilities. Let's walk through the steps to set up and streamline your mobile testing using this incredible tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Prerequisite:&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Before we get started, ensure you have Appium version 2.0.X installed on your system. This is the backbone of our setup, allowing us to manage and interact with the devices effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Installing Appium Plugins&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Let's start by installing essential Appium plugins using the following commands:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;appium plugin install --source=npm appium-device-farm&lt;br&gt;
appium plugin install --source=npm appium-dashboard&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Tracking iOS Device Events&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
For tracking iOS device events like device plugging and unplugging, we'll use the 'go-ios' module. Install it using npm:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;npm install -g go-ios&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To ensure seamless integration, set the 'GO_IOS' environment variable. Open your .zshrc or equivalent file and add the following line:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;export GO_IOS="/usr/local/lib/node_modules/go-ios/dist/go-ios-darwin-amd64_darwin_amd64/ios"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Completing the Installation&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
With the plugins and necessary modules installed, we're almost ready to start using the setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Starting the Appium Server&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Connect your physical devices to the server or utilize simulators. Start the Appium server using the following command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;appium server -ka 800 --use-plugins=device-farm,appium-dashboard -pa /wd/hub --plugin-device-farm-platform=both&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This command kickstarts the server and sets it up to use the plugins for managing the device farm effectively.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxypzd8p38l0fd5hf5ral.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxypzd8p38l0fd5hf5ral.png" alt="Image description" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Accessing the Dashboard&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Voilà! You're now all set. Access the dashboard to monitor device availability at &lt;a href="http://localhost:4723/device-farm/" rel="noopener noreferrer"&gt;http://localhost:4723/device-farm/&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F55zrh9lyo0i1apsatfam.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F55zrh9lyo0i1apsatfam.png" alt="Image description" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Running a Basic Demo Test&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Let's run a simple demo test to ensure everything is working smoothly. Below is a basic demo test using Appium to interact with an iOS application on an iPhone 14 simulator.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class IOSBasicDemo {

    protected static IOSDriver driver = null;
    public WebDriverWait wait;

    @BeforeMethod
    public void setup() throws MalformedURLException {

        XCUITestOptions options = new XCUITestOptions();
        options.setDeviceName("iPhone 14");
        options.setPlatformVersion("16.4");

        String appPath = System.getProperty("os.name").equals("Windows 10") ? "\\apps\\TheApp.app" : "/apps/TheApp.app";
        options.setApp(System.getProperty("user.dir") + String.format(appPath, ""));

        driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), options);
        wait = new WebDriverWait(driver, Duration.ofSeconds(10));
    }

    @Test()
    public void TestScenario() throws InterruptedException {
        wait.until(ExpectedConditions.visibilityOfElementLocated(new AppiumBy.ByAccessibilityId("Photo Demo"))).click();
        Thread.sleep(3000);
    }

    @AfterMethod
    public void teardown() {
        driver.quit();
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;Exploring the Appium Device Farm Dashboard&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
The Appium Device Farm dashboard offers a comprehensive view of your testing environment. From execution video capture to device logs and debug logs for troubleshooting, it provides crucial insights to enhance your testing experience.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp35j2jnu65temvk8zp7w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp35j2jnu65temvk8zp7w.png" alt="Image description" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A huge shoutout to the contributors at the &lt;a href="https://github.com/AppiumTestDistribution/appium-device-farm" rel="noopener noreferrer"&gt;Appium Device Farm GitHub repository&lt;/a&gt; for their dedication and efforts, in making mobile testing more accessible and efficient!&lt;/p&gt;

&lt;p&gt;Happy testing with Appium Device Farm! 🚀&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
