اسکواد کوئرا (Quera's Squad) که سردسته آنها علیشا (AliSha) میباشد، علاقه خاصی به رصد رفتار و تعاملات کاربران در محصولات مختلف کوئرا دارد. او همواره از ابزارهای مختلفی برای انجام این رصد و سنجیدن کیفیت کالجها و مسابقات کوئرا استفاده میکند. در این بین اما، فعالیتهای متعدد یک کاربر یعنی آقای فرهادیان (Mr. Farhadian) در بسیاری از کالجها و مسابقات کوئرا باعث شده است تا ابزارهایی که اسکواد از آنها برای تحلیل رفتار کاربران استفاده میکند، با توجه به حجم بسیار زیاد اطلاعات فعالیتهای این کاربر، از ارائه گزارش در مورد عملکردهای او ناتوان شده و از دسترس خارج شوند!

با توجه به نیاز علیشا برای تحلیل و بررسی عملکرد کاربران خاصی مانند آقای فرهادیان – که از فعالترین کاربران در پلتفرم کوئرا به شمار میرود – بهمنظور ارتقای کیفیت خدمات و محصولات ارائهشده و با در نظر گرفتن اینکه ابزارهای متداول در حال حاضر در دسترس نیستند، او از شما میخواهد تا با استفاده از یک فایل داکر کامپوز (Docker Compose)، یک Selenium Grid اختصاصی راهاندازی کنید.
این Grid شامل یک Selenium Hub و چندین Selenium Node خواهد بود که امکان جمعآوری (Scraping) دادهها و تحلیل عملکرد کاربران فعال کوئرا را فراهم میسازد. این زیرساخت به علیشا کمک خواهد کرد تا اطلاعات لازم برای بهبود هر چه بیشتر تجربه کاربران را بهدست آورد و تصمیمات مبتنی بر داده اتخاذ کند.
پروژه اولیه
برای دانلود پروژهی اولیه روی این لینک کلیک کنید.
برای راهاندازی یک Selenium Grid برای جمعآوری دادههای کاربران، از یک فایل docker-compose.yml استفاده خواهیم کرد. شما باید در فایل docker-compose.yml سرویسهای زیر را تعریف کنید:
سرویس سلنیوم هاب (Selenium Hub)
- با استفاده از ایمیج زیر، یک سرویس با نام
selenium-hubایجاد کنید.
registry.gitlab.com/qio/standard/selenium/hub:4.10.0
-
نام کانتینر را
selenium-hubقرار دهید. -
پورت
4444را به صورت4444:4444به میزبان متصل کنید.
سرویسهای نودهای سلنیومی (Selenium Nodes)
سرویس Chrome Node
با استفاده از ایمیج زیر، یک سرویس با نام chrome ایجاد کنید:
registry.gitlab.com/qio/standard/selenium/node-chrome:4.10.0
- نام کانتینر باید
chrome-nodeباشد.
سرویس Firefox Node
با استفاده از ایمیج زیر، یک سرویس با نام firefox ایجاد کنید:
registry.gitlab.com/qio/standard/selenium/node-firefox:4.10.0
- نام کانتینر باید
firefox-nodeباشد.
سرویس Nginx
علاوه بر راهاندازی یک Selenium Grid، علیشا که پیشتر با ابزار سلنیوم کار نکرده است، از شما میخواهد تا یک سرویس با نام nginx نیز با استفاده از ایمیج زیر ایجاد کنید تا او بتواند با ابزاری که برای Selenium Grid راهاندازی کردهاید را روی آن تست کند:
registry.gitlab.com/qio/standard/nginx:1.20.2-alpine
- نام کانتینر باید
nginx-serverباشد. - پورت ۸۰ باید به صورت
8081:80به میزبان متصل شود. - مسیر محلی
./nginx/htmlباید به مسیر/usr/share/nginx/htmlدرون کانتینر متصل (Mount) شود.
آنچه باید آپلود کنید
-
توجه: شما باید موارد خواسته شده در سوال را تنها در قالب فایل
docker-compose.ymlپیادهسازی کرده و ارسال کنید. همچنین شما باید حتما تنها از ایمیجهای معرفی شده در متن سوال استفاده کنید. استفاده از سایر ایمیجها باعث عدم داوری ارسال شما خواهد شد. -
توجه: شما اجازهی build کردن یک ایمیج جدید نخواهید داشت و باید از ایمیجهای استاندارد کوئرا استفاده کنید.
-
توجه: نام کانتینرها و سرویسها باید دقیقا عبارات گفته شده در متن سوال باشند.
-
توجه: سیستم داوری کوئرا بهصورت خودکار فایل
docker-compose.ymlرا با کامندupاجرا میکند. شما نیازی به کد یا اسکریپتی برای اجرای این کار ندارید. -
توجه: ورژن
docker-compose.ymlباید3.3باشد.
version: "3.3"
# Do not forget that the only available
# selenium hub image is accessible with the following url:
# registry.gitlab.com/qio/standard/selenium/hub:4.10.0
# Do not forget that the only available
# selenium node-chrome image is accessible with the following url:
# registry.gitlab.com/qio/standard/selenium/node-chrome:4.10.0
# Do not forget that the only available
# selenium node-firefox image is accessible with the following url:
# registry.gitlab.com/qio/standard/selenium/node-firefox:4.10.0
# Do not forget that the only available
# nginx image is accessible with the following url:
# registry.gitlab.com/qio/standard/nginx:1.20.2-alpine
ارسال پاسخ برای این سؤال