Automation Step by Step

Automation Step by Step

Simple Basic Beginners Step-by-Step tutorials ❤️

I create videos on Automation, Testing, DevOps, CI and related tools, technologies and platform

Raghav is a teacher and founder of AutomationStepByStep.com
He was an Automation Architect and has led multiple teams of Automation and DevOps Engineers. For over a decade, Raghav witnessed, worked, and delivered multiple Automation Testing Projects and worked with some awesome people in this industry

► automationstepbystep.com/

Some topics covered:
- Jenkins
- JMeter
- Selenium
- Appium
- Cypress
- Playwright
- Katalon Studio
- API Testing
- Postman
- Docker
- Kubernetes
- Other DevOps topics

Words from Raghav
We often need someone to hold our hand and help us take the first few steps before we learn to walk and run. I am on a mission to spread education and make it available to anyone willing to learn

Never Stop Learning
Raghav

All education here is FREE FOR ALL, FOREVER

Share with as many people as you can in your lifetime

Пікірлер

  • @anirbanchatterjee5942
    @anirbanchatterjee59423 минут бұрын

    What is the main purpose of modules? First, I thought it would create inside parent instance, but it creates another one. Could you please explain the point?

  • @ramiworkstation
    @ramiworkstation6 минут бұрын

    Thank you very very very much for the lesson. What I like the most about your videos is that you teach in a calm and relatively slow pace. Which in my opinion is the key for successful learning. I send you love and blessing. Big like and subscribe from me. 🌻

  • @RaghavPal
    @RaghavPal4 минут бұрын

    Thanks a lot Rami.. humbled

  • @Tony_stark551
    @Tony_stark5512 сағат бұрын

    Is this the end of the playlist if yes is this much enough to work on postman api

  • @RaghavPal
    @RaghavPal8 минут бұрын

    Tony This is enough to work on any project of Postman. Please follow all tutorials with hands-on

  • @PankajSaw-wz3kn
    @PankajSaw-wz3kn9 сағат бұрын

    Good Teaching skills

  • @RaghavPal
    @RaghavPal9 минут бұрын

    Thanks Pankaj

  • @alexpulido2431
    @alexpulido243111 сағат бұрын

    if you end up with a vagrantfile inside the .vagrant.d/boxes then what happened with the originial vagrantfile you started with ?

  • @RaghavPal
    @RaghavPal4 минут бұрын

    Alex When you end up with a `Vagrantfile` inside the `.vagrant.d/boxes` directory, it's important to understand what's happening. Let me break it down for you: 1. Vagrant Boxes: - Vagrant boxes are pre-configured virtual machine images that serve as the foundation for your development environments. - When you create a new Vagrant environment (using `vagrant init` or by copying an existing project), Vagrant will download and install the specified box (if it's not already installed) into the `.vagrant.d/boxes` directory on your local machine - The `.vagrant.d/boxes` directory contains subdirectories for each box, where the actual box files reside. 2. Vagrantfile: - The `Vagrantfile` is a configuration file that defines how your Vagrant environment should be set up. - It specifies details such as the base box, network settings, provisioning scripts, and more. - When you run `vagrant up`, Vagrant reads the `Vagrantfile` and creates the virtual machine according to the defined configuration. 3. What Happens to the Original `Vagrantfile`?: - The original `Vagrantfile` you started with remains unchanged. - It continues to reside in the project directory where you initially ran `vagrant init` or created your Vagrant environment. - The `Vagrantfile` in the `.vagrant.d/boxes` directory is not related to your project-specific `Vagrantfile`. 4. Multiple Vagrant Environments: - You can run multiple Vagrant environments concurrently, each with its own `Vagrantfile`. - If you want to manage several independent Vagrant environments from a single `Vagrantfile`, you have a couple of options: - Separate Projects: Create separate project directories for each environment, each with its own `Vagrantfile`. This keeps them completely separated. - Multi-Machine Environment: Use a single project with a multi-machine setup in your `Vagrantfile`. Define an array of hashes, each representing a different machine configuration (e.g., web server, database server). Iterate through the array to define the configurations for each machine¹. - Note that if you run multiple instances of the same project, you'll need multiple copies of the project directory because Vagrant stores the box state in the `.vagrant` directory under the project¹. In summary, the original `Vagrantfile` remains intact in your project directory, and the one inside `.vagrant.d/boxes` is unrelated to your project-specific configuration --

  • @alexpulido2431
    @alexpulido243111 сағат бұрын

    if Vagrant is a Virtual Machine why does it need Virtual box ?

  • @RaghavPal
    @RaghavPal6 минут бұрын

    Alex Vagrant is an open-source tool. Its primary purpose is to simplify the process of creating, configuring, and managing development environments. VirtualBox is an open-source virtualization platform that allows you to create and manage virtual machines (VMs) on your host operating system (OS). It provides a way to run multiple guest OS instances within a single host OS. Vagrant integrates with various virtualization providers (such as VirtualBox, VMware, and Hyper-V) to create and manage VMs based on the defined configuration In summary, Vagrant and VirtualBox work together to streamline the process of managing VMs, making it easier for developers to create consistent and reproducible development environments --

  • @sagarregmi7975
    @sagarregmi797516 сағат бұрын

    Hi Raghav, Can you please make one video to resolve this issue -May 31, 2024 2:47:42 PM cucumber.api.cli.Main run WARNING: You are using deprecated Main class. Please use io.cucumber.core.cli.Main 0 Scenarios 0 Steps 0m0.030s

  • @RaghavPal
    @RaghavPal9 минут бұрын

    Sagar The error message you're encountering-"WARNING: You are using deprecated Main class. Please use io.cucumber.core.cli.Main"-indicates that the `cucumber.api.cli.Main` class is deprecated, and you should use the `io.cucumber.core.cli.Main` class instead. To resolve this issue, follow these steps: 1. Update Your Dependencies: - Make sure you're using the latest version of Cucumber in your project. Outdated versions may still reference the deprecated class. - Update your `pom.xml` (if you're using Maven) or your build.gradle (if you're using Gradle) to use the latest Cucumber dependencies. 2. Replace the Main Class: - In your Cucumber runner class (usually named something like `TestRunner`), change the import statement for the main class from: ```java import cucumber.api.cli.Main; ``` to: ```java import io.cucumber.core.cli.Main; ``` 3. Recompile and Run: - Recompile your project to ensure that the changes take effect. - Run your Cucumber tests again. The warning should no longer appear. Remember to verify your project configuration and ensure that you're using the correct dependencies --

  • @jensharbers5620
    @jensharbers562017 сағат бұрын

    Bought a course from Udemy and I did not grasp the fundamentals. I found your video about Terraform for free and I got all concepts at the first try. Amazing

  • @RaghavPal
    @RaghavPal10 минут бұрын

    So happy to know it helped Jens.. keep learning

  • @sweetydas3508
    @sweetydas350819 сағат бұрын

    I have watched many videos, including those on Udemy, but I couldn't get a clear understanding of the concepts anywhere. As a beginner, whenever I watch your videos, I understand everything very well. You explain things in a very simple language and in an excellent manner, which is very beneficial for beginners like me. Dil se shukriya.

  • @RaghavPal
    @RaghavPal11 минут бұрын

    So happy and humbled to read this.. Thanks Sweety

  • @AzimKhoja
    @AzimKhoja22 сағат бұрын

    Hello, Raghav. I have completed all the steps on the real device, but I got this error when launching Appium: Failed to create session. An unknown server-side error occurred while processing the command. Original error: Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 65 xcodebuild error message

  • @RaghavPal
    @RaghavPal13 минут бұрын

    Azim I understand that you're encountering an issue with launching WebDriverAgent in Appium due to an xcodebuild failure with error code 65. Let's troubleshoot this together The error message you're seeing indicates that there's a problem with building WebDriverAgent, which is essential for running Appium tests on real iOS devices. Here are some steps you can take to resolve this issue: 1. Check Code Signing and Certificates: - Ensure that you've set up the correct code signing identities and provisioning profiles for your WebDriverAgent project. Double-check the project settings in Xcode to make sure everything is configured properly. - If you're unsure about code signing, follow the tutorial provided by the Appium team for configuring real devices: Appium Real Device Configuration appium.github.io/appium-xcuitest-driver/7.15/preparation/real-device-config/ 2. Remove Existing WebDriverAgentRunner: - Sometimes, an existing WebDriverAgentRunner application on the device can cause conflicts. Try removing it from the device (if it's already installed) and then reboot the device. - You can uninstall the WebDriverAgentRunner using the following command: ``` xcrun simctl uninstall <device-udid> com.facebook.WebDriverAgentRunner ``` Replace `<device-udid>` with the actual UDID of your device. 3. Clean Build and Rebuild: - Clean your Xcode build by selecting "Product" > "Clean Build Folder" in Xcode. - Rebuild the WebDriverAgent project by running the following command from the WebDriverAgent directory: ``` xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=<device-udid>' test ``` Again, replace `<device-udid>` with your device's UDID. 4. Check for Deprecated Warnings: - If Xcode shows any warnings related to deprecated features, address them. Sometimes, these warnings can lead to exit code 65. - To prevent Xcode from showing deprecated warnings, go to Xcode > File > Workspace Settings, and check the box that says "Do not show diagnostic issues about build system deprecation." 5. Temporary Fix: - There's a temporary fix available for xcodebuild failed with code 65. stackoverflow.com/questions/55559885/running-command-xcodebuild-exited-with-error-code-65 Remember to verify each step carefully, and hopefully, one of these solutions will resolve the issue --

  • @ThiyaVlogs534
    @ThiyaVlogs53423 сағат бұрын

    Is playwright free?..

  • @RaghavPal
    @RaghavPal15 минут бұрын

    Yes

  • @mrityunjoymandal1716
    @mrityunjoymandal1716Күн бұрын

    Thank you so much sir. I am got 13 out of 15 in quiz. 🙂

  • @RaghavPal
    @RaghavPal16 минут бұрын

    Well done Mrityunjoy

  • @raghuprasadkonandur7955
    @raghuprasadkonandur7955Күн бұрын

    Very Good video on terraform. Glad that you are sharing content and github project. Very useful. Create videos on kubernetes.

  • @RaghavPal
    @RaghavPal16 минут бұрын

    Thank you Raghu, Kubernetes are already present, can check here - automationstepbystep.com/

  • @xXMrThomasXx
    @xXMrThomasXxКүн бұрын

    You are the best teacher :) Thank you for all your work, this part is very usefull. I go to the part 5 :)

  • @RaghavPal
    @RaghavPal17 минут бұрын

    You're very welcome

  • @SouravKumarDey-rh5fn
    @SouravKumarDey-rh5fnКүн бұрын

    Hello Raghav Sir, While running this , I am getting below error. Can you please guide me with this PS D:\Vs-Code> npx playwright test .\tests\example.spec.js Error: No tests found. Make sure that arguments are regular expressions matching test files. You may need to escape symbols like "$" or "*" and quote the arguments. To open last HTML report run: npx playwright show-report PS D:\Vs-Code>

  • @RaghavPal
    @RaghavPal17 минут бұрын

    Sourav The error message you're encountering, "No tests found," is a common issue when running Playwright tests. It typically occurs due to configuration or path-related problems. Let's troubleshoot this together! Here are some steps you can take to resolve it: 1. Check Your Test File Path: - Ensure that the path to your test file (`example.spec.js`) is correct. - Double-check that the file exists in the specified location (`.\tests\example.spec.js`). - Make sure there are no typos or missing directories in the path. 2. Use Correct File Paths: - When specifying the test file path, use forward slashes (`/`) instead of backslashes (`\`) to separate directories. - Example: ```sh npx playwright test ./tests/example.spec.js ``` 3. Quotes and Special Characters: - If your test file path contains spaces or special characters, enclose it in double quotes. - Example: ```sh npx playwright test "./tests/my test file.spec.js" ``` 4. Escape Symbols: - If your test file path contains symbols like `$` or `*`, escape them using a backslash (`\`). - Example: ```sh npx playwright test "./tests/my\$test\*file.spec.js" ``` 5. Check Test File Content: - Ensure that your `example.spec.js` file contains valid test cases. - Verify that you have defined test functions (e.g., `it`, `test`, or `describe`) within the file. - If the file is empty or doesn't contain any tests, you'll encounter the "No tests found" error. 6. Update Playwright: - Make sure you're using an up-to-date version of Playwright. - Run the following command to check your current version: ```sh npx @playwright/test --version ``` - If needed, update Playwright to the latest version: ```sh npm install @playwright/test@latest ``` 7. Install Browsers: - Ensure that you've installed the necessary browsers (Chromium, Firefox, or WebKit) for Playwright. - Run the following command to install browsers: ```sh npx playwright install ``` 8. Run the Test Again: - After making the necessary adjustments, try running your test again: ```sh npx playwright test ./tests/example.spec.js ``` Remember to adapt the commands above to match your specific file paths and test file names --

  • @user-zh9si1zp9l
    @user-zh9si1zp9lКүн бұрын

    Hello Raghav how can we pass test data in background tag i have one scenario which repeated so decided to used background but with statement i have to pass test data can you give any reference i tried it but it not work. please any who can help me in this.

  • @RaghavPal
    @RaghavPal19 минут бұрын

    Pawan When using Cucumber with Selenium Java, the `Background` section in your feature file allows you to define common steps that run before each scenario within that feature. However, passing test data directly into the `Background` section is not directly supported. The `Background` steps are meant to set up the initial state of the system under test and should not change for each scenario That said, there are a few approaches you can take to achieve your goal: 1. Predefined Data in Background Steps: - Define your test data (e.g., usernames, passwords, search queries) as constants or variables in your step definitions. - In the `Background` section, use these predefined values for common steps (e.g., logging in). - Example: ```gherkin Feature: Test Background Background: Given User is Logged In And User has a valid product in the cart Scenario: Search a product and add it to the cart When User searches for a product And adds the product to the cart Then the cart should display the added item ``` 2. Scenario Outline with Examples: - If your repeated scenario involves variations of the same steps with different data, consider using a `Scenario Outline` with an `Examples` table. - Example: ```gherkin Feature: Test Background Background: Given User is Logged In Scenario Outline: Search a product and add it to the cart When User searches for "<product>" And adds the product to the cart Then the cart should display the added item Examples: | product | | Lenovo Laptop | | iPhone | ``` 3. Data Tables in Steps: - If you need dynamic data for each scenario, use data tables within your steps. - Example: ```gherkin Feature: Test Background Background: Given User is Logged In Scenario: Search a product and add it to the cart When User searches for a product And adds the product "<product>" to the cart Then the cart should display the added item Examples: | product | | Lenovo Laptop | | iPhone | ``` - In your step definitions, extract the data from the data table: ```java @When("^User searches for a product$") public void user_searches_for_product(DataTable dataTable) { List<Map<String, String>> data = dataTable.asMaps(String.class, String.class); String product = data.get(0).get("product"); // Perform search based on the product } ``` Remember that the `Background` section is primarily for setting up the context, and dynamic test data should be handled within the individual scenarios. Choose the approach that best fits your requirements and keeps your feature files clean and maintainable --

  • @jacksonvirgili4584
    @jacksonvirgili4584Күн бұрын

    Hi Raghav, congratulations for your good content! I tried to change permanently but when I open the .zshrc , it says its locked and have this content in. Do you by any chance what it means? ___________________________________________________________________________________________ # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/opt/anaconda3/etc/profile.d/conda.sh" ]; then . "/opt/anaconda3/etc/profile.d/conda.sh" else export PATH="/opt/anaconda3/bin:$PATH" fi fi unset __conda_setup # <<< conda initialize <<<

  • @RaghavPal
    @RaghavPal23 минут бұрын

    Jack The content you've shared is part of the initialization script for Conda, a popular package manager and environment management system for Python. Let's break it down: 1. Conda Initialization: - The block you posted is automatically added to your shell configuration file (`.zshrc` in this case) when you install Conda. - It ensures that Conda is properly initialized when you open a new terminal session. 2. Explanation of the Content: - The script begins with `# >>> conda initialize >>>` and ends with `# <<< conda initialize <<<`. - It checks whether Conda is already set up (`__conda_setup="$('/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"`). - If Conda is set up, it evaluates the setup (`eval "$__conda_setup"`). - If Conda is not set up, it checks if the file `/opt/anaconda3/etc/profile.d/conda.sh` exists. If it does, it sources that file (`. "/opt/anaconda3/etc/profile.d/conda.sh"`). - If neither of the above conditions is met, it adds Conda's binary directory to the system `PATH` (`export PATH="/opt/anaconda3/bin:$PATH"`). 3. What It Means for You: - This script ensures that Conda is available in your shell environment. - If you're using Conda for managing Python packages or creating virtual environments, this initialization is essential. - The `.zshrc` file is locked because it's a system file, and macOS protects it from accidental modifications. 4. Adding Environment Variables Permanently: - To add environment variables permanently, you can modify your `.zshrc` file. - Open the file using a text editor (e.g., `nano ~/.zshrc` or `code ~/.zshrc`). - Add your environment variables (e.g., `export MY_VARIABLE="some_value"`). - Save the file and restart your terminal or run `source ~/.zshrc` to apply the changes. Remember to replace `"some_value"` with the actual value you want for your environment variable --

  • @MdFarhan-zy7qs
    @MdFarhan-zy7qsКүн бұрын

    Hats off ✌🏻✌🏻✌🏻🤗

  • @RaghavPal
    @RaghavPal24 минут бұрын

    Thanks Farhan

  • @lailabernardon443
    @lailabernardon443Күн бұрын

    Local server would work for automation test that are executed on jenkins pipeline?

  • @RaghavPal
    @RaghavPal24 минут бұрын

    Laila It will help if you can give more clarity and details on this.. in general Running automation tests on a local server within a Jenkins pipeline is possible

  • @salim3600
    @salim3600Күн бұрын

    Dear Sir, This is excellent, and your way of explaining is awesome. Do you have a playlist for 'Playwright with C#'? I look forward to your reply!

  • @RaghavPal
    @RaghavPal27 минут бұрын

    Thanks Salim, not as of now, I will plan on it, can check all playlists here - automationstepbystep.com/

  • @DeepakRai
    @DeepakRai2 күн бұрын

    Great session

  • @RaghavPal
    @RaghavPal22 сағат бұрын

    Thanks Deepak

  • @pratnadeepbiswas539
    @pratnadeepbiswas5392 күн бұрын

    How can it help in cross browser and Cross platform testing ?

  • @RaghavPal
    @RaghavPal22 сағат бұрын

    Pratnadeep Testim is an automated testing tool that can assist you with both cross-browser and cross-platform testing. Let me break it down for you: 1. Cross-Browser Testing: Testim allows you to run parallel web tests across different browsers. You can test your application on popular browsers like Chrome, Firefox, and others. This ensures that your product functions correctly regardless of the browser your users choose¹ 2. Cross-Platform Testing: Testim also supports cross-platform testing by allowing you to execute mobile tests on physical or virtual devices in the cloud or third-party grids --

  • @sachinade5703
    @sachinade57032 күн бұрын

    Hi Raghav sir. I am using Cypress for testing a web application. I am facing some issues while testing a tooltip present on a high chart. I am trying to hover over a specific point on high chart. After hovering over that particular point the tooltip associated with that point should be visible. But this expected behavior cannot be seen after executing my script. Can you please try this scenario. Thanks.

  • @RaghavPal
    @RaghavPal22 сағат бұрын

    Sachin Testing tooltips in Cypress can be a bit tricky, especially when dealing with dynamic content like high charts. Let's break down the steps to achieve this: 1. Hover Over the Chart Point: - First, you need to simulate hovering over the specific point on the high chart. You can use the `trigger` command to trigger a mouse event (e.g., `mouseenter`) on the chart element. - For example: ```javascript cy.get('.highcharts-point') // Replace with the actual selector for the chart point .trigger('mouseenter'); ``` 2. Wait for Tooltip to Appear: - After triggering the hover event, you'll need to wait for the tooltip to appear. Use the `should` command to assert that the tooltip is visible. - For example: ```javascript cy.get('.highcharts-tooltip') // Replace with the actual selector for the tooltip .should('be.visible'); ``` 3. Verify Tooltip Content: - Once the tooltip is visible, you can verify its content. Use the `contains` assertion to check if it contains the expected text. - For example: ```javascript cy.get('.highcharts-tooltip') .should('contain', 'Expected Tooltip Text'); ``` 4. Complete Example: - Here's a complete example combining the steps: ```javascript cy.get('.highcharts-point') // Replace with the actual selector for the chart point .trigger('mouseenter'); cy.get('.highcharts-tooltip') // Replace with the actual selector for the tooltip .should('be.visible') .should('contain', 'Expected Tooltip Text'); ``` 5. Additional Considerations: - Ensure that your selectors are accurate. Inspect the chart and tooltip elements using Cypress DevTools to find the correct identifiers. - If the tooltip's component cannot be captured or located, consider using alternative approaches like capturing the tooltip content directly from the DOM or using custom events. Remember to adapt the selectors and text according to your specific application --

  • @sivatirumani531
    @sivatirumani5312 күн бұрын

    Thanks for video. Explanation is good

  • @RaghavPal
    @RaghavPal22 сағат бұрын

    You are welcome Siva

  • @vikum08
    @vikum082 күн бұрын

    Hi Rahav When I am running 'npm run pretest' I am always getting this error "unknown option: -r" My code is - "pretest": "rimraf -r ./cypress/reports/*.json", and I already install "rimraf" too. Can you help me to resolve this issue plz?

  • @RaghavPal
    @RaghavPal22 сағат бұрын

    Vikum Here are few things you can check for the issue with the "unknown option: -r" error when running `npm run pretest`. 1. Incorrect Usage of `rimraf`: - The issue lies in the usage of `rimraf`. The `-r` flag is not valid for `rimraf`. - `rimraf` is used to delete files and directories, but it doesn't require the `-r` flag. Instead, it automatically handles recursive deletion. - To fix this, remove the `-r` flag from your script. 2. Update Your Script: - Modify your `package.json` script to remove the `-r` flag: ```json "scripts": { "pretest": "rimraf ./cypress/reports/*.json" } ``` - Now, running `npm run pretest` should work as expected. 3. Run the Command: - After updating your script, execute `npm run pretest` again. 4. Additional Notes: - If you encounter any other issues, ensure that you have the correct version of `rimraf` installed (`npm install rimraf --save-dev`). - Also, make sure that the path to your `.json` files is correct. Remember to remove the `-r` flag from your script, and your `pretest` command should work without any errors -

  • @gokilasingaravelu834
    @gokilasingaravelu8342 күн бұрын

    Raghav you are the best tutor ever.. Thank you so much..

  • @RaghavPal
    @RaghavPal22 сағат бұрын

    You're most welcome Gokila.. humbled

  • @vimalvikas9102
    @vimalvikas91022 күн бұрын

    Hi Raghav, whenever i run the test below error comes, not able to fix, please guide me, Error: No tests found. Make sure that arguments are regular expressions matching test files. You may need to escape symbols like "$" or "*" and quote the arguments.

  • @RaghavPal
    @RaghavPal22 сағат бұрын

    Vimal The "Error: No tests found" message can be frustrating, but it is usually caused by a simple configuration issue. Let's troubleshoot this together! Here are some steps you can follow to resolve the issue: 1. Check Your Test File Path: - Ensure that the path to your test files is correct. Double-check the location of your test files and make sure they are accessible. - If you're using relative paths, ensure that they are relative to the root directory of your project. 2. Naming Convention: - Make sure your test files follow a consistent naming convention. Playwright looks for files with names ending in `.spec.ts` by default. - If your test files have a different naming pattern, you can specify the file pattern explicitly when running tests. 3. Configuration: - Verify your configuration settings. Sometimes, misconfigured settings can lead to this error. - Check if you have any custom configuration files (e.g., `playwright.config.js` or `.playwrightrc.json`) that might affect test discovery. 4. Escape Special Characters: - If your test file names contain special characters like "$" or "*", make sure to escape them properly. - For example, if your test file is named `test$.spec.ts`, you should run it as `npx playwright test test\\$.spec.ts`. 5. Quoting Arguments: - If your test file path contains spaces or other characters that need quoting, make sure to enclose the path in quotes. - For example, if your test file is in a folder named "My Tests," run it as `npx playwright test "My Tests/test.spec.ts"`. 6. Update Playwright: - Ensure you're using an up-to-date version of Playwright. Sometimes, older versions may have issues. - Update Playwright using `npm install @playwright/test@latest`. 7. Install Browsers and Dependencies: - Run `npm ci` in your project's root directory to install dependencies. - Then run `npx playwright install --with-deps` to install browsers and their dependencies. 8. Run Your Tests: - Finally, execute your tests using `npx playwright test`. Hopefully, one of these steps will help you resolve the issue. --

  • @vimalvikas9102
    @vimalvikas910222 сағат бұрын

    Hi@@RaghavPal , thanks for your detailed reply, I will check and confirm the status.

  • @STD2580
    @STD25802 күн бұрын

    For real device we have concept of Signing certificates and apple developer account. It will be helpful if you make a video of it. Hard to find detail explanation on that. Thanks

  • @RaghavPal
    @RaghavPal22 сағат бұрын

    Ok I will try

  • @STD2580
    @STD25802 күн бұрын

    Hi Raghav, Thanks for iOS session. whenever i am using idevice related commands it says Library not loaded /usr/local/opt/libusbmuxd/libusbmuxd-2.0.6.dylib and also in your videos you told about "usbmuxd" but it says it has been updated to "libusbmuxd"

  • @RaghavPal
    @RaghavPalКүн бұрын

    Sudheer Let's address the issue related to libusbmuxd and its connection to iOS devices in your Appium setup. 1. What is libusbmuxd? - libusbmuxd is a client library used to multiplex connections from and to iOS devices alongside command-line utilities. - It provides an interface to handle the usbmux protocol, which is essential for communication with iOS devices. - The library itself does not establish a direct connection with a device; instead, it connects to a socket provided by the usbmuxd daemon. 2. usbmuxd Daemon: - The usbmuxd daemon runs on macOS and Windows (after installing iTunes) and provides the necessary socket for communication. - However, on Linux or as an alternative to iTunes, the libimobiledevice project offers an open-source reimplementation of the usbmuxd daemon. - This allows you to communicate with iOS devices without installing iTunes. 3. Your Issue: - You mentioned encountering the error message: "Library not loaded /usr/local/opt/libusbmuxd/libusbmuxd-2.0.6.dylib." - This error occurs when the system cannot find the required library file. 4. Troubleshooting Steps: - First, ensure that you have libusbmuxd installed. You can do this using Homebrew: ``` brew install libimobiledevice ``` - Next, check your environment variables. If the library is installed but not found, try setting the `DYLD_LIBRARY_PATH`: ``` export DYLD_LIBRARY_PATH=/path/to/dylib ``` Replace `/path/to/dylib` with the actual path where libusbmuxd is located. - Finally, run your Python interpreter or Appium tests again. 5. Appium and libusbmuxd: - Appium uses the appium-ios-device package, which is a rewrite of libimobiledevice in Node.js. - This package allows Appium to talk directly to the phone over usbmuxd. Remember to adjust the paths and environment variables according to your system configuration. --

  • @Venkateshvenky-vy1dd
    @Venkateshvenky-vy1dd2 күн бұрын

    Playwright with java is best rather than javascript because in JavaScript we cannot use Oops concept

  • @RaghavPal
    @RaghavPalКүн бұрын

    Venkatesh - If you prefer a strong OOP foundation and want to leverage Java's capabilities, Playwright with Java is an excellent choice for web automation. - However, if you're comfortable with JavaScript and its unique features, you can still achieve effective automation using Playwright with JavaScript. Remember to choose the combination that aligns best with your skills and project requirements --

  • @Venkateshvenky-vy1dd
    @Venkateshvenky-vy1dd2 күн бұрын

    Why not playwright with java

  • @RaghavPal
    @RaghavPalКүн бұрын

    Ofcourse.. I will plan to make sessions on that

  • @Venkateshvenky-vy1dd
    @Venkateshvenky-vy1dd2 күн бұрын

    Which one best for java or JavaScript to use playwright

  • @RaghavPal
    @RaghavPalКүн бұрын

    Venkatesh Both are good, its the users choice and project requirements that you will have to go with

  • @GigioR
    @GigioR2 күн бұрын

    A very well spoken and super informative series of tutorials, this has been helping me so much as I'm learning, thank you!!!

  • @RaghavPal
    @RaghavPalКүн бұрын

    Great to know this.. keep learning

  • @hassanmajeed5742
    @hassanmajeed57422 күн бұрын

    Hello Sir , Can you please tell me why this problem arise after next step of install plugin every one plugin get error (red cross) and i try everystep 3 times every time this happened please tell me how to correct this

  • @RaghavPal
    @RaghavPalКүн бұрын

    Hassan I will need more details and specifics when and where is this coming. can you show me the timestamp in the video where its happening

  • @hassanmajeed5742
    @hassanmajeed57422 күн бұрын

    Hello Sir , Can you please tell me why this problem arise after next step of install plugin every one plugin get error (red cross) and i try everystep 3 times every time this happened please tell me how to correct this

  • @RaghavPal
    @RaghavPalКүн бұрын

    Hassan I will need more details and specifics when and where is this coming. can you show me the timestamp in the video where its happening

  • @sagarregmi7975
    @sagarregmi79752 күн бұрын

    Hi Raghav, very nice. Can you help me with the error message-May 29, 2024 8:42:40 AM cucumber.api.cli.Main run WARNING: You are using deprecated Main class. Please use io.cucumber.core.cli.Main May 29, 2024 8:42:40 AM io.cucumber.core.runtime.FeaturePathFeatureSupplier get WARNING: No features found at file:/C:/Users/sregm/eclipse-workspace/CucumberFramework/Features/L.Feature 0 Scenarios 0 Steps 0m0.097s

  • @RaghavPal
    @RaghavPalКүн бұрын

    Sagar The error message you're encountering indicates that you're using a deprecated Main class in your Cucumber setup. To resolve this issue, follow these steps: 1. Update Your Dependencies: Make sure you're using the latest version of Cucumber. Deprecated classes are often replaced with newer ones in subsequent releases. Check your `pom.xml` (if you're using Maven) or your build.gradle (if you're using Gradle) to ensure you're using the latest Cucumber version. 2. Replace Deprecated Main Class: Instead of using `cucumber.api.cli.Main`, switch to `io.cucumber.core.cli.Main`. This updated class should be used for running your Cucumber tests. You can do this by specifying the new Main class in your test runner configuration. 3. Configuration Update: If you're using an IDE like IntelliJ IDEA or Eclipse, update your run configuration to use `io.cucumber.core.cli.Main` as the entry point for your Cucumber tests. In IntelliJ IDEA, you can do this by editing the Run/Debug Configurations and setting the "Main class" to `io.cucumber.core.cli.Main`. 4. Recompile and Run: After making these changes, recompile your project and run your Cucumber tests again. The warning about the deprecated Main class should no longer appear. Remember to check your project's dependencies and ensure that you're using the most up-to-date versions --

  • @divakarkannan2372
    @divakarkannan23722 күн бұрын

    Excellent bro thanks lots

  • @RaghavPal
    @RaghavPalКүн бұрын

    Welcome Divakar

  • @Summer___________
    @Summer___________2 күн бұрын

    First search for playwright and I found you I am a manual tester and my company is switching to automation and this is what they are planning to use . I hope this will help me achieve my goals. Thank you

  • @RaghavPal
    @RaghavPalКүн бұрын

    Welcome aboard.. yes this should help you and let me know if you face any issues

  • @Summer___________
    @Summer___________Күн бұрын

    @@RaghavPal thank you 🙏🏽

  • @xXMrThomasXx
    @xXMrThomasXx2 күн бұрын

    Good part, thx. Time to part4 :)

  • @RaghavPal
    @RaghavPalКүн бұрын

    Glad to know this is helping.. keep learning

  • @ravik1154
    @ravik11542 күн бұрын

    Hi Raghav, how can we get the list of services from the network tab from each screen via automation, I am currently using selenium 4.12

  • @RaghavPal
    @RaghavPalКүн бұрын

    Ravi To retrieve network logs and inspect services from the network tab using Selenium 4.12, you have a few options. Let's explore them: 1. Using Chrome DevTools Integration: - Selenium 4.12 has deepened its integration with Chrome DevTools, allowing you to access advanced features like network throttling and resource blocking⁷. - To get network logs, you can use the Chrome DevTools protocol. Here's how you can do it using Python and Chrome: ```python from selenium import webdriver # Set up Chrome options with logging preferences chrome_options = webdriver.ChromeOptions() chrome_options.set_capability("goog:loggingPrefs", {"performance": "ALL", "browser": "ALL"}) # Initialize the Chrome driver driver = webdriver.Chrome(options=chrome_options) # Visit your website, perform actions, etc. # Get the performance logs (network logs) log_entries = driver.get_log("performance") for entry in log_entries: try: obj_serialized = entry.get("message") obj = json.loads(obj_serialized) message = obj.get("message") method = message.get("method") if method in ["Network.requestWillBeSentExtraInfo", "Network.requestWillBeSent"]: # Process the network request data as needed print("Request data:", message) except Exception as e: pass ``` 2. Using BrowserMobProxy: - If you want to capture network requests asynchronously throughout the usage of a page, consider using BrowserMobProxy. It acts as a proxy server for your Selenium driver and captures all network requests. - You can then extract the captured requests from BrowserMobProxy's generated HAR (HTTP Archive) file - Install BrowserMobProxy using `pip install browsermob-proxy`. - Download the BrowserMobProxy binary from [here](bmp.lightbody.net/) and unzip it to a folder. - Configure your Selenium driver to use BrowserMobProxy as a proxy server. Remember to adapt these approaches to your specific use case and language bindings --

  • @TheBharathibalaji
    @TheBharathibalaji2 күн бұрын

    Hi Raghav sir, I am getting an error "running tests requires PLUS subscription". Please sign in/subscribe

  • @RaghavPal
    @RaghavPalКүн бұрын

    Bharathi Where exactly and when are you getting this. tell me the timestamp

  • @TheBharathibalaji
    @TheBharathibalajiКүн бұрын

    @@RaghavPal I have added dependencies in pom.xml in intellij. When I execute the feature file, I get the error as mentioned above

  • @mazharkhatri779
    @mazharkhatri7792 күн бұрын

    Thanks for sharing, do you have any practical examples videos

  • @RaghavPal
    @RaghavPalКүн бұрын

    Mazhar The initial steps of POC includes checking on the viable options and then using the filtered tools, platforms for a use-case Now if you have done this and have some filtered options, to do the next steps i.e. practically using it, you can check the list of tools, platforms here - automationstepbystep.com/

  • @varshaj8646
    @varshaj86462 күн бұрын

    I have used UUID to a variable in the request body of POST request..How to extract that variable generated value from the request body after execution and store it for the sampler request in next thread group?

  • @RaghavPal
    @RaghavPalКүн бұрын

    Varsha To extract the dynamically generated UUID value from the request body in JMeter and use it in a subsequent thread group, follow these steps: 1. Extract the UUID Value: - In your JMeter test plan, add a Regular Expression Extractor or a JSON Extractor to the sampler that generates the UUID. These extractors allow you to capture specific values from the response. - Configure the extractor to capture the UUID value from the response body. Specify the appropriate regular expression or JSON path expression to match the UUID format. - Store the extracted value in a JMeter variable (e.g., `${UUID}`). 2. Pass the Variable to the Next Thread Group: - To pass the extracted UUID value to a subsequent thread group, you have a few options: - User Defined Variables: - Add a User Defined Variables element at the test plan level. - Define a variable (e.g., `UUID`) with the extracted value. - This variable will be accessible across thread groups. - Inter-Thread Communication: - Use the Inter-Thread Communication PreProcessor. - Set the variable in one thread group and retrieve it in another. - Property File: - Write the UUID value to a property file using a BeanShell PostProcessor or a JSR223 PostProcessor. - In the next thread group, read the value from the property file using a BeanShell PreProcessor or a JSR223 PreProcessor. 3. Reference the Variable in the Next Thread Group: - In the subsequent thread group, reference the `${UUID}` variable wherever you need it (e.g., in the request body of another sampler). - JMeter will replace `${UUID}` with the actual value extracted during execution. Remember to adjust the variable names and configurations according to your specific test plan. This approach ensures that the dynamically generated UUID is available for use in subsequent thread groups. Happy testing --

  • @mairaghaffar3845
    @mairaghaffar38453 күн бұрын

    my score 24/25 :)

  • @RaghavPal
    @RaghavPal3 күн бұрын

    Great Maira.. keep it up

  • @user-ws3lf2zd9w
    @user-ws3lf2zd9w3 күн бұрын

    i just tried same as your methood to login OrangeHRM but i found 7 result are passed and 7 are failed please let me know where i was wrong

  • @RaghavPal
    @RaghavPal3 күн бұрын

    Ali, will be difficult to say without looking at your tests and setup.. I will suggest to check all the steps again and also see some online examples

  • @NileshLotekar
    @NileshLotekar3 күн бұрын

    How to connect devices with jmeter? I need to test my native application performance Please provide steps Waiting for your response

  • @RaghavPal
    @RaghavPal3 күн бұрын

    Nilesh To connect your Android mobile device to JMeter and test your native application's performance, follow these steps: 1. Install JMeter: - Make sure you have JMeter installed on your system. - Ensure that your mobile device is on the same network as your system. 2. Configure JMeter Proxy: - Open JMeter on your system. - Right-click on the "Workbench" and select "Add" > "Non-Test Elements" > "HTTP(S) Test Script Recorder." - Set the port for the HTTP(S) Test Script Recorder (e.g., 8087). 3. Get Your Computer's IP Address: - Find your computer's IP address (you can use the `ipconfig` command on Windows or `ifconfig` on Unix-based systems). 4. Configure Your Android Mobile Device: - Open the Wi-Fi settings on your mobile device. - Long-tap on the connected Wi-Fi network and select "Modify network." - Check the "Show advanced options" checkbox. - Change the proxy settings to "Manual." - Set the proxy hostname to your computer's IP address (from step 3). - Set the port number to the one you specified in JMeter (e.g., 8087). - Click "Save." 5. Record the Mobile Application in JMeter: - Start the HTTP(S) Test Script Recorder in JMeter. - Open the application on your mobile device that you want to test (e.g., login functionality). - Perform the testing scenario, and JMeter will record the application actions. - Stop the HTTP(S) Test Script Recorder. 6. Correct the Recorded Script: - Review the recorded script and make any necessary corrections. - Now you can run the script for load testing. Remember to turn off the proxy on your mobile device when you're done testing --

  • @tuangkarombang5315
    @tuangkarombang53153 күн бұрын

    18:31 Hello Sir why you have a comment when you run codegen as record

  • @RaghavPal
    @RaghavPal3 күн бұрын

    it gets generated with codegen.. not sure if it happens in latest versions too