مدت زمانی که طول میکشد تا صفحه به طور کامل بارگذاری شده و پاسخ کامل دریافت گردد.
این دو پارامتر معمولاً بر اساس میلیثانیه مشخص میشوند.
۳-۷-۲ پارامترهای مشخصکننده رخداد خطا در برنامه
در زمینه رخداد خطا باید به یک نکته ظریف توجه داشت و آن تفاوت آزمون کاربردی برنامه و آزمون بار است. در آزمون کاربردی، برنامه از مسیرهای گوناگون و با انواع داده ورودی آزمون میگردد تا خطاهای احتمالی شناسایی شوند درحالیکه در آزمون بار، برنامه از مسیرهای مشخص اما با تعداد کاربران همزمان زیاد مورد آزمون قرار میگیرد. در این حالت هدف مشخص کردن خطاهای برنامه در مواجه با بار زیاد است و نه عملکرد منطقی برنامه به ازای ورودیهای مختلف. برای مشخص شدن موضوع، یک مثال میزنیم. فرض کنیم که یک برنامه ورود اطلاعات داریم. در بخشی از این برنامه کاربر باید ایمیل خود را وارد کند. در صورتی که ایمیل کاربر طبق الگوی ایمیل نادرست باشد، برنامه باید خطای متناسب با آن را نمایش دهد. توانایی برنامه در مدیریت این مسئله با بهره گرفتن از آزمون کاربردی با داده ایمیل نادرست مشخص میشود. اگر برنامه پیام مناسب را تولید کرده و رفتار درستی داشته باشد، در آزمون کاربردی قبولشده و در غیر این صورت در این آزمون مردود میشود. این در حالی است که برنامه چه خطای مربوط به معتبر نبودن ایمیل را تولید کند و چه این خطا را تولید نکند اما همچنان به عملکرد و پاسخگویی خود ادامه دهد، در آزمون بار قبول میشود؛ زیرا در زمان مناسب برنامه پاسخ خود (حتی اگر از نظر منطق برنامه نادرست باشد) را تولید کرده است.
با توجه به مبحث فوق، موارد زیر معمولاً به عنوان خطای ایجادشده در اثر بار در نظر گرفته میشوند:
عدم پاسخگویی برنامه به درخواست دادهشده در زمان مشخص که اصطلاحاً به آن Timeout هم گفته میشود.
نمایش خطایی به جز خطاهای مربوط به آزمون کاربردی برنامه. به عنوان مثال ممکن است در اثر ازدیاد بار، برنامه کاربردی در حال اجرا با کمبود حافظه مواجه شود و خطایی نمایش داده شود.
۳-۸ چارچوبهای مورد استفاده جهت آزمون نرمافزارهای تحت وب
در این به بخش به بیان جزییات مربوط به راه حل پیشنهادی میپردازیم. چهارچوب وبدرایور به برنامهنویسان اجازه آن را میدهد که بتوانند با مرورگر ارتباط بر قرار کنند. به کمک این چهارچوب برنامهنویس می تواند مرورگر مورد نظر خود را بازکرده و با بخشهای مختلف آن، از جمله صفحه بازشده و همین طور منوهای مرورگر ارتباط بر قرار کند. شکل زیر نشاندهنده یک مرورگر فایرفاکس[۴۰] است که به کمک فناوری وبدرایور بازشده و کنترل می شود.
شکل ۳-۲: مرورگر فایرفاکس بازشده تحت کنترل چارچوب وبدرایور
در شکل صفحه قبل، یک پنجره مرورگر فایرفاکس باز شده است و برنامهنویس به کمک وبدرایور توانسته آن را تحت کنترل خود گرفته، سایت مربوط به موتور جست و جو گوگل را بازکرده و در آن عبارت “Wikipedia” را جست و جو کرده است. همان طور که مشاهده می شود عبارت “WebDriver” گوشه پایین سمت راست پنجره مرورگر نوشته شده است.
در کنار چهارچوب وبدرایور، چهارچوب دیگری بنام جب به برنامهنویس و آزمون کنندگان امکان برقراری ارتباط و کار با المانهای HTML روی یک صفحه وب را میدهد. به عنوان مثال یک آزمون می تواند از جب استفاده کند و دکمهای را که روی یک صفحه وب وجود دارد کلیک نماید و یا مقدار موجود در یک جعبه متن را تغییر دهد. لازم به ذکر است که چهارچوب جب از چهارچوب وبدرایور برای ارتباط با مرورگر استفاده می کند و به کمک آن است که میتوان به المانهای موجود در یک صفحه دست پیدا کرد. در شکل زیر میتوان نمونهای از یک کد گرووی که با بهره گرفتن از چهارچوب جب میخواهد دکمهای را در یک صفحه کلیک نماید را مشاهده کرد.
شکل ۳-۳: مثالی از کد گرووی و استفاده از چارچوب جب
در کد بالا، آزمون کننده ابتدا یک مرورگر فایرفاکس بازکرده و سپس با رفتن به نشانی دادهشده، سعی می کند که روی المانی که خصوصیت ID آن برابر با مقدار login-button کلیک نماید. در صورتی که آزمون کننده به دنبال آن باشد که تمامی مراحل بالا را به کمک زبانی مانند جاوا که یک زبان با کاربرد عمومی است پیادهسازی کند، میبایست تمام فرآیندهای مربوط به درخواست صفحه مورد نظر و همین طور تجزیه کردن صفحه HTML و در نهایت کلیک کردن روی المان مورد نظر را کد نویسی کند که این خود منجر به نوشتن صدها خط کد می شود. همه اینها در حالی است که ممکن بود نتواند از تجربه زنده مربوط به کار با یک مرورگر استاندارد بهرهمند گردد. باید توجه داشت که در مورد نرمافزارهای نوشتهشده تحت وب، انجام آزمون به کمک یک یا چند مرورگر استاندارد بسیار مهم است چرا که کاربران این نرمافزارها از چنین مرورگرهایی برای کار با صفحات نرمافزار مورد نظر استفاده خواهند کرد. این به آزمون کننده اجازه میدهد که آزمونهای واقعیتری داشته باشد.
چهارچوب دیگری بنام اسپاک نیز وجود دارد که به برنامهنویسان زبان گرووی اجازه میدهد تا بتوانند موارد آزمون خود را نوشته و اجرا نمایند. این چهارچوب از جهات بسیار زیادی شبیه چهارچوب جییونیت[۴۱] برای زبان جاوا بوده و برنامهنویسان میتوانند به کمک آن موارد آزمون خود را بر اساس شرطهای مورد انتظار آزمون کننده شروع و یا پایان دهند. در زیر نمونهای از مورد آزمون نوشتهشده با بهره گرفتن از اسپاک آورده شده است:
همان طور که در کد مشاهده می شود، دو مورد آزمون یکی برای رفتن به صفحه اصلی موتور جست و جوی گوگل و دیگری برای جست و جو کردن عبارت Wikipedia نوشته شده است. با دقت در نحوه بررسی صحت اجرای موارد آزمون، یافت می شود که هر مورد آزمون با بررسی شروطی می تواند صحت فرایند مورد آزمون و همین طور زمان شروع آن را حدس بزند.
شکل ۳-۴: مورد آزمون با بهره گرفتن از اسپاک
۳-۹ طرح پیشنهادی
در این بخش طرح پیشنهادی و این که این طرح چه مشکلاتی را برای یک آزمون کننده حل خواهد کرد بیان خواهد شد. همان طور که از بخشهای قبل به خاطر مانده، آزمون کننده نیاز دارد که بتواند فرآیندهای مد نظرش را با کمترین درگیری در جزییات برنامهنویسی نوشته و اجرا کند. آزمون بار برای یک نرمافزار نوشتهشده تحت وب خود یکی از انواع آزمونهای مهم و معروف است. نوشتن این آزمون نیز، به جهت آن که با ایجاد ارتباط و بررسی ارتباط به وجود آمده درگیر است، برای برنامهنویس و آزمون کننده می تواند مشکلاتی را به وجود آورد چرا که خواسته یا ناخواسته آنها را درگیر جزییات پیادهسازی و برنامهنویسی خواهد کرد.
چهارچوبهای آزمون مورد بحث در بخش قبل نمی توانند به آزمون کننده در مورد آزمون بار کمک شایانی کنند چرا که تدبیرات لازم جهت انجام برخی عملیات مربوط به آزمون بار و همین طور گزارشهای مربوط به آنها را ندیده و آزمون کننده میبایست برای هر صفحه خود به نوشتن آنها بپردازد. زبان خاص دامنه پیشنهادی در این پایاننامه به منظور سادهسازی این فرآیندها، ارائه شده است. این زبان، از نوع زبانهای خاص دامنه داخلی است. در زبانهای خاص دامنه داخلی، زبان خاص دامنه بر روی یک زبان همه منظوره بنیان نهاده میشود. در اینجا از زبان گرووی به عنوان زبان همه منظوره استفاده شده است. دلیل این امر آن است که این زبان به خوبی از قابلیت تعریف زبانهای خاص دامنه پشتیبانی میکند و همچنین رابطه تنگاتنگی با زبان جاوا دارد. علاوه بر زبان گرووی، از دو چارچوب معروف مبتنی بر گرووی نیز استفاده میشود. این چارچوبها که برای خودکارسازی فرآیندهای وب و همچنین انجام آزمونهای مختلف به کار میروند، به ترتیب عبارتاند از: جب و اسپاک. در ادامه به بررسی تعاریف، نیازها و چارچوبهای مورد نیاز در زبان خاص دامنه پیشنهادی پرداخته خواهد شد.
۳-۹-۱ تعریف آزمون بار
قبل از تشریح معماری و شالوده اصلی چهارچوب پیشنهادی، در درجه اول باید دانست که چه فرآیندهایی درگیر آزمون بار هستند و کدام یک از آنها متداول بوده و آزمون کنندگان نیازمند آنها خواهند بود. همین طور در درجه دوم اهمیت با توجه به اینکه که یکی از چهارچوبهای مورد استفاده در این پایاننامه چهارچوب جب است، میبایست ساختار آن و این که از چه بستههایی[۴۲] ساخته شده است، شناخته شود.
صحبت در مورد فرآیندهای درگیر در آزمون بار نیازمند آن است که کمی بیشتر در مورد خود آزمون بار و وظیفه آن صحبت شود. نظرات زیادی در مورد این که آزمون بار چیست وجود دارند. همگی آنها در این مورد مشترک هستند که هدف از اجرای آزمون بار، اندازه گیری میزان پاسخگویی نرمافزار به کاربران در شرایط مختلف است. معیارهای سنجش این میزان پاسخگویی و همین طور واحد و جنس ریاضی این میزان خود جای بحث دارد و از نرمافزاری به نرمافزار دیگر متفاوت است[۱۲]. به عنوان مثال یک نرمافزار مربوط به امور مالی را نمی توان با یک سایت خرید و فروش سهام بورس از دید جنس و معیار پاسخ گو بودن شبیه دانست؛ بنابراین نیاز است که در این مورد متناسب با نوع نرمافزار سخن گفت. از این به بعد بحث در مورد آزمون بار به نرمافزارهای تحت وب محدود خواهد شد.
آن چه در این پایاننامه آزمون بار نامیده می شود، حاوی معیارها و تعاریف زیر خواهد بود که در بخشهای بعدی فرآیندهای داخلی آن بیان خواهند شد.
آزمون بار، میزان پاسخ گو بودن یک مورد کاربری خاص را در کسبوکار یک نرمافزار وب میسنجد. میزان پاسخ گو بودن در این مورد، بر اساس زمان بارگزاری نتیجه و حجم مورد استفاده برای بارگزاری محاسبه خواهد شد. بارگزاری صفحات خود نیز به نوعی در این دسته گنجانده میشوند. دقت شود که عنصر اندازهگیری شونده در این جا صفحات وب مربوط به نرمافزار نبوده و بلکه موارد کاربری آن هستند؛ بنابراین ممکن است صفحهای داشته باشیم که در آن ۲ یا ۳ مورد کاربری نرمافزار گنجانده شده و بنابراین به ازای هر کدام از آنها، تحلیلی جدا لازم خواهد بود؛ اما از آن جا که سرویسهای وب در نهایت از طریق یک نشانی وب[۴۳] ارائه میشوند میتوان میزان پاسخ گو بودن یک نشانی وب را معادل با میزان پاسخ گو بودن سرویس ارائهشده از طریق آن، دانست.
آزمون بار، میزان پاسخ گو بودن را در شرایط مختلف کاری میسنجد. این که درخواست کاربر مبتنی بر یک مورد کاربری خاص در کسبوکار نرمافزار تحت وب در چه شرایطی سنجیده می شود حائز اهمیت است. منظور از شرط در این جا میزان پاسخ گو بودن سرویسدهنده وب است که در زمانهای شلوغ تا چه حدی می تواند از پس درخواستها برآید. این گزینه بیشتر، میزان پاسخگویی را در حالتی که سیستم شلوغ بوده و سرویسدهنده میبایست درخواستهای بهمنی را پاسخ گو باشد، سنجیده خواهد شد. دقت شود که ایجاد چنین فضایی جهت آزمون در حالت اضطرار، نیازمند آن است که بتوان قبل از آزمون، به حد کافی سر سرویسدهنده را شلوغ کرد. این خود یکی از فرآیندهای مهم و گاهی پیچیده در آزمون بار است. نتیجه این آزمون، بیشینهی شلوغی برای سیستم است که در آن مشتریان هم چنان میتوانند در بازهای قابلقبول، از سرویسدهنده پاسخ دریافت کنند.
میزان پاسخگو بودن مشتمل بر پاسخگو نبودن یک مورد کاربری نیز خواهد بود؛ بنابراین فرآیندهایی که در آن بتوان صفحات و سرویسهای از کارافتاده را پیدا نمود و یا در دسترس بودن یک صفحه و یا سرویس را چک نمود، از جمله نیازهای اولیه یک آزمون کننده خواهند بود. در صورت وجود سرویس است که میتوان میزان پاسخگویی آن را اندازهگیری نمود.
با توجه به موارد گفتهشده در بالا و با روشن شدن دید نسبت به تعریف قبولشده در این پایاننامه، حال میتوان آن فرآیندهایی را که یک آزمون کننده و در نهایت یک چهارچوب آزمون بار نیاز است داشته باشد را به صورت موردی بیان کرد و به پیادهسازی هر کدام از آنها پرداخت.
۳-۹-۱-۱ فرآیندهای مورد نیاز برای آزمون بار
حال نوبت به آن رسیده است تا در مورد فرآیندهای لازم در آزمون بار صحبت شود. لیست این فرآیندها و نیازها در زیر آورده شده است.
اندازهگیری و ذخیره زمان لازم برای فرستادن یک درخواست HTTP و دریافت پاسخ آن
قابلیت استفاده از زمان اندازهگیری شده به عنوان شرط در مورد آزمون
اندازه گیری و ذخیره حجم مورد استفاده در یک ارتباط رفت و برگشتی HTTP
قابلیت استفاده از میزان حجم اندازه گیری شده به عنوان شرط در مورد آزمون
آزمون در دسترس بودن یک صفحه وب به گونه ای که بتوان به عنوان شرط در موارد آزمون از آن بهره برد.
قابلیت ایجاد درخواستهای بهمنی به منظور اجرای یک آزمون استرس.
میتوان گفت که با پیادهسازی و اضافه شدن این ۶ مورد به چهارچوب مرجع جب، یک آزمون کننده می تواند مورد آزمونهایی طراحی کند که در آنها موارد مربوط به آزمون بار نیز در نظر گرفتهشده و به عنوان پیششرطها و پس شرطها قابلاستفاده هستند.
۳-۹-۲ بررسی ساختار چهارچوب جب
ساختار پوشه بندی برای چهارچوب جب در شکل ۳-۵ نمایش داده شده است.
شکل ۳-۵: ساختار پوشه بندی برای چهارچوب جب
همان طور که مشاهده می شود در مجموعه پوشههای مربوط به چهارچوب جب پوشهای با نام “modules” قرار دارد که در آن تمامی بخشهای اضافهشده و به اصطلاح ماژولهای دیگر که جهت ایجاد ارتباط جب با دیگر چهارچوبها وجود دارند، قرار گرفته است. از روی شکل و نامگذاریها کاملاً مشخص است که پوشههای اصلی چهارچوب در پوشه geb-core قرار دارند. نیاز است که در پوشه geb-core دقیق تر شویم. شکل زیر نمایی از پوشه بندی درون این پوشه را نمایش میدهد.
شکل ۳-۶: نمایی از پوشه بندی درون Geb-core
همان طور که در شکل ۳-۶ مشاهده می شود، کلاسهای نوشته به زبان گرووی که شالوده اصلی چهارچوب جب را تشکیل می دهند قابلرؤیت هستند. همچنین جهت بستهبندی کلاسها، مانند جاوا از پوشهبندی استفاده شده است.
۳-۹-۳ نحو[۴۴] زبان خاص دامنه پیشنهادی
نحو زبان خاص دامنه پیشنهادی از نظر انتخاب المانهای صفحه و مشخص کردن سناریو، مشابه نحو موجود در جب و جی کوئری[۴۵] است؛ به عبارت دیگر انتخابگرها[۴۶] بر اساس نام المانها، نام کلی تگها، شناسه[۴۷] المانها و یا نحوه قرارگیری آنها نسبت به هم (مثلاً المان A که داخل المان B باشد) عمل میکنند.
برای انجام هر آزمون، باید روند[۴۸] انتخاب عناصر صفحه و عملیات انجامشده روی آنها مشخص شود. منظور از عملیات، واردکردن اطلاعات، کلیک، دابل کلیک و امثال آنها میباشد. برای ورود اطلاعات اپراتوری به نام “fromFile”، بارگذاری مجدد[۴۹] شده تا کاربر بتواند به سادگی پس از مشخص کردن هر عنصر اطلاعات را از فایل مربوط در آن بارگذاری کند. ساختار فایل مربوطه باید به این صورت باشد که هر رکورد اطلاعاتی در یک خط از یک فایل متنی قرار گرفته باشد.
پارامترهای هر آزمون، به سادگی و به شیوه انتساب با بهره گرفتن از عملگر “=” تنظیم میشوند.
برای هر آزمون باید خطاهای مجاز و غیرمجاز را مشخص کرد. خطاهای مجاز آنهایی هستند که منجر به شکست آزمون بار نمیشوند و خطاهای غیرمجاز خطاهایی هستند که منجر به شکست آزمون بار شوند. به طور پیشفرض، خطاهای پروتکل، مانند خطای ۴۰۴ و امثال آن، جزء خطاهای غیرمجاز در نظر گرفته میشوند. هرچند امکان تعریف هر دو نوع خطا در زبان خاص دامنه در نظر گرفته شده، اما معمولاً فقط خطاهای مجاز تعریفشده و خطاهای غیرمجاز، هر خطایی به جز این خطاها در نظر گرفته میشوند.
منابع پایان نامه درباره :طراحی و پیادهسازی یک زبان خاص دامنه برای آزمون ...