c# webdriver_使用C#在WebDriver中自动在Edge中进行Web应用程序测试

c# webdriver

从熟悉的Web应用程序和服务到Electron托管JavaScript,再到新一代独立的渐进式Web应用程序,越来越多的应用程序都基于Web技术构建。 HTML 5技术的基本家族(包括JavaScript和CSS以及诸如TypeScript之类的转译语言)已经成熟,并且所提供的功能远远超出了网络初期的预期。

现代网络几乎提供了交付可靠的企业级应用程序所需的所有工具。 我们可以在熟悉的IDE中构建代码。 我们可以使用基于浏览器的工具(例如在F12之后等待的工具)对其进行调试。 甚至有短绒毛毡引导我们编写更好的代码。 但是一个领域仍然落后:测试。

[ 也在InfoWorld上:2020年探索的5种Microsoft开发人员工具和技术 ]

WebDriver和Selenium简介

自动化的Web测试工具已经存在了几十年,最初是使用浏览器引擎来为我们提供无头工具,这些工具使用页面文档对象模型来自动化表单归档和解析结果。 早期的工具能够大规模模拟用户交互,从而为我们提供了一种工具,不仅可以帮助显示页面和应用程序是否按预期运行,而且还可以显示网站在负载下的运行情况,这是Web应用程序测试的重要组成部分,如果没有自动化,这是很难做到的。

现代的Web应用程序测试建立在那些久经考验的技术之上,尽管它们现在不再模拟浏览器和用户,而是基于Selenium项目的原始WebDriver规范来测试与生产浏览器(例如Firefox,Chrome和旧版EdgeHTML和新的基于Chromium的Edge 。 微软去年在Ignite宣布了在新Edge中对WebDriver的支持 。

目前, WebDriver API有望成为万维网联盟标准 ,并且具有适当的工作草案规范。 它由Apple和BrowserStack的代表编辑,旨在整理Selenium的浏览器自动化和应用程序测试方法,利用Selenium广泛的社区和行业支持及其作为开放源代码项目的悠久历史。

使用WebDriver,您可以编写代码来直接控制浏览器,并使用测试脚本来模拟用户交互。 值得考虑使用基于JavaScript测试的WebDriver,因为您可以更广泛地浏览浏览器操作,跨选项卡和窗口工作,同时模拟来自用户和基础操作系统的事件。

Edge和WebDriver

对于每个Edge版本,您确实都需要不同的驱动程序。 这使您可以与Neta,Dev和Canary发行版一起测试Edge发行版。 在发行版和预发行版之间运行测试可以帮助您隔离特定于浏览器的错误,或针对新的浏览器功能调整页面和应用程序,而不会影响正常操作。 Microsoft为Chromium版本和旧版EdgeHTML提供了WebDriver实现的库 。

为您的Edge版本安装适当的WebDriver之后,请从Selenium站点安装语言绑定 。 从Ruby之类的脚本语言到Java之类的流行企业语言,都有最常见的语言版本。 Selenium提供了一个有用的Chrome插件(可在新的Edge中使用),可用于收集和播放交互,构建和测试简单脚本。

在C#中使用WebDriver

C#WebDriver为您提供API调用的.NET绑定 ,使您可以构建和运行自己的测试脚本,而无需站立Selenium服务器的实例。 您可以从NuGet以及Selenium站点下载它 ,从而简化了将其包含在Visual Studio项目和解决方案中的过程。 将基于C#的测试与Web应用程序包含在同一项目中是个好主意,因此,您可以与将用于单元测试和验收测试的WebDriver测试并行开发ASP.NET Core。 其他安装选项包括将Chocolatey软件包管理器或预先配置的Docker容器与Edge和Edge WebDriver一起安装并运行。

Microsoft当前建议使用开发中的Selenium 4.00,它具有公开的alpha版本,因为它对新的Chromium Edge具有内置支持。 带有稳定的Selenium 3的较旧版本仍可以使用,并且具有适当的语言绑定。 您需要确保已为Selenium 版本安装了适当的版本 。 WebDriver和Edge的最新版本已将启用WebDriver所需的代码从ChromeOptionsEdgeOptions 如果您在未进行适当更改的情况下将它们用于Edge 80或更高版本,则旧版本的测试将无法正常工作。

如果你正在使用Selenium的是旧版本,你仍然可以与边缘的Chrome版本中使用它,虽然它默认为EdgeHTML的旧版本,除非你设置UseChromium财产EdgeOptions为true。 然后,您可以定位特定的二进制文件,如果在开发PC上安装了多个版本的Edge,则这是一个有用的选项。 将WebDriver设置为使用最新的Edge后,便可以将Selenium与特定的Chromium功能一起使用; 例如,您可以在无头模式下运行Edge以测试Web搜寻器或REST API。

WebDriver API很复杂,具有许多功能和陡峭的学习曲线。 您可能会发现,使用Selenium IDE浏览器插件为测试生成基本脚本,然后将这些脚本用作您自己的代码的基础,是最容易的。 即使这样,在将您保存的脚本转换为C#代码之前,花一些时间了解API的工作原理也是一个好主意。

将WebDriver与Visual Studio测试工具一起使用

实际上,您的许多测试代码将依赖于结构良好HTML和CSS,例如,使用元素标签导航到表单,然后填写详细信息。 良好的Web设计实践将使自动化测试站点和内容变得更加容易,因此请确保标记了ASP.NET元素。 如果要针对未编写的站点进行测试,请使用Edge中的F12工具获取元素名称,然后在脚本中使用它们。

WebDriver不仅是浏览内容的工具; 您可以与之交互,将内容发送到表单字段,选择元素,然后与按钮和其他导航功能进行交互。 然后,可以将交互脚本包装为具有通过和失败条件的测试用例,以供熟悉的工具(例如NUnit)使用 。 使用NUnit,您可以使测试成为Visual Studio构建的一部分。 您不仅限于IDE; 将WebDriver测试捆绑到Azure Pipelines或GitHub Actions中可以帮助确保在将代码推送到生产之前或在接受拉取请求之前将代码进行测试,然后将新代码与分支合并。

测试是任何开发过程(甚至是Web应用程序开发)的关键要素。 通过自动化Edge与Selenium和WebDriver的交互,我们可以在使用实际浏览器功能的测试框架中工作,从而使我们能够与代码同时构建测试,并使它们成为我们软件开发生命周期的一部分。

翻译自: https://www.infoworld.com/article/3539228/using-c-to-automate-web-application-testing-in-edge-with-webdriver.html

c# webdriver

你可能感兴趣的:(c# webdriver_使用C#在WebDriver中自动在Edge中进行Web应用程序测试)