1 | Appium Step by Step | Basic Setup on Windows and Mac OS
HTML-код
- Опубликовано: 28 июн 2024
- All Free Tutorials 🟢 AutomationStepByStep.com/
All Parts - • Appium 2 Beginner Tuto...
APPIUM 2 Changes
From appium 2.x onwards, the communication will happen over w3c protocol
Appium drivers are maintained separately, so need to install on a need basis
Introduced appium plugins, so different communities or individuals can create code blocks to add/alter certain appium commands which can talk with the appium drivers
Migrating from Appium 1.x to Appium 2.x
appium.io/docs/en/2.0/guides/...
Appium Basic Setup on Windows and Mac OS
00:00 Introduction
00:48 Topics
03:39 Appium 2 Changes
06:15 Appium Basic Setup on Windows and Mac OS
07:32 Step 1 - Check if Node.js is installed and setup node -v npm -v
08:43 Step 2 - If not, download & install Node.js nodejs.org/en/download/
14:05 Step 3 - Check if appium is available on the system appium --version or appium -v
15:18 Step 4 - Install Appium via NPM npm install -g appium@latest
Installing Appium 2.0 only installs the Appium server, but not the drivers since all drivers have been isolated from the Appium server app
We will Install the Appium UiAutomator2 Driver for Android and Appium XCUITest Driver for iOS separately
22:43 Step 5 - Verify appium is available on the system appium -v which appium where appium
23:56 Step 6 - Run command appium to get information on our installed appium (CTRL + C to quit)
26:12 Step 7 - Install appium-doctor (optional) npm install -g appium-doctor
Appium Doctor is a handy tool from Appium team that serves as a pre-flight check for Appium test environment
Attempts to diagnose and fix common Node, iOS and Android configuration issues appium-doctor -h
29:37 Step 8 - Check and install required appium drivers as per the our testing needs
Run command to see available drivers appium driver list (works on appium 2.0 or later)
appium plugin list
Install Appium driver Android: appium driver install uiautomator2
iOS: appium driver install xcuitest
Check: appium driver list
Update: appium driver list --updates
32:02 Step 9 : Run appium server appium
appium --allow-cors
Press Ctrl+C to stop appium server
--allow-cors: This is a flag that tells the Appium server to enable CORS - Cross-Origin Resource Sharing (CORS) enabled
You might need to use this command if you're using a testing framework that runs on a different domain than the Appium server.
For example, if you're using the Appium Inspector to record and edit test scripts, you'll need to start the Appium server with CORS enabled if the Inspector is running on a different domain
This works on Appium 2.x versions
34:46 Summary
APPIUM 2.0 SETUP CHECKLIST
Node.JS
Appium Server
Appium Doctor (optional)
Check Appium Drivers (android/ios)
Run appium server and check
Document - docs.google.com/document/d/e/...
▬▬▬▬▬▬▬
Every Like & Subscription gives me great motivation to keep working for you
You can support my mission for education by sharing this knowledge and helping as many people as you can
If my work has helped you, consider helping any animal near you, in any way you can
Never Stop Learning
Raghav Pal
▬▬▬▬ USEFUL LINKS ▬▬▬▬
Ask Raghav - bit.ly/2CoJGWf
Shorts Eng - bit.ly/3H9bifV
GitHub Repositories - github.com/Raghav-Pal
Udemy - automationstepbystep.com/udem...
Stories - automationstepbystep.com/stor...
▬▬ MOBILE TESTING ▬▬
Appium - bit.ly/2ZHFSGX
Mobile Playlist - bit.ly/2PxpeUv
▬▬ CI | CD | DEVOPS ▬▬
Jenkins Beginner - bit.ly/2MIn8EC
Jenkins Tips & Trick - bit.ly/2LRt6xC
Docker - bit.ly/2MInnzx
Jenkinsfile - bit.ly/3JSMSZ7
Kubernetes - bit.ly/2MJIlMK
Vagrant - bit.ly/3MVKdBt
Ansible - bit.ly/3MUsY3h
▬▬ UI TESTING ▬▬
Selenium Beginners - bit.ly/2MGRS8K
Selenium Java Framework from Scratch - bit.ly/2N9xvR6
Selenium Python - bit.ly/2oyMp5x
Selenium 4 - bit.ly/3AiJOlP
Katalon Studio - bit.ly/2wARFdi
Robot Framework with RIDE- bit.ly/2Px6Ue9
Robot Framework with Eclipse - bit.ly/2N8DZxb
Cucumber BDD - bit.ly/3Cnno4z
Cypress - bit.ly/3PpEukM
Playwright - bit.ly/3iuPByJ
WebdriverIO - bit.ly/3IJyofA
XPath & Web Locators - bit.ly/3PpEvoQ
▬▬ API TESTING ▬▬
Web Services (API) - bit.ly/2MGafL7
SoapUI - bit.ly/2MGahmd
Postman 2022 - bit.ly/3JWm4qX
Rest Assured - bit.ly/3zUdhRD
Karate API Testing - bit.ly/3w3H5Ku
JMeter API Testing - bit.ly/3AgVPar
Katalon Studio API Testing - bit.ly/2BwuCTN
API Mocking - bit.ly/3bYPsjS
-
Document link - docs.google.com/document/d/e/2PACX-1vRnTmwDeynRlYUu9ib-jtkH7Ukas7TWyd0ww-aS6itEKjhXWCaGeI72fJ_0MIwrHG4oCK140Iv7iwBy/pub#h.eoqr2a4ylhfk
I tried several intructors in RUclips for QA. But you and Pavan are the only two for me... Thanks a ton for your support.
Glad to hear that Helen.. keep learning
Waiting for this Appium 2 series for a long. Thank you so much bhai.
Most welcome Hitesh
Thank you! Waiting for the next session!
Most welcome Ven. Coming tomorrow.. here.. ruclips.net/video/dVTZpsNINM8/видео.html
Everything was very clear and easy to understand. Thank you. This is by far the best video I've come across regarding automation. ❤
Most welcome Indumini.. Thanks for the kind words.. humbled
Thank you for clear instruction on setup😀 Waiting for next 1
Sure coming today evening Vivek
Love your tutorials, they are great start for begginers!
Thanks a lot Stanislav
You deserve a thumb-up 👍for an awesome job and how you simplify things.
Thank you so much Marwan
Thank you , Waiting for next session
coming tomorrow Nazra, here - ruclips.net/video/dVTZpsNINM8/видео.html
Great Series 👌 Can you Please make a series for Appium with Python?
I will plan Hamza
Thanks a lot!!!
Most welcome Alexander
good job fren
Thanks a lot
Why 3 videos are hidden please make them open. Excellent explanation sir❤❤ keep uploading videos on mobile testing.
They are in the process Shailesh... will get soon
@@RaghavPal Thank you so much sir for replying ❤️❤️❤️.
Thankyou
Most welcome
Hey thank you for posting video for version 2.x Personal request from my side to you please upload this series on regular basis.
I will try my best
@@RaghavPal please do upload this series on regular basis
@@divyadoddagoudar5153 why.
Your lectures are undoubtedly very informative and provide ample opportunities for learning. Could you please upload Masterclasses on Appium similar to the ones you did for Cypress?
& Could you please explain how to implement Appium with Visual Studio Code?
Thanks Ahtisham .. I will plan on this
❤️❤️
Thanks Vishwajit
Sir, please make daily videos on appium.
I will try my best on this
Can you please make tutorial videos on how to automate desktop applications using appium in windows/Mac
I will plan on this Pravalika
HI Raghav, It is really very good content. Is it possible to cover Windows application Automation using Appium2?
I will plan Vishal
Thanks Raghav....
Now this is super clear end to end
i have a current issue Raghav
I just joined a company as a solo qa engineer... But now we are currently faced with an issue a s the back end admin is facing downtime, load time issues... I have 2 years of experience in qa, but the companies I have worked with, barely faced these issues... Kindly help... How do I tackle this (my job is on the line)
Facing backend admin downtime and load time issues can be challenging, especially when you're the sole QA engineer. Let's break down the situation and explore some steps to tackle it:
1. Assess the Situation:
- Understand the severity of the issue. Is it affecting critical functionality or causing significant delays?
- Gather information about the specific symptoms, error messages, and patterns of downtime.
- Communicate with the backend team to get insights into the root cause.
2. Identify Potential Causes:
- Server Load: High server load can lead to performance issues. Check if the backend servers are overloaded
- Bugs or Code Issues: Investigate whether there are any recent code changes that might be causing issues.
- Database Performance: Slow database queries can impact load times.
- Infrastructure: Consider factors like network latency, server configuration, and resource allocation.
3. Load Testing:
- Perform load testing to simulate heavy traffic and identify bottlenecks.
- Use tools like JMeter or Gatling to stress-test the backend.
- Monitor server resources (CPU, memory, disk I/O) during load testing.
4. Review Backend Code:
- Collaborate with developers to review backend code.
- Look for inefficient queries, loops, or resource-intensive operations.
- Optimize code where necessary.
5. Database Optimization:
- Optimize database queries by adding indexes, avoiding unnecessary joins, and using caching.
- Consider database sharding or partitioning if data volume is high.
6. Caching Strategies:
- Implement caching mechanisms (e.g., Redis, Memcached) to reduce database load.
- Cache frequently accessed data to improve response times.
7. Monitoring and Alerts:
- Set up monitoring tools (e.g., Prometheus, Grafana) to track server performance.
- Configure alerts for abnormal behavior (e.g., high CPU usage, memory leaks).
8. Scalability and Redundancy:
- Explore options for scaling horizontally (adding more servers) or vertically (upgrading existing servers).
- Consider redundancy (failover servers) to handle unexpected downtime.
9. CDN (Content Delivery Network):
- Use a CDN to distribute static content (images, CSS, JS) globally and reduce load on the backend.
10. Profiling and Debugging:
- Profile backend code to identify bottlenecks.
- Use tools like New Relic, Xdebug, or FlameGraphs.
11. Communication and Documentation:
- Document your findings, steps taken, and solutions.
- Communicate transparently with stakeholders, including management, about the issue and progress.
12. Collaborate with Backend Team:
- Work closely with backend developers to troubleshoot and resolve issues.
- Foster a collaborative environment to find solutions together.
Remember that solving backend performance issues is a team effort. Don't hesitate to seek help from colleagues or online communities. Your proactive approach and problem-solving skills will make a difference
@@RaghavPal thanks alot Raghav, i knew i could count on you
Raghav which program language is your explaining for appium?
Pavan
in this series I have focussed on the complete setup of android and ios with appium that is independent of any language.. You will have to select one language when you start creating the project after the setup... In my earlier Appium series i used Java.. can check all here - automationstepbystep.com/
what is the best way to start mobile native app automation using Maven or Robot framework?
Sushma
Starting mobile native app automation involves setting up a robust framework. Here are some steps to get you started:
1. Choose Your Tools:
- Appium: An open-source test automation framework for native, hybrid, and mobile web apps. It supports iOS, Android, and Windows apps using the WebDriver protocol
- Maven: A build automation tool that manages dependencies and compiles your code.
- TestNG: A testing framework that allows parallel execution and easy test configuration.
2. Project Setup:
- Create a new Maven project.
- Configure the `pom.xml` file with dependencies for Appium, TestNG, and Allure Reports.
3. Appium Configuration:
- Implement a configuration class that initializes the `AppiumDriver` instance based on desired capabilities.
- Specify device information, platform details, app path, and other configurations.
- Use runtime environment variables to dynamically create the driver for local or cloud-based devices.
4. TestNG Test Cases:
- Create test classes with annotated methods representing different test scenarios.
- Leverage the Page Object Model (POM) and create an abstract class at the screen level to handle common functionality between Android and iOS applications.
- Use a business logic layer to handle logical parts of tests (e.g., entering data, validating results).
5. Test Data and Configuration:
- Store test data and environment configurations in JSON files for better organization.
- Implement a JSON reader to fetch data from files.
6. TestNG XML Configuration:
- Create a TestNG XML configuration file to control the test runner and manage test suites.
- Define test suites, specify test classes, and set test parameters in the XML file.
- Use runtime environment variables to select the operating system (Android or iOS) for testing.
7. Test Context for Data Passing:
- Use a test context object or container to hold shared data or objects across different test cases.
- Pass information between test methods by storing and retrieving data from the test context.
8. Maven Build and Execution:
- Run the Maven build command to compile the code and resolve dependencies.
- Execute tests using the `mvn test` command, triggering the TestNG runner defined in the XML configuration.
9. Allure Reports Integration:
- Integrate Allure Reports for better test reporting and visualization¹.
Remember, adapt these steps based on your specific project requirements. Happy automating
--
@@RaghavPal Thank you very much
Sir can you also make appium with Python series it will really help us
Plz sir make it
I will plan for it Manoj
@@RaghavPal thankyou sir
Hi Raghav
First of all, I would like thank you for posting this video.
It would be great, if you could post the second tutorial as well.
After going through the video, I was able to upgrade to Appium from 2x from Appium 1x. However, still facing "--allow-cors" issue. I am unable to resolve it even after so many attempts..
Node version: v20.12.2
Npm version: v 10.5.0
Appium : v2.5.3
Is above installation alright or should I downgrade it?. Please let us know.
Thanks
Shyamsundar
It looks like you're encountering an issue related to the `--allow-cors` flag in Appium. Let's address this!
The `--allow-cors` flag is used to enable Cross-Origin Resource Sharing (CORS) headers in the Appium server. Without this flag, you might face connectivity issues when trying to use Appium Inspector or interact with your app.
Here are a couple of steps you can take to resolve this issue:
1. Add the `--allow-cors` Flag:
Start your Appium server with the `--allow-cors` flag. You can do this by running the following command in your terminal:
```
appium --allow-cors
```
This instructs the server to send the correct CORS-related headers, making it possible to create a session
2. Check Your Appium Version:
Ensure that you're using the same version of Appium globally as well as in your project. Sometimes version mismatches can cause issues. You can check your global Appium version using:
```
appium -version
```
If needed, install the same version of Appium in your project using npm. For example:
```
npm install -g appium@next
```
This should help resolve the problem
Remember to restart your Appium server after making any changes. If you encounter this issue with a cloud provider, they might need to apply the fix on their side, as they host the Appium server
Give these steps a try, and hopefully, it will resolve the `--allow-cors` issue for you
@@RaghavPal
Thanks for responding.
I read through the following document
Link 1: appium.io/docs/en/2.4/quickstart/requirements/
The above document says that Node.js version in the SemVer range ^14.17.0 || ^16.13.0 || >=18.0.0
So I installed node js v18.20.2 & npm v10.5.0.
After that i executed the command
npm i -g appium. The appium v2.5.4 got installed. Along with this installed Appium-Inspector-windows-2024.3.1-x64
After that, i executed the command appium --allow-cors. & then opened the appium inspector.
Still i am facing the following.
Error
Could not connect to Appium server URL '127.0.0.1:4723/wd/hub'. Please check if the server is running and the URL is correct (valid URLs can be found at the start of the Appium server log). If you are using the Inspector's browser version, ensure the server has been started with '--allow-cors'.
I am unable to install the uiautomator 2.
Here are my questions, kindly request you to help me with same.
What is node js version that we need to install in order to support appium v2.5.4?.
What is appium inspector version which we need to install to support v2.5.4
what is the additional drivers that we need to install to support android automation.
Shyam
1. Node.js Version for Appium v2.5.4:
- Appium v2 currently claims support for Node.js versions v14.0.0 and newer.
- The project is considering limiting the support for non-"active" Node.js LTS releases (those in "maintenance" mode) to the latest minor version¹
- As of this writing, the latest minor version of the maintenance LTS line is v14.20.0.
2. Appium Inspector Version for Appium v2.5.4:
- To use Appium Inspector with Appium v2.5.4, you should download the latest release of Appium Inspector.
- As of now, the latest release is v2024.3.4
3. Additional Drivers for Android Automation:
- For Android automation, you'll need the UiAutomator2 driver.
- UiAutomator2 is a test automation framework for Android devices that automates native, hybrid, and mobile web apps.
- It's part of the Appium mobile test automation tool and operates within the scope of the W3C WebDriver protocol.
- To add the UiAutomator2 driver to your Appium 2 distribution, use the following command:
```
appium driver install uiautomator2
```
- Make sure you meet the prerequisites for UiAutomator2, including having the Android SDK Platform tools installed, setting up the Android emulator or real devices, and ensuring the correct Java JDK version¹.
Remember to follow the installation steps carefully
@@RaghavPal
Thank you so much for your time & patience. The issue got resolved.
Hai raghav, is it appium just only can using with java? Cannot using javascript?
Appium is not limited to Java; you can definitely use JavaScript as well
Appium supports multiple programming languages that have Selenium client libraries, including JavaScript with Node.js
@RaghavPal i need help in installing & integrating eclipse with appium
Trapti
Certainly! Let's get you started with installing and integrating Appium Studio for Eclipse. This lightweight plugin allows you to kick off your Appium testing using real devices directly from Eclipse. Here are the steps:
1. Installation of Appium Studio for Eclipse:
- Prerequisites:
- Ensure you have Eclipse version 4.6 or higher installed.
- Sign up for a SeeTest Digital Assurance Lab account (it provides access to remote devices).
- Two Installation Options:
- Eclipse Marketplace:
1. Inside Eclipse, go to Help ➡️ Eclipse Marketplace.
2. Search for "Appium Studio" and click Install.
3. Agree to the User Agreement and allow Eclipse to reboot.
- Install from File:
1. [Download the Appium Studio for Eclipse installation file] www.softwaretestinghelp.com/appium-studio-for-eclipse-tutorial-12/
2. In Eclipse, navigate to Help ➡️ Install New Software....
3. Click Add, then select the downloaded zip file.
4. Choose STAE (SeeTest Automation Eclipse), accept terms, and click Finish.
2. Connecting to Remote Mobile Devices:
- Register for the SeeTest Digital Assurance Lab to access real Android and iOS devices.
- Generate an access key (username, password, and project name) to connect to the lab.
- Develop and execute Appium tests on these devices while monitoring in real time.
--
I am getting an error when I type npm -v saying that - Error: Cannot find module 'C:\Program Files
odejs
ode_modules
pm\bin
ode_modules
pm\bin
pm-prefix.js' and
Error: Cannot find module 'C:\Program Files
odejs
ode_modules
pm\bin
ode_modules
pm\bin
pm-cli.js'
What should I do?
Aishwarya
The error message you're encountering indicates that Node.js/npm is having trouble locating certain modules. Let's troubleshoot this issue step by step:
1. Check Node.js Installation:
- First, ensure that Node.js is correctly installed on your system.
- You can download Node.js from the official website and follow the installation instructions for your operating system.
2. Verify npm Installation:
- Open a command prompt or terminal window.
- Type `npm -v` and press Enter.
- If you see the version number (e.g., "7.24.0"), then npm is installed and accessible from the command line.
3. Check npm Global Installation Path:
- The error message suggests that npm is looking for modules in a specific path (`C:\Program Files
odejs
ode_modules
pm\bin
ode_modules
pm\bin`).
- Verify that this path exists on your system.
- If not, you may need to reinstall npm globally:
- Open a command prompt or terminal as an administrator.
- Run the following command to uninstall npm globally:
```
npm uninstall -g npm
```
- Then reinstall npm globally:
```
npm install -g npm
```
4. Check PATH Environment Variable:
- Ensure that the directory containing npm (usually `C:\Program Files
odejs`) is added to your system's PATH environment variable.
- To check:
- Open the System Properties (you can search for it in the Start menu).
- Go to the Advanced tab and click on the Environment Variables button.
- In the System Variables section, find the Path variable and click Edit.
- Add the path to the directory where npm is installed (e.g., `C:\Program Files
odejs`) to the list of paths. Separate multiple paths with semicolons.
- Click OK to save the changes.
- Restart your command prompt or terminal for the changes to take effect.
5. Clear npm Cache:
- Sometimes, cached data can cause issues. Try clearing npm's cache:
```
npm cache clean --force
```
6. Reinstall Node.js and npm:
- If none of the above steps work, consider uninstalling Node.js completely and then reinstalling it.
- Make sure to remove any remnants of the previous installation.
@@RaghavPal It worked👍
Thank you so much 😊
Hey cannot find the document that you are referring in the description.Can you please comment the link and pin it would be very helpful.
Thanks
Mayank
it's added in the descsription
tinyurl.com/Appium2-Part-1
Also pinned
video sound is low sir
Yes Nitin, a little low, with high sound it was taking some background noises.. so i adjusted to optimum level. Can keep your system or video player volume to high and if needed can use headphones..
@@RaghavPal Sure sir
Unable to install uiautomator2
× Installing 'uiautomator2' using NPM install spec 'appium-uiautomator2-driver'
Error: × Encountered an error when installing package: npm command 'install --save-dev --no-progress --no-audit --omit=peer --save-exact --global-style --no-package-lock appium-uiautomator2-driver --json' failed with code 1.
STDOUT:
{
"error": {
"code": 1,
"summary": "command failed",
"detail": "C:\WINDOWS\system32\cmd.exe /d /s /c node install-npm.js
[15:08:34] Error installing Chromedriver: unable to verify the first certificate
[15:08:35] Error: unable to verify the first certificate
at Function.AxiosError.from (C:\Users\Healthcubed\.appium
ode_modules\appium-uiautomator2-driver
ode_modules\axios\lib\core\AxiosError.js:89:14)
at RedirectableRequest.handleRequestError (C:\Users\Healthcubed\.appium
ode_modules\appium-uiautomator2-driver
ode_modules\axios\lib\adapters\http.js:610:25)
at RedirectableRequest.emit (node:events:529:35)
at ClientRequest.eventHandlers. (C:\Users\Healthcubed\.appium
ode_modules\appium-uiautomator2-driver
ode_modules\follow-redirects\index.js:38:24)
at ClientRequest.emit (node:events:517:28)
at TLSSocket.socketErrorListener (node:_http_client:501:9)
at TLSSocket.emit (node:events:517:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at processTicksAndRejections (node:internal/process/task_queues:82:21)
at Axios.request (C:\Users\Healthcubed\.appium
ode_modules\appium-uiautomator2-driver
ode_modules\axios\lib\core\Axios.js:45:41)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at retrieveData (C:\Users\Healthcubed\.appium
ode_modules\appium-uiautomator2-driver
ode_modules\appium-chromedriver\lib\utils.js:92:5)
[15:08:35] Downloading Chromedriver can be skipped by setting the'APPIUM_SKIP_CHROMEDRIVER_INSTALL' environment variable."
}
}
Shyam
The error message indicates a problem related to verifying certificates and downloading Chromedriver. Let's explore some solutions:
1. Certificate Verification Issue:
- The error message mentions "unable to verify the first certificate." This could be due to network or security settings.
- Try running the installation command with the environment variable `APPIUM_SKIP_CHROMEDRIVER_INSTALL=1`:
```
APPIUM_SKIP_CHROMEDRIVER_INSTALL=1 appium driver install uiautomator2
```
- This skips the Chromedriver installation, which might resolve the certificate issue³.
2. Chromedriver Installation:
- If you need Chromedriver for webview automation, ensure that it's installed correctly.
- You can manually install Chromedriver using:
```
npm install -g appium-chromedriver
```
- Then retry installing the uiautomator2 driver.
3. Node Modules Cleanup:
- Sometimes conflicts arise from existing node modules.
- Delete the contents of the `node_modules` folder at the path `/Users/amir/.appium/node_modules`.
- After cleaning up, try installing the uiautomator2 driver again².
4. Update Node and NPM:
- Ensure you're using an updated version of Node.js and npm.
- Update npm using:
```
npm install -g npm@latest
```
- Then retry the installation command.
Remember to check your network connectivity and security settings.
@@RaghavPal
Thank you so much time and patience, the issue finally got resolved...