أكثر

أتمتة اختبار تطبيق الويب استنادًا إلى ArcGIS JS API


لذلك ، هناك العديد من المنتجات التي يمكن أن تتيح لك أتمتة اختبار التفاعل مع صفحات الويب. لقد استخدمت Selenium IDE لبعض الوقت الآن وهو يعمل بشكل رائع لإنشاء اختبارات وحدة لعناصر HTML على جانب العميل (تأكد من عمل عناوين URL ، ويمكنك الوصول إلى القيم في القائمة المنسدلة وما إلى ذلك).

ومع ذلك ، لم أجد أي دليل على الإنترنت على أن شخصًا ما يستخدم أي منتج جاهز لأتمتة اختبار صفحات الويب التي تستخدم ArcGIS JS API.

ما وجدته:

  • اختبارات وحدة الكتابة لـ ArcGIS API for JavaScript Apps (نموذج رمز قديم ، لم يعد مناسبًا بعد الآن)
  • برنامج اختبار GIS.SE (مثل QTP ، السيلينيوم) لمنصة ESRI (سطح المكتب والويب) (مجرد رابط للمنتجات)
  • مشاركة GeoNet (قائمة وحدات JS للاختبار)
  • اختبارات الوحدة بدون رأس تلقائيًا باستخدام Esri JS API (شيء قريب مما أريد ، ولكنه يتطلب خبرة كبيرة في JS API).

ضع في اعتبارك اختبار تحرير صفحة ويب لعنصر واجهة مستخدم. لا يمكنك التقاط تحديد قالب معلم وإنشاء معلم على الخريطة باستخدام ، على سبيل المثال ، مع Selenium IDE. هذا لأن هذه الأشياء لا تحدث من جانب العميل ، وبرنامج الاختبار ليس على دراية بـ JS API ويعتبر تحرير القوالب مجرد مجموعة من عناصر CSS.

بالطبع أقوم بأتمتة اختبار خدمات الميزات عبر REST ويمكنني التحقق من أن الخدمات قادرة على إنشاء الميزات وتخزينها ، لكنني مهتم على وجه التحديد بصفحة الويب (يمكن أن تعمل خدمة الميزات ، ولكن قد يتعطل قالب التحرير و لن يتمكن المستخدم من إنشاء ميزة).

قبل أن أذهب وأجرّب جميع الإصدارات التجريبية من برنامج الاختبار الموجود هناك ، ربما يمكن لشخص ما أن يقول ما إذا كان هناك منتج (يمكن أن يكون تجاريًا أو مجانيًا ، لا يهم) يمكنه تسجيل وإعادة إنتاج صفحة مستخدم سير عمل التفاعل عند تضمين وظائف من ArcGIS JS API؟ إذا لم يكن التسجيل / التشغيل خيارًا ، فعلى الأقل قطعة من البرنامج من شأنها إنشاء حالة اختبار مع بعض التكوين اليدوي ، ولكن دون أن تصبح خبيرًا في JS.


لا يمكنك التقاط تحديد قالب معلم وإنشاء معلم على الخريطة باستخدام ، على سبيل المثال ، مع Selenium IDE. هذا لأن هذه الأشياء لا تحدث من جانب العميل ، وبرنامج الاختبار ليس على دراية بـ JS API ويعتبر تحرير القوالب مجرد مجموعة من عناصر CSS.

في الحقيقة أنت تستطيع اختبر تلك الأنواع من التفاعلات. يتم بدئها من جانب العميل و (بعد بعض الطلبات / الاستجابات من الخادم) لها نتائج يمكن التحقق منها من جانب العميل (عناصر DOM التي يمكن الاستعلام عنها بواسطة محددات CSS). لقد أجريت هذا النوع من الاختبارات الوظيفية (مثل التكامل ، أو النهاية إلى النهاية ، أو e2e) لطبقات الميزات باستخدام The Intern (مرة واحدة). أنت محق في أن WebDriver API ليست على دراية بـ Esri JSAPI وما لم تستخدم متغيرات عامة ، فسيتعين عليك الاستعلام عن DOM (مثل عدد المسارات في عنصر SVG الذي يمثل طبقة المعلم) للتحقق من أن تمت إضافة العنصر إلى الخريطة. يمكن أن يكون هذا النوع من الاختبارات مرهقًا وهشًا. علاوة على ذلك ، فإن تثبيت وتشغيل برامج تشغيل السيلنيوم والمتصفح كان دائمًا مشكلة بالنسبة لي

لهذه الأسباب ، أميل إلى التركيز على اختبار الوحدة بدلاً من الاختبار الوظيفي. أستخدم Karma / mocha لاختبار وحدة كود التطبيق الذي يستخدم Esri JSAPI. البرنامج التعليمي الخاص بي حول كيفية القيام بذلك قديم بعض الشيء ، ولكن يجب أن يكون كافيًا للبدء إذا كنت مهتمًا باختبار الوحدة. أعلم أن سؤالك يتعلق أكثر بالاختبارات الوظيفية ، لكنك تذكر منشور مدونة @ dbouwman حول اختبار الوحدة الآلي الذي يتماشى مع ما تبحث عنه. يمكنك العثور على جميع الموارد من عرض DevSummit العام الماضي (بما في ذلك مقطع فيديو للعرض التقديمي) هنا: https://github.com/tomwayson/esri-js-testing-tools-and-patterns


لقد عثرت للتو على هذا المنشور ، من منشورك هنا وأردت مشاركة بعض كود Python الذي كتبته والذي يساعد في تحديد ميزة معينة في تطبيق JavaScript. من الواضح أن هذا الرمز خاص جدًا بروابط Selenium و Python ، لكني حصلت على مسافة جيدة منه عبر مختلف المتصفحات ونظام التشغيل ودقة الشاشة.

الفكرة هي أنك إذا كنت

  1. تعرف على العالم الحقيقي x / y لعنصر: يمكنك الحصول على قيم X / Y للشاشة عن طريق إرسال JS إلى التطبيق والحصول على رد بـ "return"
  2. لديك أيضًا موقع بدء لعنصر آخر (في حالتي ، أستخدم زر الصفحة الرئيسية في التطبيق في شريط التكبير / التصغير)
  3. إحضار التطبيق إلى موقع معروف (مرة أخرى ، أستخدم زر الصفحة الرئيسية)
  4. قم بعمل فرق بسيط على XY من العنصر المعروف (زر الصفحة الرئيسية) مقابل العنصر الذي أريده
  5. حرّك الماوس الذي يختلف مقدارًا وقم بتنفيذ إجراء (مثل النقر)

مرة أخرى ، هذه الإجابة محددة جدًا لحالة معينة ، باستخدام تقنيات معينة ، لكنني أعتقد أنها تثبت وجهة نظرTom Wayson حول القدرة على إجراء تفاعلات الخريطة هذه.

def realUnits2ScreenUnits (driver، x، y، wkid، refEle): #Pass JavaScript إلى مستعرض العميل للحصول على وحدات الشاشة بناءً على موقعه في العالم الحقيقي jscode = "var realPoint = esri.geometry.Point ({" x ":٪ f ، "y":٪ f، "spatialReference": {"wkid":٪ d}})؛ sp = map.toScreen (realPoint)؛ return ({'x': sp.x، 'y': sp.y }) ؛ "٪ (x، y، wkid) screenXY = driver.execute_script (jscode) إرجاع الشاشة XY def offsetMouse (driver، startEle، offSetXYDict): # تحريك الماوس من عنصر إلى آخر بناءً على إزاحة XY #Returns the move obj : يمكنك بعد ذلك النقر على زر d والنقر والتحريك الإضافي وتنفيذ xdif = offSetXYDict ['x'] - startEle.location ['x'] + 3 ydif = offSetXYDict ['y'] - startEle.location ['y' ] + 3 طباعة xdif، ydif move = ActionChains (driver) move.move_to_element_with_offset (startEle، xdif، ydif) العودة إلى المنزل Button.click () # إعادة تعيين الخريطة إلى الشاشة المركزية XY = realUnits2ScreenUnits (self.driver، -9816122.817272000،56700 homeButton) move = offsetMouse (self.driver، homeButton، screenXY) move.click () m ove.perform ()

كيفية التفاعل مع بيانات ArcGIS من ASP.NET MVC

أحتاج إلى تطوير موقع ويب ASP.NET MVC يأخذ المعلومات من ArcGIS لعرض الخرائط والبيانات الأخرى. ArcGIS قيد التشغيل حاليًا على جهاز كمبيوتر محلي ، لذا يلزم تصدير بيانات ArcGIS إلى تنسيق ما وتحميلها إلى الخادم حيث يتم تشغيل موقع الويب حتى يأخذها تطبيق ASP.NET MVC ويقوم بعمله. بعد إجراء بعض الأبحاث ، وجدت أن هناك (على الأقل) 3 طرق مختلفة للتفاعل مع ArcGIS: Javascript API و SDK for .NET و ArcObjects.

ما الحل لأخذ بيانات ArcGIS المصدرة والعمل معها في ASP.NET؟ هل هذا نهج ممكن أم ممكن؟


7 إجابات 7

لا يمكنك توقع المجموعة الكاملة المحتملة لإجراءات المستخدم حتى تتمكن من التحقق من صحة المحتوى المعروض.

لا يمكنك توقع جميع البيانات الممكنة التي سيتم تسليم الكود الخاص بك إليها ، أو جميع ظروف السباق المحتملة إذا كانت مترابطة ، ومع ذلك ما زلت تزعج نفسك باختبار الوحدة. لماذا ا؟ لأنه يمكنك تضييقه كثيرًا. يمكنك توقع أنواع الأشياء المرضية التي ستحدث. عليك فقط التفكير في الأمر قليلاً والحصول على بعض الخبرة.

تفاعل المستخدم لا يختلف. هناك أشياء معينة سيحاول المستخدمون القيام بها ، سواء كانت مرضية أم لا ، ويمكنك توقعها. يقوم المستخدمون فقط بإدخال بيانات تخيلية بشكل خاص. ستجد المبرمجين يميلون إلى فقدان نفس أنواع الشروط مرارًا وتكرارًا. احتفظ بقائمة مرجعية. على سبيل المثال: ضخ Unicode في كل شيء ، ضع تاريخ البدء بعد تاريخ الانتهاء ، أدخل بيانات رطانة ، ضع العلامات في كل شيء ، اترك السطر الجديد اللاحق ، حاول إدخال نفس البيانات مرتين ، أرسل نموذجًا ، ارجع وأرسله مرة أخرى ، خذ ملفًا نصيًا ، اتصل it foo.jpg وحاول تحميله كصورة. يمكنك حتى كتابة برنامج لقلب المفاتيح والضغط على الأزرار بشكل عشوائي ، قرد سيئ ، سيجد كل أنواع الحشرات الممتعة.

غالبًا ما يكون الأمر بسيطًا مثل جلوس شخص ليس على دراية بالبرنامج ومشاهدته يستخدمه. حارب الرغبة في تصحيحها ، فقط راقبها تتعثر. إنه تعليمي للغاية. يشير Steve Krug إلى هذا بـ "Advanced Common Sense" وله كتاب ممتاز بعنوان "لا تجعلني أفكر" والذي يغطي اختبار تفاعل المستخدم البسيط والرخيص. انا اوصي بشده به. إنها قراءة قصيرة جدًا ومفتوحة.

أخيرًا ، يمكن أن يكون العميل نفسه ، إذا تم إعداد توقعاته بشكل صحيح ، مجموعة اختبار رائعة. تأكد من أنهم يفهمون أنه عمل قيد التقدم ، وأنه سيكون به أخطاء ، وأنهم يساعدون في تحسين منتجهم ، وأنه لا ينبغي مطلقًا استخدامه لبيانات الإنتاج ، والسماح لهم بالتلاعب في إصدارات ما قبل الإصدار من منتجك. سيفعلون كل أنواع الأشياء التي لم تفكر بها أبدًا! سيكونون أفضل الاختبارات وأكثرها واقعية على الإطلاق ، مجانًا! امنحهم طريقة بسيطة جدًا للإبلاغ عن الأخطاء ، ويفضل أن يكون ذلك مجرد مربع زر واحد على التطبيق الذي يرسل تلقائيًا بيئتهم وتاريخهم ، يعد مربع التعليقات على Hiveminder مثالًا ممتازًا. استجب لأخطاءهم بسرعة وبأدب (حتى لو كانت عبارة "شكرًا على المعلومات" فقط) وستجد أنهم سيكونون سعداء لأنك تستجيب لاحتياجاتهم!


كيف أقوم باختبار API عبر الإنترنت؟

يمكنك اختبار API عبر الإنترنت عن طريق إنشاء وتنفيذ طلبات API المختلفة مباشرة من متصفحك. لاختبار API عبر الإنترنت:
1. أدخل عنوان URL لنقطة نهاية API وحدد طريقة HTTP المناسبة.
2. في علامة التبويب "المحتوى" ، أدخل البيانات التي تريد إرسالها إلى نقطة نهاية API.
3. إذا كان خادم واجهة برمجة التطبيقات يتطلب تفويضًا ، فأدخل بيانات الاعتماد الخاصة بك في علامة التبويب "التفويض".
4. انقر فوق إرسال لإرسال طلب واجهة برمجة التطبيقات ، وتحقق من رمز حالة واجهة برمجة التطبيقات الذي تم إرجاعه ، ووقت الاستجابة ، والمحتوى.
5. أعد تشغيل اختبارات API عن طريق تغيير عنوان URL لنقطة نهاية API وطريقة HTTP وطلب البيانات.


Groovin & rsquo على الألحان

لقد اختبرت & rsquove أنه يمكنك تشغيل متصفح بدون رأس باستخدام Python. يمكنك الآن استخدامه:

  1. تريد تشغيل الموسيقى.
  2. تريد تصفح الموسيقى واستكشافها.
  3. تريد معلومات حول الموسيقى التي يتم تشغيلها.

للبدء ، انتقل إلى https://bandcamp.com وابدأ في البحث في متصفحك وأدوات مطوري rsquos. تكتشف زر تشغيل لامعًا كبيرًا باتجاه الجزء السفلي من الشاشة بسمة فئة تحتوي على القيمة "زر التشغيل". أنت تتحقق من أنها تعمل:

يجب أن تسمع الموسيقى! اتركه يعمل وارجع إلى متصفح الويب الخاص بك. فقط إلى جانب زر التشغيل يوجد قسم الاكتشاف. مرة أخرى ، قمت بفحص هذا القسم ووجدت أن كل مسار من المسارات المرئية المتاحة حاليًا له قيمة فئة "عنصر الاكتشاف" ، وأن كل عنصر يبدو قابلاً للنقر. في Python ، تحقق من ذلك:

يجب تشغيل مسار جديد! هذه هي الخطوة الأولى لاستكشاف Bandcamp باستخدام Python! تقضي بضع دقائق في النقر على مسارات مختلفة في بيئة Python الخاصة بك ولكن سرعان ما سئمت من المكتبة الضئيلة المكونة من ثماني أغانٍ.


تكامل خدمة التعيين المخصص

نحن نستخدم ميزات الأجهزة القائمة على الموقع الأصلي المضمنة في الأجهزة مثل الهواتف والأجهزة اللوحية والساعات الذكية لإنشاء تطبيقات وألعاب وبرامج للواقع الافتراضي و iOS و Android وما إلى ذلك. نقوم بتطوير تطبيقات تعتمد على الموقع مع خرائط Apple و Bing و Google Maps و Waze المدمجة الميزات.

حلول ESRI

لأكثر من 30 عامًا ، كانت ESRI تزود الشركات بالمعلومات الجغرافية الأساسية. تساعد حلول ESRI في إدارة وتحليل بيانات GIS. تقدم ESRI مجموعة متنوعة من الاحتمالات لدمج تكنولوجيا نظم المعلومات الجغرافية في أي عمل تجاري. من أنظمة سطح المكتب الشخصية إلى هياكل LBS للمؤسسات. تتميز حلول ESRI LBS بالمرونة والمصممة لتلبية متطلبات المستخدمين. نحن نتشارك مع ESRI لمساعدتك في بدء نجاح عملك وتطويره والحفاظ عليه.

خرائط بنج

نقوم بدمج عناصر تحكم الخرائط العامة في خرائط Bing V8 المتوفرة لكل من متصفحات أجهزة الكمبيوتر الشخصية وأجهزة Mac وكذلك الأنظمة الأساسية للجوّال. تعد واجهة برمجة تطبيقات خرائط Bing مثالية للتطبيقات المستندة إلى الويب مع دعم JavaScript و TypeScript. نحن نبني تجارب خرائط أصلية لتطبيقات Android و iOS باستخدام ميزات وخدمات خرائط Bing. نقوم بتطوير التطبيقات المستندة إلى Unity والتي تستخدم بيانات Bing Maps ثلاثية الأبعاد. نحن نستخدم خدمات REST لخرائط Bing لبناء وظائف استخبارات الموقع مثل الترميز الجغرافي والتشفير الجغرافي العكسي والبحث عن المنطقة الزمنية. نحن نقدم خدمات البيانات المكانية التي توفر نقاط الاهتمام (POI) والترميز الجغرافي المجمع.

خرائط Waze

نقوم بتطوير تطبيقات مخصصة تتضمن أدوات Waze لمشاركة مواقع مواقف السيارات وتفاصيل مكان الحدث وإرشادات التنقل للسائقين. قمنا بتضمين إطار عمل التنقل الخاص بـ Waze في تطبيقنا مما يتيح للمستخدمين الاستفادة من ميزات التنقل دون مغادرة التطبيق. نحن نستخدم Waze Audio Kit لدمج البودكاست والكتب الصوتية والموسيقى في تطبيقك. نقوم بإنشاء موجزات توفر معلومات عن ظروف حركة المرور والطرق البديلة والحوادث ومواقع الطعام / الاستراحة.

خرائط جوجل

نحن نطور تطبيقات ديناميكية تستخدم خرائط Google API. نضيف تفاصيل غنية لملايين الأماكن إلى التطبيقات ونوفر نتائج الإكمال التلقائي لاستعلامات المستخدم. نقوم بالتحويل بين العناوين والإحداثيات الجغرافية باستخدام واجهة برمجة التطبيقات للتكويد الجغرافي وميزات تحديد الموقع الجغرافي للبرنامج التي توفر بيانات الموقع دون الاعتماد على نظام تحديد المواقع العالمي (GPS). نقوم بدمج خرائط Google مباشرة في تطبيقات مشاركة الركوب لتحسين التنقل. نحن نقدم هياكل ثلاثية الأبعاد في العالم الحقيقي مع بيانات عالمية محدثة للألعاب القائمة على Unity.

خرائط آبل

نقوم بتطوير التطبيقات التي تستخدم MapKit لعرض الخرائط التفاعلية مع التعليقات التوضيحية المخصصة والمناطق المميزة والتراكبات. نحن نسمح للمستخدمين بالتحكم الكامل في تحريك الخريطة وتدويرها وتصغيرها وتحريكها بأبعاد ثلاثية ، وإظهار موقعهم الحالي للمستخدمين أو إرشادهم إلى وجهتهم التالية باستخدام واجهات برمجة التطبيقات الخاصة بالاتجاه. نستخدم MapKit JS لدمج خرائط Apple في صفحة الويب الخاصة بك. نحن نقدم تنسيق بيانات الخرائط الداخلية لإعطاء نموذج لأي موقع داخلي ، مما يوفر أساسًا للتوجيه والملاحة والاكتشاف.


يمكنك تجربة أي واحد منهم:

الخطوة 1: قم بتوصيل الهاتف / دونجل بمنفذ COM عبر USB.

الخطوة 2: اتصل بالرمز الخاص بجلب الرسائل القصيرة عبر smslib.jar

الخطوة 3: تحليل الرسائل القصيرة للحصول على ملف OTP من القائمة التي تم جلبها بواسطة أحدث الرسائل القصيرة المستلمة

الخطوة 1: قم بتوصيل هاتف android / iphone.

الخطوة 2: أتمتة تطبيق SMS في أي من الهاتفين ، إذا كان android - أتمتة تطبيق SMS عبر appium (أو أي تطبيق آلي آخر) أو إذا كان جهاز iphone الخاص به - يقوم بأتمتة ميزة تطبيق SMS الخاص به ،

للحصول على الرسائل القصيرة وتحليلها للحصول على OTP

الخطوة 1: التسجيل في HTTP SMS Gateway (معظمهم يقدمون مكالمات API مدفوعة مع عدد قليل جدًا من واجهات برمجة التطبيقات المجانية دعوات للاختبار).

الخطوة 2: اتصل بالطريقة لجلب الرسائل القصيرة.

الخطوة 3: قم بتحليل الرسالة (بعد فرزها حسب آخر رسالة SMS مستلمة) للحصول على OTP

بهذه الطرق الثلاث يمكنك الحصول على OTP ومن ثم يمكنك إرسالها إلى تطبيق الويب الخاص بك.

احصل على OTP من DB ، إذا كان التطبيق الداخلي الخاص به أو إذا كان يمكن الوصول إليه.

'الحل 3 والحل 4هي الأكثر كفاءة ولا تعتمد على منصات استقبال الرسائل القصيرة.


أتمتة اختبار تطبيق الويب استنادًا إلى ArcGIS JS API - أنظمة المعلومات الجغرافية

تحت التطوير

يرسم هذا المستودع مسارًا لأخذ شخص ليس لديه خبرة في نظم المعلومات الجغرافية إلى مطور نظم معلومات جغرافية ماهر. يتم تنظيم الأقسام حسب مستوى المهارة ويقصد بها التقدم من خلال التسلسل. كان هذا مستوحى بشكل كبير من جامعة Open Source Society.

تأتي الموارد في الغالب من الدورات التدريبية الفعالة للغاية والمجانية بالإضافة إلى منشورات المدونة والبرامج التعليمية. هناك مزيج من المواد المسجلة الملكية (ESRI) والمواد مفتوحة المصدر.

لا تتردد في المساهمة وتصحيح أي أخطاء سأرتكبها حتمًا.

إذا كنت قد أخذت مقدمة إلى دورة نظم المعلومات الجغرافية أو استخدمت نظم المعلومات الجغرافية في مكان العمل لأكثر من بضعة أشهر ، فتخط هذا القسم. بخلاف ذلك ، دعنا نراجع بعض المواد للتأكد من أن لدينا فهمًا أساسيًا لما هو GIS ، وما هي مهام GIS الشائعة ، وما هي أدوات GIS الموجودة هناك.

اختر أحد برامج سطح المكتب أدناه وقم بتشغيل الدورة التدريبية ذات الصلة للحصول على السرعة. سيستغرق هذا حوالي 40 ساعة وسيمنحك أساسًا رائعًا في نظم المعلومات الجغرافية.

ArcMap و ArcPro عبارة عن برنامج سطح مكتب مملوك لإجراء تحليل GIS الموزع بواسطة ESRI. هذه هي الأكثر استخدامًا في الصناعة وتعلمها هو الرهان الأكثر أمانًا عند غمس قدميك في الصناعة. التعرف على ArcPro يأتي مع ترخيص ArcPro مجاني لمدة عام واحد ويستحق المال إذا كنت جادًا في دخول هذا المجال. إذا أخذت مقدمة إلى دورة نظم المعلومات الجغرافية من خلال الكلية ، فمن المحتمل أنك ستخوض هذا الكتاب باعتباره غالبية عملك في الدورة التدريبية.

أكثر برامج سطح المكتب مفتوحة المصدر شيوعًا. إنه مجاني للتنزيل ويحتوي على مجموعة واسعة من المكونات الإضافية التي تتيح لك القيام بأي شيء باستخدام GIS.

الدورات (اختر واحدة) صعوبة برامج نظم المعلومات الجغرافية
تخصص كورسيرا نظم المعلومات الجغرافية سهل ArcPro
التعرف على ArcPro (40 دولارًا) سهل ArcPro
دروس QGIS الرسمية سهل QGIS

تعلم أساسيات البرمجة. قد يكون مدى استمتاعك بإحدى هذه الدورات مؤشرًا جيدًا على نجاحك في البرمجة.

الدورات (اختر واحدة) صعوبة اللغات
مقدمة في علوم الكمبيوتر والبرمجة باستخدام بايثون متوسط بايثون
CS50: مقدمة في علوم الكمبيوتر الصعب C و PHP و JavaScript و SQL و CSS و HTML

تحليل البيانات باستخدام بايثون

تعرف على كيفية استخدام مكتبات تحليل البيانات الشائعة في Python مثل Numpy و Pandas. أدرج هنا عددًا قليلاً من الخيارات المدفوعة هنا لأنها عالية الجودة وتفاعلية.

المورد (اختر واحدا) صعوبة
جيو بايثون متوسط
كتيب بايثون لعلوم البيانات متوسط
بايثون لتحليل البيانات (28 دولارًا) متوسط
Dataquest (23 دولارًا - 50 دولارًا في الشهر) متوسط
مخيم البيانات (25 دولارًا - 30 دولارًا في الشهر) متوسط
براندون رودس الباندا تعليمي متوسط

برمجة نظم المعلومات الجغرافية مع بايثون

تعرف على كيفية كتابة البرامج النصية لإجراء تحليلات GIS وأتمتة المهام المتكررة باستخدام Python.

الدورات (اختر واحدة) صعوبة برامج نظم المعلومات الجغرافية
485 GEOG: برمجة نظم المعلومات الجغرافية وتطوير البرمجيات متوسط ArcGIS / ArcPy
أتمتة عمليات نظم المعلومات الجغرافية متوسط GDAL و OGR و GeoPandas و Shapely و QGIS

الدورات الإضافية الموصى بها

تعرف على كيفية الاستعلام عن البيانات وإنشاء الجداول وطرق العرض وإجراء تحليل البيانات باستخدام قواعد البيانات.

الدورات (اختر واحدة) صعوبة محرك قاعدة البيانات
حديقة حيوان SQL متوسط SQL Server و Oracle و MySQL و DB2 و PostgreSQL
ستانفورد - مقدمة لقواعد البيانات الصعب مجهول
CS145: إدارة البيانات وأنظمة البيانات الصعب Google BigQuery

تعرف على كيفية تخزين بيانات GIS ومعالجتها في قاعدة بيانات.

الدورات (اختر واحدة) صعوبة محرك قاعدة البيانات
868 GEOG - إدارة قواعد البيانات المكانية متوسط PostgreSQL / PostGIS
رسمي - مقدمة إلى PostGIS متوسط PostgreSQL / PostGIS
CS145: إدارة البيانات وأنظمة البيانات الصعب Google BigQuery

تعرف على كيفية إدارة المشاريع باستخدام التحكم في الإصدار.

المورد (اختر واحدا) صعوبة برمجة
وثائق Git متوسط شخص سخيف
موارد Git الرسمية متوسط شخص سخيف
Git Tutorial بواسطة Atlassian متوسط شخص سخيف

تعرف على كيفية استخراج البيانات وتحويلها وتحميلها.

الدورات صعوبة المهارة التي يتم تدريسها
مسار مهندس البيانات Dataquest ($ 24.50 - $ 50 / month) الصعب تحسين قواعد البيانات ، ETL ، إدارة المهام
دروس FME Workbench متوسط FME ، المكاني ETL

أساسيات تطوير الويب

تعلم أساسيات تطوير الويب. من المهم جدًا القيام بذلك قبل محاولة الانتقال إلى نظام المعلومات الجغرافية على الويب.

الدورات (اختر واحدة) صعوبة اللغات
CS50: برمجة الويب باستخدام Python و JavaScript متوسط لغة البرمجة Python، HTML، CSS، Javascript، SQL
معسكر تدريب مطور الويب الخاص بـ Colt Steele (10 دولارات ، ابحث عن قسيمة) متوسط Node.js و HTML و CSS و Javascript و NoSQL
مشروع أودين متوسط روبي ، HTML ، CSS ، جافا سكريبت

دورة إضافية موصى بها

تعرف على كيفية إضافة الخرائط إلى تطبيقات الويب الخاصة بك.

الدورات (هل كلاهما) صعوبة اللغات / الأطر
863 GEOG - تطوير تطبيقات الويب لمتخصصي الجغرافيا المكانية سهل HTML و CSS و Javascript و ArcGIS Javascript API
585 GEOG: فتح خرائط الويب متوسط QGIS ، GDAL ، OGR ، GeoServer ، TileMill ، Leaflet

دورة إضافية موصى بها

تعرف على كيفية إنشاء تطبيقات ويب حديثة باستخدام مكتبات الواجهة الأمامية.

الدورات (اختر واحدة) صعوبة الإطار / المكتبة
تايلر ماكجينيس: برنامج التدريب على رد الفعل المجاني على الإنترنت متوسط تتفاعل
Maximilian Schwarzmüller: Angular 7 (Angular 2 سابقًا) - الدليل الكامل ($ 10 ، ابحث عن قسيمة) الصعب الزاوي
ماكسيميليان شوارزمولر: Vue JS 2 - الدليل الكامل (10 دولارات ، ابحث عن قسيمة) سهل Vue

يعد تطوير الواجهة الأمامية موضوعًا واسعًا لدرجة أنني سأقوم فقط بربطه بقسم الواجهة الأمامية الرائعة لخارطة طريق مطور الويب لعام 2018. ستكون قد اكتسبت معظم هذه المهارات بالفعل حتى الآن ، لكن الشعور بالراحة مع مديري الحزم وأدوات الإنشاء وإدارة الحالة ومعالجات CSS الأولية واختبار الواجهة الأمامية سيضعك في مكان رائع لتطوير الواجهة الأمامية.

تعرف على كيفية تقديم البيانات إلى عميل باستخدام خادم خلفي. تتطلب جميع وظائف تطوير GIS الخلفية تقريبًا التي رأيتها .Net Core (C #). لقد رأيت عددًا قليلاً من مشاريع نظم المعلومات الجغرافية باستخدام Flask و Django (Python) و Java ، ولكن يبدو أن C # بالتأكيد هي القوة المهيمنة هنا.

يعد تطوير الواجهة الخلفية موضوعًا واسعًا لدرجة أنني سأقوم فقط بالربط بقسم الواجهة الخلفية الرائع في خريطة طريق مطور الويب لعام 2018.


11 إطارًا لأتمتة الاختبارات مفتوحة المصدر: كيف تختار

إذا كنت تفكر في بناء إطار عمل أتمتة الاختبار الخاص بك ، ففكر مرة أخرى. في معظم الحالات ، من الأفضل التفكير في خيار واحد أو أكثر من الخيارات مفتوحة المصدر المتاحة.

هذا لأن إطار العمل ، بشكل عام ، عبارة عن مجموعة من أفضل الممارسات والافتراضات والأدوات الشائعة والمكتبات التي يمكنك استخدامها عبر الفرق. أنت ببساطة لا تحتاج إلى إنشاء واحدة فريدة من نوعها لبيئة التطوير الخاصة بك. سيساعد إطار العمل في جعل رمز أتمتة الاختبار الخاص بك قابلاً لإعادة الاستخدام ، ويمكن صيانته ، ومستقرًا - ويحفظ عملك من العيوب المكلفة. بعد كل شيء ، حتى الأخطاء الطفيفة يمكن أن تؤدي إلى مشاكل كبيرة.

إن الفرق التي تأخذ هذه الفوائد إلى أقصى الحدود من خلال بناء أطر التشغيل الآلي الخاصة بها من البداية تدفعني إلى الجنون. هذا لأنه كان بإمكانهم الاستفادة بسهولة من الأدوات والمكتبات مفتوحة المصدر الموجودة والتي كانت ستلبي احتياجاتهم دون كتابة أي تعليمات برمجية - وفي معظم الحالات ، بنتائج أفضل.

أثناء استخدام أدوات مفتوحة المصدر عادةً ما يكون خيارًا أفضل من إنشاء إطار العمل الخاص بك من البداية ، فأنا لا أقول إن أدوات أتمتة الاختبار مفتوحة المصدر هي كل ما تحتاجه. بمجرد أن تفهم كيفية اختيار أداة أتمتة الاختبار المناسبة لكل دور في مؤسستك ، قد ينتهي بك الأمر بمزيج من الخيارات التجارية والمفتوحة المصدر.

فيما يلي أفضل أطر عمل الاختبار مفتوحة المصدر ، وكيفية تقييمها.

اختبر ما بعد واجهة المستخدم الرسومية

هناك مجال آخر ينسى معظم الأشخاص تضمينه عند البحث عن إطار عمل أتمتة الاختبار وهو القدرة على اختبار واجهات برمجة التطبيقات. أنا مؤمن بشدة باختبار الوظائف خارج واجهة المستخدم (UI) كلما أمكن ذلك. ونظرًا لأن اختبارات التكامل / واجهة برمجة التطبيقات تتجاوز واجهة المستخدم ، فإنها تميل إلى أن تكون أسرع وأكثر موثوقية من اختبارات واجهة المستخدم الرسومية.

لهذا السبب من المهم أن يكون لديك مجموعة اختبار تختبر عدة طبقات مختلفة من تطبيقك. لذلك ، تحتاج إلى أدوات يمكنها اختبار كل من مكونات واجهة المستخدم وغير الخاصة بواجهة المستخدم لتطبيقك.

لذا قبل الوقوع في فخ "بناء إطار العمل الخاص بك" ، تأكد من مراجعة هذه الأطر التسعة لأتمتة الاختبار مفتوحة المصدر.

راحة نفسية

إذا كنت بحاجة إلى إطار عمل قائم على Java يتكامل مع أدوات التطوير المدفوعة بالسلوك (BDD) مثل Cucumber و JBehave ، فقد تكون Serenity BDD (المعروفة سابقًا باسم Thucydides) هي الأداة المناسبة لك. إنه مصمم لجعل كتابة اختبارات القبول والانحدار الآلية أسهل.

يتيح لك أيضًا الاحتفاظ بسيناريوهات الاختبار الخاصة بك على مستوى عالٍ مع استيعاب تفاصيل التنفيذ ذات المستوى الأدنى في تقاريرك.

يعمل Serenity كغلاف أعلى أدوات Selenium WebDriver و BDD. إنه يجعل كتابة اختبارات BDD و Selenium أسهل لأنه يزيل الكثير من التعليمات البرمجية المعيارية التي تحتاج أحيانًا إلى كتابتها للبدء.

يوفر Serenity أيضًا الكثير من الوظائف المضمنة ، مثل التعامل مع إدارة WebDriver ، وإدارة الحالة بين الخطوات ، وأخذ لقطات الشاشة ، وإجراء الاختبارات بالتوازي ، وتسهيل تكامل Jira ، والمزيد - كل ذلك دون الحاجة إلى كتابة سطر واحد من التعليمات البرمجية.

يقدم تقارير مفصلة

ينشئ Serenity تقارير مفصلة للغاية. من خارج الصندوق ، يقوم بإنشاء وثائق حية يمكنك استخدامها ليس فقط لعرض نتائج اختبار Selenium BDD ، ولكن أيضًا لتوثيق طلبك.

كما أن لديها طريقة شرح إضافية تسمىStep. عند استخدامه بشكل صحيح ، يمنحكStep مستوى إضافيًا من التجريد يجعل اختباراتك أكثر قابلية لإعادة الاستخدام والصيانة.

أضاف Serenity مؤخرًا التكامل مع REST Assured ، مكتبة Java الشهيرة مفتوحة المصدر لاختبار RESTful APIs. إنه يخلق غلافًا آخر حول REST Assured الذي يجعل اختبارات Serenity Selenium تتدفق بسلاسة. وتتضمن ميزة إعداد التقارير الرائعة في Serenity أيضًا معلومات REST ، مما يعني أنه يمكنك بسهولة رؤية جميع الطلبات وتفاصيل الاستجابة والتحقق من صحتها في تقارير الاختبار الخاصة بك دون الحاجة إلى إضافة أي رمز تسجيل إضافي بشكل صريح.

تهتم Serenity بالعديد من الأشياء التي قد يتعين عليك عادةً ترميزها من البداية إذا كنت تقوم بإنشاء إطار عمل BDD الخاص بك. إنها واحدة من أفضل الأطر مفتوحة المصدر المتاحة ، على الرغم من أنني قد أكون متحيزًا بعض الشيء: إنها الأداة التي أستخدمها في جهود أتمتة الاختبار اليومية الخاصة بي.

أنشأ Serenity أيضًا إصدار JavaScript يسمى SerenityJS. نظرًا لأن العديد من مطوري الواجهة الأمامية مسؤولون أيضًا عن الاختبار ، فإن إصدار JavaScript من أداة اختبار مؤتمتة مفيد للغاية.

شجرة السرو

مقارنة بمعظم الأدوات الأخرى في هذه القائمة ، فإن Cypress هو إطار أتمتة اختبار يركز على المطور بشكل أكبر ويركز على جعل التطوير القائم على الاختبار (TDD) حقيقة للمطورين. كان أحد مبادئ التصميم الخاصة بها أن تكون قادرًا على تجميع كل شيء معًا لجعل تجربة الاختبار الشامل بأكملها ممتعة وبسيطة.

له بنية مختلفة عن السيلينيوم بينما يعمل Selenium WebDriver عن بعد خارج المتصفح ، ويعمل Cypress بداخله.

يقدم هذا النهج نتائج أكثر اتساقًا ، حيث يمكن لـ Cypress فهم كل ما يحدث داخل المتصفح وخارجه. كما يمنحك وصولاً أصليًا إلى كل كائن دون مطالبتك بالتعامل مع تسلسل الكائنات أو البروتوكولات عبر الأسلاك. في الأساس ، تقوم بسحب تطبيقك إلى Cypress.

نتيجة لذلك ، يمكنه إخطارك بشكل متزامن بكل شيء يحدث داخل المتصفح بحيث يكون لديك وصول أصلي إلى كل عنصر نموذج كائن موزع (DOM).

يسهل Cypress أيضًا إسقاط مصحح أخطاء في تطبيقك ، مما يسهل بدوره استخدام أدوات المطور أثناء التطوير.

إطار الروبوت

إذا كنت تريد استخدام Python لأتمتة الاختبار ، فلا يمكنك أن تخطئ في استخدام Robot Framework. يستخدم هذا المنتج الناضج ، الذي تم إنشاؤه للمختبرين ، نهجًا يعتمد على الكلمات الرئيسية لجعل الاختبارات قابلة للقراءة وسهلة الإنشاء. ويتضمن العديد من مكتبات الاختبار والأدوات الأخرى التي يمكنك استخدامها.

يعتمد Robot Framework على Python ، ولكن يمكنك أيضًا استخدام Jython (Java) أو IronPython (.NET).

في حين أن مكتبة Selenium WebDriver قد تكون مكتبة الاختبار الخارجية الأكثر استخدامًا ، يمكن لـ Robot Framework اختبار أشياء أخرى غير مواقع الويب ، مثل FTP و MongoDB و Android و Appium. بالإضافة إلى كل هذا الروعة مفتوحة المصدر ، فإنه يحتوي على الكثير من واجهات برمجة التطبيقات التي تساعد في جعله قابلاً للتوسعة قدر الإمكان.

يعد نهج الكلمات الرئيسية الذي يستخدمه Robot Framework أمرًا رائعًا للمختبرين الذين هم بالفعل على دراية بأدوات الاختبار الأخرى المستندة إلى البائعين والتي تعتمد على الكلمات الرئيسية ، مما يجعل الانتقال إلى المصدر المفتوح أسهل بكثير بالنسبة لهم.

إذا كان فريقك يتكون في الغالب من مختبرين ، فإن Robot Framework هو خيار رائع لإطار عمل الأتمتة الخاص بك.

TestProject.io

هل تتوق إلى أداة أتمتة مجانية تمامًا ولديها أيضًا مجتمع قوي مدمج فيها ومن حولها؟

إذا كان الأمر كذلك ، يجب عليك بالتأكيد التحقق من TestProject.

في وقت كتابة هذا التقرير ، تتوفر تطبيقات Java و C # من SDK. قيل لي إن دعم Python و JavaScript ولغات البرمجة الأخرى قيد الإعداد حاليًا.

تم إنشاء إطار عمل TestProject للسماح لمزيد من المختبرين والمؤسسات بالاستفادة من أداتين أساسيتين مفتوحتين للأتمتة: السيلينيوم و Appium.

ما يميز TestProject هو الوظائف الإضافية ، التي تسمح للمختبرين في جميع أنحاء العالم باستخدام الوظائف التي يشاركها المختبرين الآخرين في TestProject. فكر فيها على أنها وحدات بناء للتشغيل الآلي للاختبار يمكن للآخرين إعادة استخدامها.

يأتي أيضًا مع ميزات أخرى مثل مسجل الاختبار وشبكة التشغيل الآلي العالمية وغير ذلك الكثير.

إذا كانت فرقك تتكون في الغالب من اختبار ضمان الجودة / المختبرين الذين لا يقومون بالبرمجة ، فإن TestProject.io أمر لا بد منه.

تم تطويره لاختبار تطبيقات الويب ، وهو يقدم إصدارًا مفتوح المصدر وإصدارًا احترافيًا. إنه يعمل كخادم وكيل يمكنك استخدامه داخل المتصفح. من لوحة معلومات Sahi ، يمكنك تشغيل المتصفح الذي تريد اختباره.

ترشدك أداة التحكم Sahi خلال تسجيل والتقاط التفاعل الذي تريد إجراؤه مقابل التطبيق. عندما تحوم فوق أي عنصر في متصفح Sahi ، على سبيل المثال ، فإنه يعرض لك جميع الإجراءات التي يمكنك تنفيذها ضد هذا العنصر.

يمكنك أيضًا استخدام وحدة التحكم لتشغيل البرنامج النصي الخاص بك. تسهل وظيفة التسجيل والتشغيل في Sahi البدء في اختبار أتمتة تطبيقات HTML البسيطة.

لكن احذر من الاعتماد على التسجيل والتشغيل ، فقد ثبت أن هذا النهج يمثل ممارسة سيئة لإنشاء اختبارات أتمتة قوية وقابلة للصيانة. لا بأس في المساعدة في إنشاء اختبار أولي ، لكنك ستحتاج إلى تخصيصه لجعله موثوقًا وقابلاً للصيانة.

لقد سمعت الكثير عن Sahi ، لكن انطباعي الأول عنها هو أنها ليست قوية مثل بعض الخيارات الأخرى. ومع ذلك ، فإن الكثير من الأشخاص يهتمون بإصدار Sahi pro.

إطار جالين

إذا كانت جهود الأتمتة الخاصة بك تركز على تصميم تجربة المستخدم (UX) أو اختبار التخطيط ، فقد يكون Galen Framework مناسبًا تمامًا لاحتياجاتك.

تم إنشاء Galen خصيصًا لاختبار UX ، وله بنية وقواعد خاصة يمكنك استخدامها لوصف تخطيط التطبيق الخاص بك والتحقق منه. يتيح لك أيضًا تحديد حجم المستعرض الخاص بك ، ثم إجراء اختبارات مقابل تطبيقك للتحقق من مواصفات التخطيط. تنشئ اختبارات Galen أيضًا تقارير HTML مفصلة مع لقطات شاشة ، وتتضمن الأداة مقارنة بصرية مع ميزة خريطة حرارية رائعة.

يمكنك كتابة الاختبارات في ملف نصي بسيط باستخدام بنية Galen أو JavaScript أو Java.

مقياس

يعد Gauge أحد أحدث أدوات أتمتة الاختبار مفتوحة المصدر لأنظمة التشغيل Mac و Windows و Linux ، وقد تم تطويره بواسطة الأشخاص في ThoughtWorks - نفس الشركة التي ابتكرت السيلينيوم.

سيقدر ممارسو TDD و BDD تركيز Gauge على إنشاء وثائق حية وقابلة للتنفيذ.

تتم كتابة اختبارات أتمتة المقاييس ، المسماة "المواصفات" ، بصيغة لغة markdown بسيطة باستخدام Java و Ruby و C # داخل IDEs للمطورين مثل Eclipse و Visual Studio. يمكنك أيضًا توسيع وظائف Gauge من خلال دعمها للمكونات الإضافية.

المقياس جديد تمامًا - لا يزال في مرحلة تجريبية - ولكن إذا كان فريقك يعمل على تطوير اختبار متطور ، فقد ترغب في تجربته.

WebDriverIO

هل تبحث عن إطار عمل آلي يستفيد من السيلينيوم ويسمح لك بالبرمجة في JavaScript؟

يمنحك WebdriverIO إطار عمل كاملًا خارج الصندوق. لا يتطلب منك تنفيذ أي شيء من الصفر ، كما تفعل مع السيلينيوم المستقيم.

يأتي مع كل ما تحتاجه لبناء مجموعات اختبار قابلة للتطوير ومستدامة وتحتوي على ميزات إضافية غير موجودة في إصدار السيلينيوم المستقيم. إذا كان فريقك مكونًا من مطوري JavaScript والمختبرين الذين يمكنهم البرمجة ، فمن المحتمل أن يجعلك هذا الإطار سعيدًا.

OpenTest

OpenTest هو إطار عمل تعلمته مؤخرًا ويمكن استخدامه لاختبار تطبيقات الويب والجوال وواجهات برمجة التطبيقات.

If you look at the architecture of OpenTest, you'll find that there are very few test automation scenarios that are not supported. As long as a device can run Java, that device can be used as part of your distributed test—and that happens seamlessly.

One of the claims of OpenTest is that it requires no coding skills. This is achieved using a combination of actions (keywords) written in English and stored in a YAML file. This approach is similar to the way Gauge works.

If cross-platform automation is vital to your team, then OpenTest might be a framework you'll want to try out.

Citrus Framework

Citrus is an open-source framework that will help you automate integration tests for pretty much any messaging protocol or data format. If you have a test flow that requires that your application interact with other services, then APIs and components using functional test tools such as Selenium can't help.

If you are using any kind of messaging transport such as HTTP, REST, SOAP, or JMS, Citrus is the framework of choice to test messaging integration.

Citrus also integrates with Selenium. This is handy if you need to interact with a user interface and then verify a back-end process. For example, say you had to click on a "send email" button and verify on the back end that the email was received. Citrus can receive this email or the JMS communication triggered by the UI, and verify the back-end results, all in one test.

In this way, Citrus gives you true end-to-end test coverage that you can't get with just a GUI test tool.

Karate-DSL

If you're already using Cucumber and need to also test a REST API, Karate-DSL might be a perfect option for you. It's been around for almost a year now, and more and more folks are adopting it for their API testing needs.

Since Karate's REST test tool is built on top of Cucumber-JVM, you can run your tests, view reports, and leverage any other Cucumber functionality, just as with any standard Java project.

Time to choose!

Before you write that first line of code to create your own framework, make sure there isn't an existing library or framework you can leverage. Stop wasting your time reinventing the wheel check out these automation frameworks first. And for more detailed discussions, visit my automation testing blog.

These tools are my picks, but they're just a small sampling of the open-source test automation frameworks out there. What are your favorites? Let me know what you think I should add next time—and why—in the comments below.

This story was updated in December 2019.

Keep learning

Keep up with QA's evolution with the World Quality Report 2020-21.

Put performance engineering into practice with these top 10 performance engineering techniques that work.


14. Taurus

Created by BlazeMeter, Taurus is an open-source framework that provides a simple way to create and run performance tests, as well as easy integration with additional open-source functional and performance testing software, like Selenium, Gatling or JMeter. Taurus uses YAML files, which are very easy to understand.

Key Features

  • An easily-readable, version control friendly and unified DSL (Domain-specific language) to define load test scenarios
  • Execute existing JMeter (or Grinder or Gatling or Selenium) tests
  • Create new tests from scratch using the aforementioned DSL
  • Merge multiple existing test scripts and/or DSL-driven tests into a single scenario.
  • Real-time reporting
  • JUnit-compatible test results format.
  • Easy way to define flexible pass/fail criteria. In case the results exceed a threshold, it is possible to automatically mark the test(s) as failed.
  • Platform-independency: runs where Python and Java can run.

Pricing

What Makes It Unique?

  • Simple setup and upgrading
  • Integration with the BlazeMeter reporting service
  • Console stats and pseudo-graphic charts during the test execution (which can be combined with the BlazeMeter integration

And there you have it, some of our most recommended tools for performance testing and monitoring! They all have their own advantages for performance engineering.

Is there a tool you recommend that we didn’t cover here? Let us know!

Published at DZone with permission of Andrei Guchin , DZone MVB . See the original article here.