我正在尝试使用MSTest和Selenium对多个浏览器进行测试

时间:2017-02-13 15:25:58

标签: c# selenium visual-studio-2015 mstest ui-testing

我正在同时教自己Selenium 3.0和编程以学习如何自动化我的测试(以前是没有IT背景的手动测试人员,通过UAT进行测试)。

我已成功编写了一些测试,所有这些测试工作:)。我可以定义运行测试集的浏览器,但不能在多个浏览器上运行测试集作为1次测试运行。 (我必须在Test Initialise中定义浏览器并注释掉其他浏览器)。当我尝试在两个浏览器上同时运行测试时,浏览器A打开但没有运行,然后浏览器B打开并运行测试。

我已经查看了本网站和谷歌上的帖子,但是没有找到一个明确的答案,如何在C#中使用MSTest和Semenium来实现这一点

我的代码  我的一个测试

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Kukd_Consumer_Tests;

namespace Kukd_Consumer_Test
{
   //login from Hompage

    [TestClass]
    public class Login : Consumer_Standard_Functionality
    {


        [TestMethod]
        public void User_Can_Login() 
        {

           LoginPage.LoginAs("Richard.Cariven@Kukd.Com").WithPassword("Test1234").Login();
           Assert.IsTrue(AccountPageAssert.IsAtAccountPage("Hi Richard"), "Failed to login");
        }
    }
}

我的标准功能测试类(初始化和清理步骤)

using Kukd_Consumer_Tests;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Kukd_Consumer_Test
{
    public class Consumer_Standard_Functionality
    {
        [TestInitialize]
        public void Init()
        {
            driver.InitializeChrome();
            driver.InitializeFireFox();
            Homepage.GoTo_HomePage();
        }


        [TestCleanup]
        public void Cleanup()
        {
            driver.Quit();
        }
    }
}

我的驱动程序类

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
using System;

namespace Kukd_Consumer_Tests
{
    public class driver
    {
        public static IWebDriver Instance { get; set; }

        public static void InitializeChrome()
        {
            Instance = new ChromeDriver(@"C:\Users\xxxxxxxxx.xxxxxxxx\Documents\Visual Studio 2015\Drivers\Chrome");
            Instance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));

        }

        public static void InitializeFireFox()
        {
            Instance = new FirefoxDriver();
            Instance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));

public static void Quit()
        {
            Instance.Quit();
        }
    }
}

我的LoginPage类

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Kukd_Consumer_Tests
{
    public class LoginPage
    {


        public static LoginCommand LoginAs(string userName)
        {
            return new LoginCommand(userName);
        }

        public class LoginCommand
        {            
            private readonly string userName;
            private string password;

            public LoginCommand(string userName)
            {

                this.userName = userName;

            }

            public LoginCommand WithPassword(string password)
            {
                this.password = password;
                return this;
            }

            public void Login()
            {
                var accountButton = driver.Instance.FindElement(By.LinkText("My Account"));
                accountButton.Click();

                var loginInput = driver.Instance.FindElement(By.Id("login-email"));
                loginInput.SendKeys(userName);

                var passwordInput = driver.Instance.FindElement(By.Id("login-password"));
                passwordInput.SendKeys(password);

                var loginButton = driver.Instance.FindElement(By.Id("loginBtn"));
                loginButton.Click();
            }
        }
    }
}

当我运行上面的Chrome时,会打开一个空白窗口,不再执行任何操作。 Firefox打开主页,然后按预期运行测试并在完成后关闭窗口。

0 个答案:

没有答案