Selenium 自动化测试工具介绍

在软件开发过程中,自动化测试是确保软件质量的关键环节之一。Selenium 是一个广泛使用的自动化测试工具,它允许开发者远程控制浏览器实例并模拟用户与浏览器的交互。本文将详细介绍 Selenium IDE 和 WebDriver,这两种主要的 Selenium 工具,并探讨它们的使用方式和优势。

Selenium IDE

Selenium IDE 是一个浏览器插件,能够记录和回放用户与浏览器的交互。以下是如何在 Chrome 浏览器中使用 Selenium IDE 的步骤:

1. 打开 Chrome 浏览器,进入扩展程序页面。 2. 打开 Chrome Web Store。 3. 搜索 "Selenium IDE" 并添加到 Chrome。 4. 安装完成后,将在浏览器中看到 Selenium IDE 图标。 5. 点击图标,创建新项目,输入项目名称(例如:DemoSeleniumIDEPrj)。 6. 提供应用程序的 URL(例如:可以从 GitHub 下载一个示例 ASP.NET Web 应用程序)。 7. 点击右上角的录制按钮,这将打开应用程序的登录页面。 8. 输入用户名和密码,然后点击提交。应用程序将重定向到员工列表页面。 9. IDE 将记录上述步骤,可以再次运行测试以查看它是否执行相同的步骤。如果测试成功,将显示绿色。

Selenium IDE 使用 Selenese 语言编写命令。命令(例如:open, type, click 等)帮助 Selenium 理解要执行的动作或操作。

Selenium IDE 的测试可以导出为以下语言的脚本:

C# NUnit 选项应该创建 .cs 文件。

尽管 Selenium IDE 是一个强大的工具,但它也有一些局限性:

  • 无法进行数据驱动测试。
  • 无法进行数据库测试。
  • 无法测试 Web 应用程序中的动态操作。
  • 无法导出结果报告。
  • 无法用于广泛的操作。

SeleniumWebDriver

WebDriver 是一个 API(应用程序编程接口),用于创建和运行测试,它是一个跨平台的测试框架。它解释命令并在 Web 元素上执行操作。它支持像 JUnit、NUnit、TestNG 等测试框架。可以从 Selenium 官方网站下载各种编程语言的 WebDriver。

以下是 WebDriver C# API 命令的分类:

driver.get("www.google.com"); // 获取网页 driver.getTitle(); // 获取当前网页标题 driver.getCurrentUrl(); // 获取当前网页 URL driver.navigate().refresh(); // 刷新当前网页 driver.navigate().forward(); // 在现有浏览器窗口中点击前进按钮 driver.findElement(By.id("UserName")).clear(); // 清除元素 driver.findElement(By.id("UserName")).click(); // 点击元素

要创建和运行 C#WebDriver测试,需要以下组件:

  • Visual Studio
  • 测试框架(本文示例中使用 NUnit)
  • SeleniumWebDriver
  • Chromedriver 可执行文件

以下是设置和运行 WebDriver 测试的步骤:

  1. 打开 Visual Studio。
  2. 创建新的类库项目(File -> New -> Project)。
  3. 使用 NuGet 将WebDriver和 NUnit 框架添加到 Visual Studio 项目中。NuGet 是一个依赖管理工具,它从仓库中拉取 WebDriver 和 NUnit 等所有包。点击 Tools -> NuGet Package Manager -> Manage NuGet packages for solution。
  4. 添加包后,Installed 标签页应如下所示:
  5. 将 "从 Selenium IDE 导出的脚本(.cs 文件)" 添加到 Visual Studio 项目中。从 Selenium IDE 导出脚本可以节省编码时间。也可以创建一个新的测试并编写 Selenium 脚本。

脚本文件应如下所示:

// 生成自 Selenium IDE using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Threading; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.Remote; using OpenQA.Selenium.Support.UI; using OpenQA.Selenium.Interactions; using NUnit.Framework; [TestFixture] public class DemotestTest { private IWebDriver driver; public IDictionary<string, object> vars { get; private set; } private IJavaScriptExecutor js; [SetUp] public void SetUp() { driver = new ChromeDriver(); js = (IJavaScriptExecutor)driver; vars = new Dictionary<string, object>(); } [TearDown] protected void TearDown() { driver.Quit(); } [Test] public void demotest() { driver.Navigate().GoToUrl("http://localhost:64031/"); driver.Manage().Window.Size = new System.Drawing.Size(1066, 824); driver.FindElement(By.Id("username")).Click(); driver.FindElement(By.Id("username")).SendKeys("demo"); driver.FindElement(By.Id("password")).SendKeys("demopwd"); driver.FindElement(By.Id("btnsubmit")).Click(); driver.Close(); } }

要通过 xpath 查找元素(例如:driver.FindElement(By.XPath("//input[@id='username']")));),可以使用 Chropath。Chropath 是一个 Chrome 扩展。添加后,可以在开发者工具(F12)下看到它。

要运行测试,需要 "ChromeDriver"。下载 ChromeDriver,解压缩并将其放入 Windows 路径中(例如:Windows 10 中的 c:\windows)。可以通过命令提示符测试 ChromeDriver(c:\windows -> Chromedrive.exe)。将看到 "Starting ChromeDriver"。使用测试资源管理器运行测试。这将打开 Chrome 浏览器中的应用程序并执行编写的步骤。步骤按顺序执行。如果测试通过,测试将变为绿色。

关注点

  • 开源工具:它是免费的,无需购买。
  • 浏览器和平台独立:由于它是用 JavaScript 开发的,它支持大多数浏览器,如 Chrome、Firefox、Internet Explorer、Edge、Safari、Opera,并且支持 Windows、Mac 和 Linux 等操作系统。
  • 多种编程语言的 Web 驱动:为了编写自动化脚本,提供了 C#、Java、Ruby、Python 和 JavaScript 等编程语言的 Web 驱动。
  • 节省时间,减少错误:在执行重复测试时节省大量时间,并避免手动错误。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485