سؤال

أردت فقط بعض الآراء من الناس التي تعمل في السيلينيوم (http://selenium.openqa.org) لقد كان لدي الكثير من الخبرة مع WaTiN وحتى كتب تسجيل جناح عليه.كان إنتاج بعض تنظيما جيدا التعليمات البرمجية ولكن فقط يحتفظ بها لي يبدو شركتي جميع ولكنها تخلت عن ذلك.إذا كان لديك تشغيل السيلينيوم هل كان لديك الكثير من النجاح ؟ سوف يتم استخدام .NET framework 3.5 هل السيلينيوم تعمل بشكل جيد مع ذلك ؟ هو رمز إنتاج نظيفة أو مجرد قائمة من جميع التفاعل ؟ (http://blogs.conchango.com/richardgriffin/archive/2006/11/14/Testing-Design-Pattern-for-using-WATiR_2F00_N.aspx) كيف جيدا هل وزعت مجموعة اختبار عادلة ؟

أي مغص أو الثناء على النظام سيكون موضع تقدير كبير!

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم السيلينيوم IDE أن يولد رمز, ثم كنت مجرد الحصول على قائمة كل عمل أن السيلينيوم سوف ينفذ.لي السيلينيوم IDE هو وسيلة جيدة لبدء أو فعل سريع "محاولة وانظر" اختبار.ولكن عندما كنت تفكر في الصيانة و أكثر قابلية للقراءة البرمجية يجب كتابة التعليمات البرمجية الخاصة بك.

وسيلة جيدة لتحقيق جيدة السيلينيوم هو رمز استخدام الصفحة كائن نمط بطريقة رمز يمثل الملاحة الخاص بك تدفق.هنا هو مثال جيد أن أرى في الترميز دوجو Floripa (من البرازيل):

public class GoogleTest {

    private Selenium selenium;

    @Before
    public void setUp() throws Exception {
            selenium = new DefaultSelenium("localhost", 4444, "*firefox",
                            "http://www.google.com/webhp?hl=en");
            selenium.start();
    }

    @Test
    public void codingDojoShouldBeInFirstPageOfResults() {
            GoogleHomePage home = new GoogleHomePage(selenium);
            GoogleSearchResults searchResults = home.searchFor("coding dojo");
            String firstEntry = searchResults.getResult(0);
            assertEquals("Coding Dojo Wiki: FrontPage", firstEntry);
    }

    @After
    public void tearDown() throws Exception {
            selenium.stop();
    }

}


public class GoogleHomePage {

    private final Selenium selenium;

    public GoogleHomePage(Selenium selenium) {
            this.selenium = selenium;
            this.selenium.open("http://www.google.com/webhp?hl=en");
            if (!"Google".equals(selenium.getTitle())) {
                    throw new IllegalStateException("Not the Google Home Page");
            }
    }

    public GoogleSearchResults searchFor(String string) {
            selenium.type("q", string);
            selenium.click("btnG");
            selenium.waitForPageToLoad("5000");
            return new GoogleSearchResults(string, selenium);
    }
}

public class GoogleSearchResults {

    private final Selenium selenium;

    public GoogleSearchResults(String string, Selenium selenium) {
            this.selenium = selenium;
            if (!(string + " - Google Search").equals(selenium.getTitle())) {
                    throw new IllegalStateException(
                                    "This is not the Google Results Page");
            }
    }

    public String getResult(int i) {
            String nameXPath = "xpath=id('res')/div[1]/div[" + (i + 1) + "]/h2/a";
            return selenium.getText(nameXPath);
    }
}

على أمل أن يساعد

نصائح أخرى

أنا باستخدام السيلينيوم التحكم عن بعد من أجل اختبار ASP.Net تطبيقات (وهو ما أفترض أنك سوف تستهدف كذلك) ، ويعمل كبيرة.

إذا كنت لم تستخدم السيلينيوم ، ومشاهدة بعض قطات للشاشة استخدام السيلينيوم IDE.هذا وسوف تعطيك فكرة جيدة عن كيفية 'السيلينيوم' يعمل.IDE هو فايرفوكس البرنامج المساعد الذي يتيح لك أساسا تطوير سريعة سجل واللعب الاختبارات كما تذهب.أكبر اختبار suites أو الكتابة حقا للصيانة الاختبارات على الرغم من أنني أنصح السيلينيوم التحكم عن بعد.(IDE هو رائع إذا كنت مجرد الحصول بداية على الرغم من.)

السيلينيوم التحكم عن بعد يتيح لك استخدام الخاص بك المفضلة اللغة ووحدة إطار اختبار محرك متصفح الويب من أجل تنفيذ الاختبارات الخاصة بك.إذا كنت أكثر راحة مع C#/NUnit ، يمكنك كتابة الاختبارات الخاصة بك بهذه الطريقة واستخدام كل NUnit الأشياء الجيدة التي تريد.(على سبيل المثال ، Test-Driven.net البرنامج المساعد).أيضا, منذ الاختبارات الخاصة بك هي مكتوبة في لغة عالية المستوى, كنت قادرا على القيام بأشياء مثل ترث من معين الاختبار الدرجة التي يمكنك استخدامها لجعل الخاص بك الفعلية طريقة الاختبار رمز أنظف بكثير.(أو على الأقل هذا الطريق وأنا أكتب بلدي التجارب.فإنه يتيح لي اختبار السيناريوهات المعقدة التي على اختبار خط طريقة العد في عدد معقول.)

أذكر لكم توزيع الاختبار.للأسف لم أجد طريقة استخدام السيلينيوم الشبكة المشروع مع NUnit.السيلينيوم الشبكة يسمح لك لتنفيذ اختبار جناح على مدى عدة آلات مختلفة و المتصفح الحالات.وذلك بدلا من تشغيل من خلال القول 200 طرق اختبار واحدا تلو الآخر (أي متسلسل), هل يمكن نشر تحميل على قول أربعة الشبكة الحالات (أي تعمل في أربعة أنواع مختلفة من المتصفحات الحالات في وقت واحد) على جهاز واحد أو عدة آلات اعتمادا على كيفية توزيع كنت ترغب في الحصول على.

إذا كنت أكتب الاختبارات الخاصة بك في جافا أو PHP الرغم من ذلك ، قد يكون لديك أفضل حظا.أنا أتوقع أن هذا سيكون متاح عبر NUnit مع الافراج عن NUnit2.5 والتي سوف تشمل pNUnit الموازي الاختبار.

إذا كان لديك أي أسئلة أخرى حول السيلينيوم, مجرد توضيح سؤالك الأصلي و سأكون سعيدا في محاولة تساعدك على الخروج.(السيلينيوم هو مجرد واحدة من تلك الأدوات التي تستخدم كل يوم لذلك أنا أستمتع مساعدة للحصول على الجديد بدأ الناس معها..)

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

الآن يمكنني استخدام السيلينيوم التحكم عن بعد مع روبي السائق الذي يسمح لي أن استخدام روبي ما تقدم.أنا اختبار العديد من البيئات:Windows 2000, XP, Vista, Mac 10.4/10.5 و لكل من تلك التي تنطبق سفاري 2/3, فايرفوكس 2/3 Internet Explorer 6/7.

السيلينيوم يدعي أنه متوافق مع جميع أولئك نظام التشغيل و المتصفحات ، على الرغم من أنني أعاني من مشاكل حاليا مع Internet Explorer (سؤالي الأول على ستاكوفيرفلوو هو عن ذلك في الواقع).ولكن أنا لا أعرف من أي أدوات أخرى بهذا قوية و يعمل مع العديد من المنصات.

أكبر مشكلة لدي مع السيلينيوم هو دوم تحليل.جافا سكريبت هي childNodes لا يمكن الاعتماد عليها لأن سفاري/فايرفوكس تجاهل بيضاء و تعليق العقد ، في حين Internet Explorer لا.XPath في Internet Explorer هو 10-20 مرات أبطأ مما كانت عليه في سادس/FF.innerHTML ليست دائما موثوقة في IE.

السيلينيوم هو لائق جدا أداة ولكن هناك بعض الأمور احترس:

  • السيلينيوم IDE و السيلينيوم الأساسية لا حصة 100% نفس الوظيفة.على سبيل المثال النقر على الحق معتمد من قبل IDE ولكن الأساسية الحالية الإفراج لا يكون ذلك.ومع ذلك ، باستخدام إصدار أحدث من مستودع يحل ذلك.

  • في حالة ext js, gwt الخ تأكد من أن لديك السليم معرفات الخاص بك عرض العناصر بدلا من تلقائيا (عشوائي) منها.

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

أنا مروحة كبيرة من السيلينيوم.رئيسية واحدة مسكتك أنه من الجيد أن تعرف عن وقت مبكر ، على الرغم من أن السيلينيوم IDE لديه الكثير من المشاكل مع النوافذ المنبثقة.هذه المشاكل لا تزال قائمة في السيلينيوم RC, ولكن يمكن أن تجعل التنمية قليلا من الصداع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top