Selenium使用经验-启动和关闭

2011-07-01  籽藤 

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();
        }

371°/3713 人阅读/0 条评论 发表评论

登录 后发表评论