[转]Selenium的启动和关闭

上一篇 / 下一篇  2011-08-29 16:03:58 / 个人分类:Selenium

一般我們會在[TestInitalize]和[TestCleanup]方法中創建和關閉Selenium對象。但是,如果在[TestInitalize]中直接寫創建Selenium對象的語句,那麽在VS中運行多個TestMethod時,就會在一組測試之間反復多次的啟動和停止Selenium Server,這是相當耗費時間的。

盡管有[ClassInitalize]和[ClassCleanup]標簽,但是這個Microsoft.VisualStudio.TestTools.UnitTesting框架規定了:[ClassInitalize]和[ClassCleanup]標記的方法必須是靜態方法,而[TestMethod]方法卻必須是非靜態的;那麽,Selenium對象到底應該是靜態還是非靜態呢?

So,我們不能直接在測試類中創建Selenium對象,不管是ClassInitalize還是TestInitalize,都不太好。解決辦法是提供公共類,在[TestInitalize]和[ClassCleanup]中調用。

Selenium公共類

public class MySelenium
    {
        private static ISelenium selenium = null;
        private static MyLog log;

        public static ISelenium getSelenium() {

            if (selenium == null) {

                selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "http://ws-gisgtssts-03:8001/");
                selenium.Start();
            }

            return selenium;
        }


public static void stopSelenium() {

            try
            {
                selenium.Stop();
            }
            catch (Exception ex) {

                log.addlogWithException("login", "", ex.Message);
            }
        }

        }

調用公共類

 [TestInitialize]
        public void SetupTest()
        {
            selenium = MySelenium.getSelenium();

            selenium.Open("/Account/ChangePassword");
        }

[ClassCleanup]
        public static void TeardownTest()
        {
            MySelenium.stopSelenium();
        }


TAG:

 

评分:0

我来说两句

Open Toolbar