AutomationCamp
1.24K subscribers
22 photos
4 videos
5 files
82 links
Download Telegram
شاید بگم تو این همه سال این اولین پستی بود که منو اینقدر به وجد آورد و میزان چیزایی که ازش یاد گرفتم قابل وصف نیست. اونم تو بلاگ کسی که اسمش تو Agile Manifesto هست یعنی Martin Fowler. اگر میخواین بدونین تایپ های مختلف تست تو Test Pyramid تو دنیای واقعی چجوری پیاده سازی میشه، Best Practice هاش رو بدونین و نمونه واقعی ازش ببینین این پست رو حتما بخونین. غیر از خود پست، رفرنس ها و هایپرلینک هایی هم که داده خودشون هرکدوم یه دنیا حرف دارن!
این پست طولانیه و واسه 2018 هم هست اما کانسپت هایی که گفته همیشه valid هست.
و انقدر خفنه که مطمئنم مثل من تا آخر میخونین.

https://martinfowler.com/articles/practical-test-pyramid.html

#blog
امروز یکی از رفقا برام اینوفرستاد. ربات Easy Apply لینکداین 😃
چه استفاده ها که ملت از سلنیوم نمیکنن

https://github.com/voidbydefault/EasyApplyBot

پی نوشت ۱: من همیشه تو پاسخ دوستانی که پرسیدن ازم، گفتم با این که برای یه دولوپر اتومیشن ساخت ربات های این شکلی مثل گرفتن وقت سفارت آمریکا و اینا خیلی ساده س ولی من تو این فیلد نمیرم. چون هم حق بقیه ضایع میشه هم اینکه اگر بیای Open source و رایگان بسازی هم راه باز میشه کلی کلاه بردار و دلال بیان وسط کد رو کپی کنن سرویس خودشون رو بیارن بالا و واسه گرفتن یه وقت سفارت ساده میلیون ها تومن پول بگیرن از شما. اون بنده خدایی هم که واقعا لنگ رفتن به سفارت هست نمیتونه وقت بگیره چون تقویم ها پر میشه. نمیدونم شاید یه روزی زد به سرم ساخت یه سرویس رایگان ولی با Auth وحشتناک و چند مرحله ای برای وقت گرفتن شروع کردم تا کاربر واقعی فقط بتونه استفاده کنه تا این بساط کاسبی جمع بشه. نمیدونم سفارت ها چرا یه کاری انجام نمیدن که سخت ترش کنن.
آقا هر مدل کار جذابی دوست دارید با سلنیوم و ابزارهای اتومیشن انجام بدین ولی Fair play بازی کنید.
پی نوشت ۲: اگر علاقه دارید از اتومیشن برای انجام کارها و مثلا اتومیشن سناریو های داخلی سازمان استفاده کنید فیلد RPM یا همون Robotic Process Automation تمرکزش بر همین موارد هست.
مخلص ❤️
من دنیا رو با این حس خوب عوض نمیکنم! خوشحالم که تونستم به یه نحوی در این مسیر تاثیرگذار باشم. و چند وقت یه بار که بچه ها این پیغام های پر ازانرژی شون رو برام میفرستن روزم واقعا ساخته میشه. امیدوارم که همگی در مسیرتون موفق باشید و من هم در حد توان و زمانم در کنارتون هستم ❤️😍
یه جایی تو قسمت جدید Appium که داره آماده میشه یکی از سوالای واقعی مصاحبه اتومیشن موبایل سطح Senior یا همون L5 گوگل‌ رو که از خودم پرسیده شده بود بررسی و راه حل رو توضیح دادم. نصیب اونی میشه که کل ویدئو رو ببینه 😉
منتظر قسمت خفن جدیدمون باشین 😎
ایشون آقای Leo ناظر فنی اتومیشن کمپ هستن🐱! خوابیده حالا رو لپتاپ پا نمیشه که، داداش پاشو کار داریم 😁
This media is not supported in your browser
VIEW IN TELEGRAM
معرفی مطالب قسمت جدید Appium اتومیشن کمپ:
https://t.me/automationcamp
AutomationCamp
معرفی مطالب قسمت جدید Appium اتومیشن کمپ: https://t.me/automationcamp
سلام رفقا.
با یه قسمت خفن دیگه از آموزش Appium در خدمتتونم! (ویدئوی معرفی مطالبش رو ببینین).
تا حالا شده بخواین یه تست اتومیشن موبایل بنویسین خودش بره تو تقویم تایم مدنظر ما رو پیدا کنه و انتخاب کنه؟ یا مثلا Slider رو جابجا کنین؟ Time picker که میچرخه چی؟ از اون سخت تر جایی که Toast message میاد یه لحظه و محو میشه چیکار می کنین؟
تو این ویدئو رفتیم سراغ کار با المنت هایی که چالش برانگیز هستن و برای هندل کردنشون ترفند و کارهای خاص لازمه انجام بدیم. بیش از 2 ساعت آموزش چپتربندی شده که هر کدوم رو خواستین ببینین (هرچند که توصیه میکنم از اول تا آخر ببینین تا نکاتی که در خلال آموزش گفتم رو هم یاد بگیرین.)
راستی تو مصاحبه ای که قبلا برای Senior Test Engineer (سطح L5) با Google داشتم ازم یه سوالی مرتبط با مطالب این آموزش پرسیدن که بهش پرداختم و راه حل بهینه رو توضیح دادم.
امیدوارم که مفید واقع بشه. خوشحال میشم نظرات سازنده شما رو هم بدونم.

ویدئوی جلسه هشتم:
https://youtu.be/ENieXfbH3-A

آدرس پلی لیست آموزش Appium:
https://www.youtube.com/playlist?list=PLKp9IFVoltbCroq54kRQ0NvBmd-DLLLnR
تلگرام اتومیشن کمپ:
https://t.me/automationcamp

ممنون از توجه تون – به امید آزادی ایران 🕊

لیست چپترها:
00:00 – Intro
02:25 – Text Box
04:49 – Checkbox | Radio Button | Switch
05:54 – Drop Down
21:17 – Drop Down (Scrollable)
29:13 – Wheeler (Picker)
43:28 – Time Picker (Spinner)
55:44 – Date Picker (Calendar)
01:29:15 – Slider (Rating Bar)
01:37:08 – Slider (Seek Bar)
01:39:55 – Popup
01:47:54 – Alerts
01:59:06 – Toast Message (Snackbar)
02:04:02 – Get app source (XML Hierarchy)
02:07:54 – Review and Conclusion

#qa #qaautomation #test #testautomation #appium #softwaretesting #sqa #تست #اتومیشن #اپیوم #mobileautomation #automationcamp #mohammad_monfared
خوب این روزا هممون با طوفان AI و استفاده از مدل های مختلف هوش مصنوعی تو اپلیکیشن ها و سرویس های مختلف مواجه هستیم. سوالی که پیش میاد اینا بحث تست شون چی میشه؟ اصلا برای مدلی که خودش با مثلا 13 تریلیون توکن train شده و کل این فرآیند با آزمون و خطا بوده، دیگه تست چه معنی ای پیدا میکنه؟
اینجاس که بحث AI Testing این روزا خیلی داغ شده و حتی ISTQB هم براش Certificate ایجاد کرده.
حالا اگر میخواین یه تصویر کلی از کارهایی که برای تست این حوزه میشه انجام داد به دست بیارید این دو تا مقاله خوب از Tariq King رو که خیلی فرد مطرحیه تو حوزه تست بخونید حتما :

https://www.linkedin.com/pulse/ai-shift-left-test-right-tariq-king-3wjme/
https://www.linkedin.com/pulse/ai-test-right-tariq-king-sanme/

مخلص ❤️
پشت این تصویر خندان و ویترین قشنگ دستاوردهای ما، هر کدوممون قصه خودمون رو داریم که قهرمان داستانش هستیم. قصه دنیایی پر از تلاش های دوباره، پر از انتظار و ابهام، دوراهی و تصمیم گیری، پر از نه شنیدن و تکرار و اصرار. اما یاد گرفتیم که باید بجنگیم. چاره ای نداریم چون تنها قهرمان داستان خودمونیم. آره باید شجاعانه بجنگیم و بیخیال نشیم و انقدر این در لعنتی رو بکوبیم تا یکی باز کنه. میتونیم خسته بشیم فریاد بزنیم اما حق نداریم جا بزنیم. باید دوباره ادامه بدیم!
قهرمان قصه من هم تو سالی که گذشت کلی جنگ رو پشت سرگذاشت. خیلی زمین خورد ولی باز بلند شد. خیلی تلاش کرد و نه شنید و اما باز ادامه داد و همچنان پرقدرت پیش میره.

 مختصری از رزومه کارهایی که در سال 1402 به انجام دادنشون افتخار میکنم:

🔹 ضبط و انتشار 34 ساعت ویدئوی آموزشی رایگان (که هر ساعت اون برای آماده سازی مطالب، ضبط و ادیت از من یک تا دو روز وقت گرفت.
🔹 منتورینگ و ارائه مشاوره رایگان به میزان 2730 دقیقه در قالب 43 جلسه در پلتفرم adplist و قرارگرفتن در لیست Top 10 منتورهای QA در کل پلتفرم.
🔹 سخنرانی در QA Meetup بین المللی در کنار سخنران هایی از Adobe، Miro و…
🔹 آموزش رایگان غیر مستقیم بیش از 1500 دانشجو در AutomationCamp
🔹 پاسخگویی و راهنمایی مستقیم بیشتر از 200 نفر به صورت متن، ویس، ایمیل و…
پاسخگویی فعال در کامیونیتی های تست داخلی و خارجی.
🔹 تولید ده ها محتوای تخصصی وایرال و پربازدید در لینکداین، مدیوم و بلاگ.
و…
در کنار اینها پیغام های دلگرم کننده زیادی از اخبار استخدام شدن یا مهاجرت دوستان به واسطه راهنمایی ها و آموزش هام دریافت کردم که بینهایت لذت بخش بود.

سال جدید رو پیشاپیش به شما و همه عزیزانتون تبریک میگم و امیدوارم امسال، پرقدرت تر از پیش به اهداف تون برسین. ❤️ 🎉

و من هم تمام تلاشم رو میکنم که با وجود اینکه سالهاست تو مارکت ایران نیستم اما این مسیر رو ادامه بدم و همچنان بیشتر از قبل نقش هرچند کوچکی در پیشرفت جامعه تست داشته باشم.

ارادت
-[------->+<]>.>--[----->+<]>.[--->+<]>--.--[->++++<]>+.----------.++++++.-[---->+<]>+++.+[->+++<]>+.+++++++++++.-.[++>---<]>++.[->+++<]>-.[---->+<]>+++.---[->++++<]>.--.+++++++.-[-->+++++<]>.------------.--[->++++<]>+.----------.++++++.-[---->+<]>+++.--[->++++<]>-.+[->+++<]>+.+++..[++>---<]>--.+[----->+<]>+.---------.[--->+<]>-.+[->+++<]>.+++++++++++++.[-->+++++<]>+++.-[--->++<]>+.+++.+.++++++++.+[---->+<]>+++.
AutomationCamp
-[------->+<]>.>--[----->+<]>.[--->+<]>--.--[->++++<]>+.----------.++++++.-[---->+<]>+++.+[->+++<]>+.+++++++++++.-.[++>---<]>++.[->+++<]>-.[---->+<]>+++.---[->++++<]>.--.+++++++.-[-->+++++<]>.------------.--[->++++<]>+.----------.++++++.-[---->+<]>+++.--[…
برای دوستانی که متوجه نشدن این چیه، این متنیه که به زبان برنامه نویسی Brainfuck نوشته شده:

If you don't try, you will never know!

و البته ChatGPT هم فقط تشخیص میده چه زبونیه ولی معادل ش رو میگه Hello World! پس هیچوقت صد در صد بهش اطمینان نکنین.

اینجوری نوشتمش که تو یادمون بمونه این جمله رو چون به من خیلی انرژی داد. انتظار برای پرفکت شدن شرایط استارت رو بزارید کنار و امسال فقط شروع بکنید اون چیزی که هی دارید وقفه میندازید توش. در طی مسیر بهبود ش میدین.
راستی قسمت جدید اپیوم تو تنوره‌ ببخشید درگیریم زیاد بود این مدت سرعت انتشار یه خورده اومد پایین
ارادت ❤️
رفقا عصر جمعه تون بخیر.
همیشه سعی میکنم خط به خط داکیومنت های هرچیزی که میخوام روش کار کنم رو بخونم و تا جایی که میتونم روش کانتریبیوشن داشته باشم. اینجوری هم برای خودم بهتر هضمش میکنم هم به بقیه هم میتونم بهتر توضیحش بدم. اون مشارکت میتونه هرچیزی باشه حتی نه تو گیتهاب. چه ریپورت باگ یا فیچر ریکوئست و آپدیت داک باشه چه ریسالو کردن ایشوهای فعال یا اضافه کردن فیچر جدید. حتما نباید یه PRبزرگ باشه. گاهی وقتا برطرف کردن یه typo ساده هم خیلی از مشکلات ملت رو حل میکنه.
ارادت ❤️
اگر تو تست های اتومیشن Sleep زیاد میزاری این آموزش برای شماس! برای Wait شرط بزار!
دوستان عزیز سلام! امیدوارم که تعطیلات خوبی رو پشت سر گذاشته باشین و سال فوق العاده ای پیش روتون باشه!
تو این قسمت از آموزش اپیوم رفتم سراغ آشنایی با انواع Wait ها به خصوص Implicit و Explicit. یاد میگیریم چطور برای دیده شدن شرط خاصی مثل تغییر Attribute المنت، فعال/غیرفعال شدنش، Visible/Invisible شدنش و موارد اینچنینی صبر کنیم! آخرش هم یه تمرین میگم!
امیدوارم که مفید واقع بشه. خوشحال میشم نظرات سازنده شما رو هم بدونم.

ویدئوی جلسه نهم:
https://youtu.be/q7-HSQom9Kc

آدرس پلی لیست آموزش Appium:
https://www.youtube.com/playlist?list=PLKp9IFVoltbCroq54kRQ0NvBmd-DLLLnR
تلگرام اتومیشن کمپ:
https://t.me/automationcamp

ممنون از توجه تون – به امید آزادی ایران 🕊

لیست چپترها:
00:00 – Sleep (Pause)
02:24 – Implicitly, Explicitly and Fluent Wait Definitions
03:42 – Implicitly Wait
07:42 – Explicitly Wait
10:50 – Expected Conditions
22:39 – Example: Wait Until Visibility of Element Located
25:16 – Example: Wait Until Not Visibility of Element Located
28:15 – Example: Wait Until Invisibility of Element Located
29:01 – Example: Wait Until Text to be Present in Element
35:15 – Exercise

#qa #qaautomation #test #testautomation #appium #softwaretesting #sqa #تست #اتومیشن #اپیوم #mobileautomation #automationcamp #mohammad_monfared
تو هر تست اتومیشن سه تا مرحله داریم:

🔹Arrange
🔹Act
🔹Assert
یعنی:
۱- شرایط رو آماده میکنیم (Arrange)
۲- سناریوی مدنظر رو انجام میدیم (Act)
۳- و بعد وریفای میکنیم که اتفاق مدنظرمون افتاد یا نه (Assert). تو جلسه دهم آموزش Appium میخوایم بریم سراغ همین اسرشن ها.

در ابتدا نحوه به دست آوردن اتریبیوت المنت ها رو یاد میگیریم. بعد میریم سراغ دستور assert تو پایتون و این دو تا رو با هم ترکیب میکنیم و اسرشن رو روی اتریبیوت ها انجام میدیم. همچنین با متدهای اسرشن درایور مثل is_displayed و is_enabled آشنا میشیم.

در ادامه هم با کاربرد حلقه While تو این موضوع آشنا میشیم و یه تابع خیلی خفن باهاش می نویسیم که برامون منتظر تکست یک المنت میمونه و وریفای ش میکنه.

در نهایت هم با Exception های متداول تو اتومیشن مثل NoSuchElementException یا StaleElementReferenceException و نحوه هندل کردن اونا آشنا میشیم.

امیدوارم که مفید واقع بشه. خوشحال میشم نظرات سازنده شما رو هم بدونم.

ویدئوی جلسه دهم:
https://youtu.be/_yZm6WapeAk

آدرس پلی لیست آموزش Appium:
https://www.youtube.com/playlist?list=PLKp9IFVoltbCroq54kRQ0NvBmd-DLLLnR
تلگرام اتومیشن کمپ:
https://t.me/automationcamp

ممنون از توجه تون – به امید آزادی ایران 🕊

لیست چپترها:
00:00 – Get Attribute of Elements
04:27 – Assert in Python
07:18 – Assert Attributes of Elements
12:45 – is_enabled, is_displayed
18:10 – "while" Loop for Assertions
24:03 – Implement Verify Method with "while" Loop
32:17 – Improve code
45:50 – Exceptions

#qa #qaautomation #test #testautomation #appium #softwaretesting #sqa #تست #اتومیشن #اپیوم #mobileautomation #automationcamp #mohammad_monfared
اگر بخوایم تو اتومیشن موبایل، دکمه Home و App switch رو بزنیم باید چیکار کنیم؟
یا یه چیزی رو تو فیلد سرچ تایپ کردیم حالا چجوری تایید روی کیبرد رو بزنیم تا نتایج رو ببینیم؟
تو این جلسه راجع به Keyboard Action ها تو Appium صحبت کردم.

- با Key Event ها در اندروید آشنا میشیم.
- تایپ واقعی به چند روش رو یاد می گیریم.
- دستوراتی برای کنترل کیبرد و بررسی وضعیتش رو معرفی میکنیم.
- با نحوه اجرای اکشن متغیر کیبرد که کار سرچ یا تایید رو انجام میده یاد میگیریم (IME) و یه مثال واقعی ازش هم تو اپلیکیشن آمازون می بینیم.

امیدوارم که مفید واقع بشه. خوشحال میشم نظرات سازنده شما رو هم بدونم.

ویدئوی جلسه یازدهم:
https://youtu.be/5sNskwPa8I4

آدرس پلی لیست آموزش Appium:
https://www.youtube.com/playlist?list=PLKp9IFVoltbCroq54kRQ0NvBmd-DLLLnR
تلگرام اتومیشن کمپ:
https://t.me/automationcamp

ممنون از توجه تون – به امید آزادی ایران 🕊

لیست چپترها:
00:00 – KeyEvent (KeyCode)
02:27 – Keyboard Action Commands
03:36 – Real Type using Key Events
07:00 – Press Device Soft Keys (Back, Home, App Switch)
08:05 – driver.is_keyboard_shown(), driver.hide_keyboard()
10:08 – Real Type by executing “mobile: type” command
11:28 – Input Method Editor (IME) - Perform ‘Done’, ‘Next’, ‘Search’
14:51 – Type and Search in Amazon app

#qa #qaautomation #test #testautomation #appium #softwaretesting #sqa #تست #اتومیشن #اپیوم #mobileautomation #automationcamp #mohammad_monfared
آقا یه سوال راجع به Appium. اگر با کلیک رو جایی، اپلیکیشن ما رو به کروم هدایت کنه چجوری اتومیشن رو ادامه بدیم؟ یه مشکل دیگه. یه جایی از اپ داره یه صفحه وب رو نشون میده که المنت هاش لوکیت نمیشه هرکاری میکنیم. راهش چیه؟

پاسخ این سوالا اینجاس. تو این قسمت از آموزش اپیوم قراره با اپلیکیشن های هایبرید و موارد زیر آشنا بشیم:

- انواع اپلیکیشن ها. (Native, Webview, PWA, Hybrid)
- مفهوم Webview و Native
- مفهوم Context و سوئیچ بین کانتکس های Native و Webview
- سوئیچ بین Browser و اپلیکیشن
- امکانات Appium Inspector و DevTools برای اپ های هایبرید


ویدئوی جلسه دوازدهم:
https://youtu.be/ImNUyjlVW8I

آدرس پلی لیست آموزش Appium:
https://www.youtube.com/playlist?list=PLKp9IFVoltbCroq54kRQ0NvBmd-DLLLnR
تلگرام اتومیشن کمپ:
https://t.me/automationcamp

ممنون از توجه تون – به امید آزادی ایران 🕊

لیست چپترها:
00:00 – Native and Hybrid apps
06:21 – Context (NATIVE, WEBVIEW)
09:50 – Get Contexts
12:07 – Switch Context
16:05 – NoSuchContextException
17:05 – Switch to Browser and Back to app
23:39 – Internal browser on NATIVE context
26:49 – CHROMIUM context
28:02 – Handle hybrid apps with Appium Inspector
30:57 – DevTools Inspect Devices

#qa #qaautomation #test #testautomation #appium #softwaretesting #sqa #تست #اتومیشن #اپیوم #mobileautomation #automationcamp #mohammad_monfared
عشقید همتون. هر روز کلی از این کامنتای خوب ازتون میگیرم که باعث شدم پروژه ای انجام بشه یا کسی استخدام بشه. برام هیچ چیزی ارزشمند از شنیدن اینا نیست. تلاش خودتونه و امیدوارم همتون تو مسیرتون موفق باشین.
قسمت جدیدمون هم تو تنوره ❤️
تو این قسمت قفلی زدم رو appium آخرش یه کاری باهاش انجام دادم تو وب پیدا نمیشه! به شرط سرچ و تضمینی!
آقا ما تو اپیوم چجوری میتونیم کاربر رو بین تست ها لاگین نگه داریم؟ یا فرضا تست رو با یه state خاصی از اپ از تست قبلی ادامه بدیم بدون اینکه بسته بشه؟ یا مثلا چجوری میتونیم اپلیکیشن رو در ابتدای سایکل تست Reinstall بکنیم؟
پاسخ این سوالا اینجاس. تو این بخش از آموزش اپیوم قراره با استراتژی های مختلف ریست، fullReset، noReset و fastReset آشنا بشیم. ترکیب های مختلف شون رو ببینیم چجوری میشن و از همه خفن تر اینکه یاد میگیریم اگر اپ رو با کروم موبایل باز کردیم چجوری لاگین بمونه تو تست بعدی! (اینو سرچ کنین واقعا)

ویدئوی جلسه سیزدهم:
https://youtu.be/_q-PIVWyHfU
آدرس پلی لیست آموزش Appium:
https://www.youtube.com/playlist?list=PLKp9IFVoltbCroq54kRQ0NvBmd-DLLLnR
تلگرام اتومیشن کمپ:
https://t.me/automationcamp

ممنون از توجه تون – به امید آزادی ایران 🕊

لیست چپترها:
00:00 – Install App by Appium
03:21 – Stop | Clear data | Reinstall
06:07 – Install Application Under Test (Clockify)
09:09 – “adb shell pm clear <packageName>”
10:43 – “noReset” and “fullReset” combinations
20:26 – Keep cache in Chrome Mobile with Appium
29:37 – “mobile: clearApp” command
32:45 – Questions

#qa #qaautomation #test #testautomation #appium #softwaretesting #sqa #تست #اتومیشن #اپیوم #mobileautomation #automationcamp #mohammad_monfared
سلام دوستان. دوست دارید در همایش پیش رو در رابطه با چه موضوعی باهاتون صحبت کنم؟
Final Results
31%
QA/QAA Career Roadmap (aligned with future needs & trends)
35%
AI & Testing (Testing AI \ Leverage AI in testing)
34%
QA Best Practices (Lessons learned with real examples)