خانه / آموزش / ابزار / TestComplete / آموزش TestComplete-قسمت هفتم: ساخت اولین تست دسکتاپ(بخش چهارم)/تحلیل تست رکورد شده

آموزش TestComplete-قسمت هفتم: ساخت اولین تست دسکتاپ(بخش چهارم)/تحلیل تست رکورد شده

Testcomplate
Testcomplate

ساخت اولین تست دسکتاپ نسبتا طولانیست، لذا طی سه یا چهار قسمت تقدیم خوانندگان خواهد شد

تحلیل تست رکورد شده

پس از پایان رکورد کردن، TestComplete تست کلیدواژه رکورد شده را برای ویرایش باز می‌کند و محتویات تست را در Keyword Test Editor نمایش می‌دهد:

TestComplete Figure 7-1
TestComplete Figure 7-1

تست ثبت شده شبیه به تستی است که در تصویر بالا نشان داده شده است. تست واقعی شما ممکن است با مورد مندرج در بالا متفاوت باشد. برای مثال، اگر تست را روی یک اپلیکیشن C++ Builder یا دلفی(Delphi) رکورد کنید، ممکن است نام دیگر Objectها یا Window Indexها را شامل شود.

این تست حاوی دستوراتی(Command) است که مربوط به Actionهاییست که شما در اپلیکیشن Orders و در طول Recording انجام داده‌اید. ما عملکردهای(Operation) صورت گرفته توسط Test Commandها را فراخوانی می‌کنیم.

در زیر Commandها، پنل Test Visualizer وجود دارد و تصاویری را که TestComplete برای عملکردهای انجام شده در حین Test Recording گرفته است را نمایش می‌دهد:

TestComplete Figure 7-2
TestComplete Figure 7-2

این تصاویر عملکردهای ضبط شده را نشان می‌دهند و به شما در درک بهتر اقداماتی(Action) که این عملکرد انجام داده است کمک می‌کند. TestComplete تصاویر را تنها برای آن عملکردهایی که مربوط به اقدامات کاربریست(کلیک ماوس، تایپ کردن متن و غیره)، رکورد می‌کند.

هنگامی که شما یک عملکرد(Operation) را در ویرایشگر انتخاب می‌کنید، Test Visualizer به طور خودکار تصویر مناسب را انتخاب می‌کند، بنابراین شما می‌توانید به راحتی قبل از اجرای عملکرد برنامه را مورد اکتشاف(Exploring) قرار دهید. برای مشاهده تصویر مورد نظر از نزدیک، آن را در پنل Test Visualizer دوبار کلیک کنید.

در رابطه با کار با تصاویر در آینده و در بخش Test Visualizer بیشتر توضیح خواهیم داد.

اولین عملکرد در تست، Run TestedApp است. این عملکرد برای راه اندازی(Launch) برنامه تست شده(در مورد ما، اپلیکیشن Orders) از یک Keyword Test است. TestComplete این عملکرد را هنگامی که برنامه را به صورت خودکار راه‌اندازی می‌کند و یا راه‌اندازی نرم‌افزار را از طریق نوار ابزار ضبط یا جایی از UI سیستم عامل تشخیص می‌دهد، به طور خودکار رکورد می‌کند.

TestComplete Figure 7-3
TestComplete Figure 7-3

عملکرد بعدی مربوط به انتخاب گزینه File>Open است.

TestComplete Figure 7-4
TestComplete Figure 7-4

عملکرد بعدی باز کردن فایل را از طریق Open File Dialog شبیه‌سازی می‌کند:

TestComplete Figure 7-5
TestComplete Figure 7-5

در موارد معین، TestComplete می‌تواند هنگام کار با کنترل‌های Open File Dialog، دنباله‌ای از عملکردها که اقدامات صورت گرفته توسط شما را شبیه‌سازی می‌کنند را رکورد نماید.

نکته: توصیه می‌شود نام کامل فایل مورد نظر خود که می‌خواهید در File Name Box مربوط به Open File Dialog باز کنید را به جای Navigate(هدایت گرافیکی) به سمت فایل با استفاده از کنترل‌های محاوره‌ای(Dialog) تایپ کنید. این رویکرد به شما اجازه می‌دهد تستی را که می‌خواهید به صورت موفقت‌آمیز اجرا نمایید را بدون در نظر گرفتن سیستم عامل، نوارهای ناوبری و پانل‌های موجود در Dialog و مسیر نمایش داده شده در Dialog، رکورد کنید.

اگر تست شما حاوی دنباله‌ای از عملکردهای شبیه‌سازیِ Actionها و فراتر از Open File Dialogهاست، می‌توانید تست را اصلاح کرده و این عملکردها را با فراخوانی متد OpenFile به صورت دستی جایگزین کنید.

پس از آن، عملکردهایی را دنبال می‌کنیم که Actionهای شما را با پنجره اصلی اپلیکیشن و فرم سفارش شبیه‌سازی می‌کنند:

TestComplete Figure 7-6
TestComplete Figure 7-6

بعدها در مورد شبیه‌سازی Eventهای ماوس، ورودی صفحه کلید و سایر Actionها از اسکریپت‌های شما، در بخش “شبیه‌سازی User Actionها” توضیحات کاملی ارائه خواهیم کرد.

سپس عملکرد مقایسه(Comparison) است که ما در طول Test Recording اضافه کردیم:

TestComplete Figure 7-7
TestComplete Figure 7-7

در نهایت، عملکردیست که اپلیکیشن Orders را می‌بندد و این عملکردیست که فشردن دکمه “No” در این Message Box را شبیه‌سازی  می‌کند.

TestComplete Figure 7-8
TestComplete Figure 7-8

همانطور که می‌بینید، TestComplete به طور خودکار این عملکرد را به گروه‌هایی متصل می‌کند که مربوط به فرآیندها و پنجره‌هایی هستند که با آن کار کرده‌اید. گروه‌بندی، ساختار تست را برای درک ساده‌تر می‌کند و همچنین اطلاعاتی در مورد سلسله مراتب شی(Object Hierarchy) موجود در اپلیکیشن تحت تست نیز ارائه می‌دهد.

ما User Actionها را در یک Process به نام Orders ثبت کردیم. بنابراین، ما تنها یک Process” Group Node” داریم. این شامل تمام Actionهاییست که شما در Process Windowها و کنترل‌ها شبیه‌سازی کرده‌اید. Actionهایی که ما بر روی پنجره‌ها و کنترل‌های Orders Process انجام دادیم، به تعداد Window” Grouping Node”ها سازماندهی می‌شوند:

TestComplete Figure 7-9
TestComplete Figure 7-9

ممکن است شما متوجه شوید که اسامی پردازه(Process) تست شده و پنجره‌ها و کنترل‌های آن متفاوت از نام‌هاییست که ما در پانل Object Browser در یکی از مراحل قبلی دیدیم. به عنوان مثال، در Object Browser، پردازه تست شده به نام (“Process(“Orders نامیده می‌شود، در حالی که در این تست، Orders نامیده می‌شود؛ پنجره اصلی (“WinFormsObject(“MainForm نامیده می‌شود، در حالی که در تست MainForm نامیده می‌شود و غیره.

یک دلیل منطقی برای این موضوع وجود دارد: به طور پیشفرض، TestComplete به صورت خودکار برای اشیائی که شما آنها را در خلال Test Recording به کار می‌گیرید، نام‌های سفارشی تولید کرده و برای آنها استفاده می‌کند. تولید و اختصاص نام‌های سفارشی، Name Mapping می‌شود. TestComplete اسامی را نگاشت(Map) می‌کند زیرا ممکن است نام‌های پیشفرض برای درک دشوار باشند. ممکن است تعیین این موضوع که کدام پنجره یا کنترل مربوط به یک نام است سخت باشد. با استفاده از نام‌های Map شده، درک تست آسانتر شده و پایدارتر می‌شود. در خلال Map کردن نام‌ها، TestComplete تصاویری از اشیا Map شده را در مخزن Name Mapping ذخیره می‌کند. این امکان به شما کمک می‌کند تا ببینید کدام پنجره‌ یا کنترل‌ یا شی Map شده دیگر در تطابق هستند. بعدها در مورد Map کردن نام‌ها بیشتر توضیح خواهیم داد.

 

این یک آموزش طولانی مدت است. بنابراین قسمت‌های بعدی به محض آماده شدن علاوه بر اینکه در صفحه Home وبسایت اطلاعرسانی خواهد شد، به صورت دسته‌بندی شده از اینجا نیز در دسترس است.

ابوالفضل خواجه دیزجی

همچنین ببینید

Selenium

آموزش Selenium-قسمت هفدهم: Mouse Click Event و Keyboard Event و موضوع Action Class در Selenium WebDriver

در این بخش، ما رویداد کیبورد(Keyboard Event) و ماوس(Mouse Event) را در Selenium Webdriver آموزش …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *