لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش تست خودکار نرم افزار با پایتون
Automated Software Testing with Python
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
در مورد تست نرم افزار خودکار با Python، BDD، Selenium WebDriver و Postman، تمرکز بر برنامه های کاربردی وب اطلاعات کسب کنید. تستهای خودکار نوشتن تستهای سیستم کامل با استفاده از پایتون و ابزارهایی مانند Postman با راهاندازی یک خط لوله یکپارچهسازی مداوم با استفاده از تست پذیرش مبتنی بر مرورگر Travis CI با استفاده از Behave و Selenium WebDriver پیش نیازها: ما به شما یک بازنگری کامل پایتون میدهیم، اما برخی از دانش قبلی در مورد برنامه نویسی مفید خواهد بود برخی از دانش های مربوط به نحوه عملکرد برنامه های کاربردی وب. درک API های REST مفید خواهد بود، اما لازم نیست.
به جامع ترین دوره تست نرم افزار خودکار با پایتون در Udemy خوش آمدید.
آزمایش اتوماسیون نباید دردناک باشد. تست نرمافزار یک مهارت ضروری برای هر توسعهدهندهای است، و من اینجا هستم تا به شما کمک کنم واقعاً همه انواع اتوماسیون تست با پایتون را درک کنید.
من خوزه، مهندس نرم افزار و بنیانگذار Teclado هستم. تمرکز این دوره بر روی آزمایش برای وب است—ما با REST APIها و برنامه های کاربردی وب و فناوری هایی مانند unittest، Postman، و Selenium WebDriver کار خواهیم کرد.
هر چند نترسید، پس از گذراندن این دوره، میتوانید دانش آزمایشی جدید خود را بگیرید و آن را در هر پروژه، حتی پروژههای غیر وب، به کار ببرید!
با چه چیزی کار خواهید کرد؟
این دوره مملو از آخرین فناوریها است که میتوانید به صورت حرفهای و در پروژههای شخصی از آن استفاده کنید:
کتابخانه واحد تست، کتابخانه استاندارد تست نرم افزار خودکار پایتون؛
مسخره کردن و وصله کردن، دو ابزار ضروری برای کاهش وابستگی هنگام آزمایش؛
واحد، ادغام، سیستم و تست پذیرش — همه انواع آزمایش برای تحت پوشش قرار دادن کامل شما؛
پستچی برای همکاری و آزمایش آسان در حین توسعه؛
Selenium WebDriver برای تست های خودکار مرورگر ;
Git و Travis برای ادغام مداوم پروژه شما.
مهارت های اساسی تست نرم افزار
ما هر مهارت اساسی تست نرمافزاری را که باید بدانید تا بتوانید یک تست شغلی بگیرید یا این مهارتها را در پروژههای موجود خود به کار ببرید، پوشش خواهیم داد.
از مواردی مانند مسخره کردن و وصله کردن با استفاده از کتابخانه unittest که وابستگی ها را کاهش می دهد و تست های پیچیده را به تست های ساده تبدیل می کند. برای بررسی انواع تست: تست های واحد ساده تا تست های سیستم بزرگ و حتی تست های پذیرش مشتری.
هرم تست
هرم تست میگوید که باید تعداد زیادی تست واحد، تستهای ادغام کمی کمتر، حتی تستهای سیستمی کمتر، و تا حد امکان کمتر تستهای پذیرش داشته باشید.
در طول دوره ما روی این مفهوم کار میکنیم و مطمئن میشویم که همه اجزای سیستم خود را با تستهای واحد پوشش کامل داریم. سپس وابستگی ها را با استفاده از تست های ادغام آزمایش می کنیم. در نهایت، کل سیستم و مفروضات آن را با استفاده از تست های سیستم پوشش می دهیم. البته، ما همچنین بررسی خواهیم کرد که تست پذیرش چیست، چگونه به آزمونهای پذیرش میرسیم، و برخی از بهترین راهها برای نوشتن آزمونهای پذیرش برای یک برنامه وب با استفاده از توسعه رفتار محور و سلنیوم WebDriver.
تست خودکار مرورگر با Selenium WebDriver
Selenium WebDriver بسیار قدرتمند است، به ویژه هنگامی که با رویکرد کارآمد و آزمایش شده توصیه شده در این دوره همراه باشد. ما تست های پذیرش خود را به صورت حرفه ای طراحی می کنیم - درست همانطور که شما در یک کار تست نرم افزار انجام می دهید. ما از مدلهای صفحه، مکان یابها و تعاریف مرحله برای ساختار آزمایشهای خودکار به روشی قابل استفاده مجدد استفاده میکنیم. مشتریان میتوانند آزمونهای پذیرش را ارائه دهند که میتوانید به راحتی آنها را به کد ترجمه کنید.
ما همچنین در مورد انتظارهای ضمنی و صریح با Selenium WebDriver و Python، یک مفهوم کلیدی برای سرعت بخشیدن به زمان اجرای تست های پذیرش شما، آشنا خواهیم شد.
ادغام پیوسته
ما همچنین نحوه انجام آزمایش خودکار را در پروژههای خود بسیار بیشتر توضیح میدهیم.
با پیادهسازی خط لوله یکپارچهسازی مداوم که آزمایشهای شما را هر زمان که هر تغییری ایجاد میکنید اجرا میکند، کیفیت بسیار بالاتری در پروژههای خود خواهید داشت و اجازه نمیدهید هیچ اشکال مزاحم شما را از بین ببرد. ما به دنبال قرار دادن پروژه های خود در GitHub و دوست داشتن خط لوله CI با آنها خواهیم بود.
من واقعاً هیجان زده هستم که شما را در این دوره راهنمایی کنم!
به من در این سفر آزمایشی خودکار بپیوندید. من شما را در داخل می بینم!
سرفصل ها و درس ها
خوش آمدی!
Welcome!
نحوه گذراندن این دوره
How to take this course
یک خود ارزیابی
A self-assessment
نصب Python و PyCharm در ویندوز
Installing Python and PyCharm on Windows
نصب Python و PyCharm در OS X
Installing Python and PyCharm on OS X
خوش آمدی!
Welcome!
نحوه گذراندن این دوره
How to take this course
یک خود ارزیابی
A self-assessment
نصب Python و PyCharm در ویندوز
Installing Python and PyCharm on Windows
نصب Python و PyCharm در OS X
Installing Python and PyCharm on OS X
یک تجدید کننده کامل پایتون
A Full Python Refresher
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
متغیرها در پایتون
Variables in Python
متغیرها (Python 3.10)
Variables (Python 3.10)
راه حل تمرین کدنویسی: متغیرها
Solution to coding exercise: Variables
قالب بندی رشته در پایتون
String formatting in Python
دریافت ورودی کاربر
Getting user input
نوشتن اولین برنامه پایتون
Writing our first Python app
لیست ها، تاپل ها و مجموعه ها
Lists, tuples, and sets
عملیات مجموعه پیشرفته
Advanced set operations
لیست ها، تاپل ها و مجموعه ها (Python 3.10)
Lists, tuples, and sets (Python 3.10)
راه حل تمرین کدنویسی: لیست ها، تاپل ها، مجموعه ها
Solution to coding exercise: lists, tuples, sets
بولی ها در پایتون
Booleans in Python
اگر اظهارات
If statements
کلمه کلیدی "in" در پایتون
The 'in' keyword in Python
اگر عباراتی با کلمه کلیدی "in" وجود دارد
If statements with the 'in' keyword
حلقه ها در پایتون
Loops in Python
کنترل جریان - حلقهها و اگرها (Python 3.10)
Flow control—loops and ifs (Python 3.10)
راه حل تمرین کدگذاری: کنترل جریان
Solution to coding exercise: flow control
فهرست درک در پایتون
List comprehensions in Python
لغت نامه ها
Dictionaries
متغیرهای تخریب کننده
Destructuring variables
توابع در پایتون
Functions in Python
آرگومان ها و پارامترهای تابع
Function arguments and parameters
مقادیر پارامترهای پیش فرض
Default parameter values
توابع مقادیر را برمی گرداند
Functions returning values
توابع (Python 3.10)
Functions (Python 3.10)
راه حل تمرین کدنویسی: توابع
Solution to coding exercise: Functions
توابع لامبدا در پایتون
Lambda functions in Python
درک فرهنگ لغت
Dictionary comprehensions
دیکشنری ها و دانش آموزان (Python 3.10)
Dictionaries and students (Python 3.10)
راه حل تمرین کدنویسی: فرهنگ لغت
Solution to coding exercise: dictionaries
باز کردن آرگومان ها
Unpacking arguments
باز کردن آرگومان های کلمه کلیدی
Unpacking keyword arguments
برنامه نویسی شی گرا در پایتون
Object-Oriented Programming in Python
روش های جادویی: __str__ و __repr__
Magic methods: __str__ and __repr__
کلاس ها و اشیا (Python 3.10)
Classes and objects (Python 3.10)
راه حل تمرین کدنویسی: کلاس ها و اشیا
Solution to coding exercise: classes and objects
@classmethod و @staticmethod
@classmethod and @staticmethod
@classmethod و @staticmethod (Python 3.10)
@classmethod and @staticmethod (Python 3.10)
راه حل تمرین کدنویسی: @classmethod و @staticmethod
Solution to coding exercise: @classmethod and @staticmethod
وراثت طبقاتی
Class inheritance
ترکیب کلاس
Class composition
hinting را در پایتون 3.5+ تایپ کنید
Type hinting in Python 3.5+
واردات در پایتون
Imports in Python
واردات نسبی در پایتون
Relative imports in Python
خطاها در پایتون
Errors in Python
کلاس های خطای سفارشی
Custom error classes
توابع درجه یک
First-class functions
دکوراتورهای ساده در پایتون
Simple decorators in Python
نحو "at" برای دکوراتورها
The 'at' syntax for decorators
تزئین توابع با پارامترها
Decorating functions with parameters
دکوراتورها با پارامترها
Decorators with parameters
تغییرپذیری در پایتون
Mutability in Python
پارامترهای پیش فرض قابل تغییر (و چرا ایده بدی هستند)
Mutable default parameters (and why they're a bad idea)
نتیجه گیری این بخش
Conclusion of this section
یک تجدید کننده کامل پایتون
A Full Python Refresher
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
متغیرها در پایتون
Variables in Python
متغیرها (Python 3.10)
Variables (Python 3.10)
راه حل تمرین کدنویسی: متغیرها
Solution to coding exercise: Variables
قالب بندی رشته در پایتون
String formatting in Python
دریافت ورودی کاربر
Getting user input
نوشتن اولین برنامه پایتون
Writing our first Python app
لیست ها، تاپل ها و مجموعه ها
Lists, tuples, and sets
عملیات مجموعه پیشرفته
Advanced set operations
لیست ها، تاپل ها و مجموعه ها (Python 3.10)
Lists, tuples, and sets (Python 3.10)
راه حل تمرین کدنویسی: لیست ها، تاپل ها، مجموعه ها
Solution to coding exercise: lists, tuples, sets
بولی ها در پایتون
Booleans in Python
اگر اظهارات
If statements
کلمه کلیدی "in" در پایتون
The 'in' keyword in Python
اگر عباراتی با کلمه کلیدی "in" وجود دارد
If statements with the 'in' keyword
حلقه ها در پایتون
Loops in Python
کنترل جریان - حلقهها و اگرها (Python 3.10)
Flow control—loops and ifs (Python 3.10)
راه حل تمرین کدگذاری: کنترل جریان
Solution to coding exercise: flow control
فهرست درک در پایتون
List comprehensions in Python
لغت نامه ها
Dictionaries
متغیرهای تخریب کننده
Destructuring variables
توابع در پایتون
Functions in Python
آرگومان ها و پارامترهای تابع
Function arguments and parameters
مقادیر پارامترهای پیش فرض
Default parameter values
توابع مقادیر را برمی گرداند
Functions returning values
توابع (Python 3.10)
Functions (Python 3.10)
راه حل تمرین کدنویسی: توابع
Solution to coding exercise: Functions
توابع لامبدا در پایتون
Lambda functions in Python
درک فرهنگ لغت
Dictionary comprehensions
دیکشنری ها و دانش آموزان (Python 3.10)
Dictionaries and students (Python 3.10)
راه حل تمرین کدنویسی: فرهنگ لغت
Solution to coding exercise: dictionaries
باز کردن آرگومان ها
Unpacking arguments
باز کردن آرگومان های کلمه کلیدی
Unpacking keyword arguments
برنامه نویسی شی گرا در پایتون
Object-Oriented Programming in Python
روش های جادویی: __str__ و __repr__
Magic methods: __str__ and __repr__
کلاس ها و اشیا (Python 3.10)
Classes and objects (Python 3.10)
راه حل تمرین کدنویسی: کلاس ها و اشیا
Solution to coding exercise: classes and objects
@classmethod و @staticmethod
@classmethod and @staticmethod
@classmethod و @staticmethod (Python 3.10)
@classmethod and @staticmethod (Python 3.10)
راه حل تمرین کدنویسی: @classmethod و @staticmethod
Solution to coding exercise: @classmethod and @staticmethod
وراثت طبقاتی
Class inheritance
ترکیب کلاس
Class composition
hinting را در پایتون 3.5+ تایپ کنید
Type hinting in Python 3.5+
واردات در پایتون
Imports in Python
واردات نسبی در پایتون
Relative imports in Python
خطاها در پایتون
Errors in Python
کلاس های خطای سفارشی
Custom error classes
توابع درجه یک
First-class functions
دکوراتورهای ساده در پایتون
Simple decorators in Python
نحو "at" برای دکوراتورها
The 'at' syntax for decorators
تزئین توابع با پارامترها
Decorating functions with parameters
دکوراتورها با پارامترها
Decorators with parameters
تغییرپذیری در پایتون
Mutability in Python
پارامترهای پیش فرض قابل تغییر (و چرا ایده بدی هستند)
Mutable default parameters (and why they're a bad idea)
نتیجه گیری این بخش
Conclusion of this section
اولین تست نرم افزار خودکار شما
Your first automated software test
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
راه اندازی پروژه ما
Setting up our project
مهم: نام گذاری فایل های تست
Important: the naming of test files
نوشتن اولین آزمون ما
Writing our first test
تست معادل سازی فرهنگ لغت
Testing dictionary equivalence
نوشتن تست های وبلاگ و پیکربندی های اجرای PyCharm
Writing blog tests and PyCharm run configurations
روش __repr__ و مقدمه ای برای TDD
The __repr__ method, and intro to TDD
تست های ادغام و تکمیل وبلاگ
Integration tests and finishing the blog
مسخره کردن، وصله کردن، و تست سیستم
Mocking, patching, and system tests
اصلاح روش ورودی و برگرداندن مقادیر
Patching the input method and returning values
انجام وصله ما بیشتر است
Taking our patching further
چند وصله آخر!
The last few patches!
روش TestCase setUp
The TestCase setUp method
نتیجه گیری این بخش
Conclusion of this section
اولین تست نرم افزار خودکار شما
Your first automated software test
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
راه اندازی پروژه ما
Setting up our project
مهم: نام گذاری فایل های تست
Important: the naming of test files
نوشتن اولین آزمون ما
Writing our first test
تست معادل سازی فرهنگ لغت
Testing dictionary equivalence
نوشتن تست های وبلاگ و پیکربندی های اجرای PyCharm
Writing blog tests and PyCharm run configurations
روش __repr__ و مقدمه ای برای TDD
The __repr__ method, and intro to TDD
تست های ادغام و تکمیل وبلاگ
Integration tests and finishing the blog
مسخره کردن، وصله کردن، و تست سیستم
Mocking, patching, and system tests
اصلاح روش ورودی و برگرداندن مقادیر
Patching the input method and returning values
انجام وصله ما بیشتر است
Taking our patching further
چند وصله آخر!
The last few patches!
روش TestCase setUp
The TestCase setUp method
نتیجه گیری این بخش
Conclusion of this section
تست نقطه پایانی فلاسک
Testing a Flask Endpoint
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
راه اندازی پروژه ما
Setting our project up
ایجاد برنامه Flask ما
Creating our Flask app
اولین تست سیستم ما
Our first System test
بازسازی آزمایشات سیستم ما
Refactoring our System Tests
نتیجه گیری این بخش
Conclusion of this section
تست نقطه پایانی فلاسک
Testing a Flask Endpoint
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
راه اندازی پروژه ما
Setting our project up
ایجاد برنامه Flask ما
Creating our Flask app
اولین تست سیستم ما
Our first System test
بازسازی آزمایشات سیستم ما
Refactoring our System Tests
نتیجه گیری این بخش
Conclusion of this section
تست REST API، بخش اول
REST API Testing, Part I
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
نگاهی به یک REST API با Flask
A look at a REST API with Flask
واحد در حال آزمایش یک REST API
Unit testing a REST API
راه اندازی BaseTest عمومی ما
Setting up our generic BaseTest
تست یکپارچه سازی REST API
Integration testing a REST API
نتیجه گیری این بخش
Conclusion of this section
تست REST API، بخش اول
REST API Testing, Part I
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
نگاهی به یک REST API با Flask
A look at a REST API with Flask
واحد در حال آزمایش یک REST API
Unit testing a REST API
راه اندازی BaseTest عمومی ما
Setting up our generic BaseTest
تست یکپارچه سازی REST API
Integration testing a REST API
نتیجه گیری این بخش
Conclusion of this section
تست REST API، قسمت دوم
REST API Testing, Part II
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
راه اندازی پروژه ما
Setting up our project
تست محدودیت های کلید خارجی با پایتون
Testing foreign key constraints with Python
مدلهای تست واحد و نقشهبردارهای SQLAlchemy
Unit testing models and SQLAlchemy mappers
در حال اتمام تست های فروشگاه ما
Finishing our Store tests
نتیجه گیری این بخش
Conclusion of this section
تست REST API، قسمت دوم
REST API Testing, Part II
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
راه اندازی پروژه ما
Setting up our project
تست محدودیت های کلید خارجی با پایتون
Testing foreign key constraints with Python
مدلهای تست واحد و نقشهبردارهای SQLAlchemy
Unit testing models and SQLAlchemy mappers
در حال اتمام تست های فروشگاه ما
Finishing our Store tests
نتیجه گیری این بخش
Conclusion of this section
تست سیستم REST API
System testing a REST API
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
راه اندازی پروژه و ایجاد مدل کاربر
Setting project up and creating User model
به کد سخنرانی بعدی تغییر دهید
Change to the next lecture's code
امکان ورود کاربران به سیستم
Allowing users to log in
نوشتن تست های کاربر ما
Writing our User tests
متد setUpClass در BaseTest
The setUpClass method in the BaseTest
تست ثبت نام کاربر
Testing user registration
نهایی کردن تست های سیستم کاربر
Finalising user System tests
نوشتن تست های سیستم فروشگاهی
Writing Store System tests
نوشتن تست های سیستم آیتم ما و آزمایش احراز هویت
Writing our Item System tests and testing authentication
نتیجه گیری این بخش
Conclusion of this section
تست سیستم REST API
System testing a REST API
معرفی این بخش
Introduction to this section
از اینجا به کد این بخش دسترسی پیدا کنید
Access the code for this section here
راه اندازی پروژه و ایجاد مدل کاربر
Setting project up and creating User model
به کد سخنرانی بعدی تغییر دهید
Change to the next lecture's code
امکان ورود کاربران به سیستم
Allowing users to log in
نوشتن تست های کاربر ما
Writing our User tests
متد setUpClass در BaseTest
The setUpClass method in the BaseTest
تست ثبت نام کاربر
Testing user registration
نهایی کردن تست های سیستم کاربر
Finalising user System tests
نوشتن تست های سیستم فروشگاهی
Writing Store System tests
نوشتن تست های سیستم آیتم ما و آزمایش احراز هویت
Writing our Item System tests and testing authentication
نتیجه گیری این بخش
Conclusion of this section
تست سیستم با پستمن و نیومن
System testing with Postman and Newman
معرفی این بخش
Introduction to this section
از اینجا به کد و فایل های Postman دسترسی داشته باشید
Access the code and Postman files here
معرفی پستچی
Introduction to Postman
اولین تست Posman ما
Our first Posman tests
تنظیم و پاک کردن متغیرهای محیطی در Postman
Setting and clearing environment variables in Postman
اجرای یک پوشه آزمایشی در Postman
Running a test folder in Postman
تنظیمات پیشرفته اجرای PyCharm
Advanced PyCharm run configurations
نصب Node و Newman
Installing Node and Newman
Multirun در PyCharm - اجرای برنامه و آزمایش با هم
Multirun in PyCharm—Running app and tests together
نتیجه گیری این بخش
Conclusion of this section
تست سیستم با پستمن و نیومن
System testing with Postman and Newman
معرفی این بخش
Introduction to this section
از اینجا به کد و فایل های Postman دسترسی داشته باشید
Access the code and Postman files here
معرفی پستچی
Introduction to Postman
اولین تست Posman ما
Our first Posman tests
تنظیم و پاک کردن متغیرهای محیطی در Postman
Setting and clearing environment variables in Postman
اجرای یک پوشه آزمایشی در Postman
Running a test folder in Postman
تنظیمات پیشرفته اجرای PyCharm
Advanced PyCharm run configurations
نصب Node و Newman
Installing Node and Newman
Multirun در PyCharm - اجرای برنامه و آزمایش با هم
Multirun in PyCharm—Running app and tests together
نتیجه گیری این بخش
Conclusion of this section
ادغام مداوم با Travis CI
Continuous Integration with Travis CI
معرفی این بخش
Introduction to this section
کد این بخش
The code for this section
نصب Git
Installing Git
مخزن Git چیست؟
What is a Git repository?
یک گردش کار محلی Git
A local Git workflow
GitHub و مخازن راه دور
GitHub and remote repositories
افزودن پروژه ما به GitHub
Adding our project to GitHub
Travis CI چیست؟
What is Travis CI?
افزودن مخزن ما به تراویس
Adding our repository to Travis
فایل پیکربندی تراویس و تست های در حال اجرا
The Travis config file and running tests
اضافه کردن نشان تست ما به Readme
Adding our test badge to the Readme
نتیجه گیری این بخش
Conclusion of this section
ادغام مداوم با Travis CI
Continuous Integration with Travis CI
معرفی این بخش
Introduction to this section
کد این بخش
The code for this section
نصب Git
Installing Git
مخزن Git چیست؟
What is a Git repository?
یک گردش کار محلی Git
A local Git workflow
GitHub و مخازن راه دور
GitHub and remote repositories
افزودن پروژه ما به GitHub
Adding our project to GitHub
Travis CI چیست؟
What is Travis CI?
افزودن مخزن ما به تراویس
Adding our repository to Travis
فایل پیکربندی تراویس و تست های در حال اجرا
The Travis config file and running tests
اضافه کردن نشان تست ما به Readme
Adding our test badge to the Readme
نتیجه گیری این بخش
Conclusion of this section
تست پذیرش و اتوماسیون مرورگر با سلنیوم
Acceptance testing and browser automation with Selenium
معرفی این بخش
Introduction to this section
آزمون پذیرش چیست؟
What is acceptance testing?
معرفی پروژه ما
Introduction to our project
اولین مرحله آزمون قبولی ما
Our first acceptance test step
دریافت درایور وب Chrome
Getting the Chrome webdriver
تأیید همه چیز کار می کند
Verifying everything works
در حال اتمام اولین آزمون ما
Finishing our first test
استفاده مجدد از مراحل با تطبیق عبارات منظم
Re-using steps with the regular expression matcher
اولین تست محتوای ما
Our first content test
مکان یاب صفحه و مدل ها
Page locators and models
صفحه وبلاگ
The blog page
استفاده از صفحات در مسیریابی
Using pages in navigation
تست ها را بیش از حد تعمیم ندهید!
Don't over-generalise tests!
انتظار و تایم اوت با سلنیوم
Waits and timeouts with Selenium
اشکال زدایی تست های پذیرش در PyCharm
Debugging acceptance tests in PyCharm
سناریوی پیچیده نهایی ما
Our final complex scenario
پر کردن فرم ها با سلنیوم
Filling in forms with Selenium
به کد نهایی این بخش از اینجا دسترسی پیدا کنید
Access the final code of this section here
نتیجه گیری این بخش
Conclusion of this section
تست پذیرش و اتوماسیون مرورگر با سلنیوم
Acceptance testing and browser automation with Selenium
معرفی این بخش
Introduction to this section
آزمون پذیرش چیست؟
What is acceptance testing?
معرفی پروژه ما
Introduction to our project
اولین مرحله آزمون قبولی ما
Our first acceptance test step
دریافت درایور وب Chrome
Getting the Chrome webdriver
تأیید همه چیز کار می کند
Verifying everything works
در حال اتمام اولین آزمون ما
Finishing our first test
استفاده مجدد از مراحل با تطبیق عبارات منظم
Re-using steps with the regular expression matcher
اولین تست محتوای ما
Our first content test
مکان یاب صفحه و مدل ها
Page locators and models
صفحه وبلاگ
The blog page
استفاده از صفحات در مسیریابی
Using pages in navigation
تست ها را بیش از حد تعمیم ندهید!
Don't over-generalise tests!
انتظار و تایم اوت با سلنیوم
Waits and timeouts with Selenium
اشکال زدایی تست های پذیرش در PyCharm
Debugging acceptance tests in PyCharm
سناریوی پیچیده نهایی ما
Our final complex scenario
پر کردن فرم ها با سلنیوم
Filling in forms with Selenium
به کد نهایی این بخش از اینجا دسترسی پیدا کنید
Access the final code of this section here
نتیجه گیری این بخش
Conclusion of this section
ماده جایزه
Bonus Material
سخنرانی پاداش: دوره های دیگر و مراحل بعدی
Bonus lecture: other courses and next steps
ماده جایزه
Bonus Material
سخنرانی پاداش: دوره های دیگر و مراحل بعدی
Bonus lecture: other courses and next steps
نمایش نظرات