Selenium测试用例编写实践

本文关键字:测试用例 Selenium | 更新日期: 2023-09-27 18:22:02

我是自动化测试和硒的新手,看过很多硒教程。我意识到硒测试用例是用两种格式编写的,我不确定该用哪种格式。1)

namespace SeleniumTests
{
    [TestFixture]
    public class Login
    {
        private IWebDriver driver;
        private StringBuilder verificationErrors;
        private string baseURL;
        private bool acceptNextAlert = true;
        [SetUp]

    public void SetupTest()
        {
            driver = new FirefoxDriver();
            baseURL = "http://chapters.com";
            verificationErrors = new StringBuilder();
        }
        [TearDown]
        public void TeardownTest()
        {
            try
            {
                driver.Quit();
            }
            catch (Exception)
            {
                // Ignore errors if unable to close the browser
            }
            Assert.AreEqual("", verificationErrors.ToString());
        }
        [Test]
        public void TheLoginTest()
        {
            driver.Navigate().GoToUrl(baseURL");
            driver.FindElement(By.Id("loginCtrl_UserName")).Clear();
            driver.FindElement(By.Id("loginCtrl_UserName")).SendKeys("operations");
            driver.FindElement(By.Id("loginCtrl_Password")).Clear();
            driver.FindElement(By.Id("loginCtrl_Password")).SendKeys("welcome");
            driver.FindElement(By.Id("loginCtrl_LoginButton")).Click();
            driver.FindElement(By.Id("btnInitialLoad")).Click();
            Assert.AreEqual("Chapters", driver.Title);
        }
    }
}

2)

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
namespace TestProject1
{
    public class UnitTest1
    {
        public void main()
        {
            FirefoxDriver driver = new FirefoxDriver();
            string baseURL = "http://seleniumhq.org/";
            driver.Navigate().GoToUrl(baseURL);
            driver.FindElement(By.LinkText("Projects")).Click();
            driver.FindElement(By.LinkText("Selenium IDE")).Click();
            Assert.AreEqual(driver.FindElement(By.XPath("//div[@id='mainContent']/table/tbody/tr/td/p/b")).Text, "Selenium IDE");
            driver.Close();
        }
    }
}

我该选哪一个?感谢

Selenium测试用例编写实践

第二种场景是简单的语句顺序流,没有任何框架(如Junit、TestNG、Nunit)的优势。对于刚开始使用Selenium2.0并希望使用webdriver提供的不同方法进行练习的人来说,这是一个不错的选择。

第一种情况是将代码逻辑划分为Nunit提供的不同注释,有了这些注释,人们可以从正在使用的下划线框架中获得巨大的功能,在Nunit的情况下,Nunit框架会按照定义的顺序自动调用这些注释。除此之外,这些框架还提供了许多其他功能,如报告、断言、对模拟对象的支持等

总是使用第一个场景来编写Selenium代码,因为在理解web驱动程序代码的同时,还可以掌握底层框架。