概述
Selenium 是一个用于Web应用程序的可移植开源软件测试框架。它几乎可以在每个操作系统上运行。它支持所有现代浏览器和多种语言,包括.NET(C#),Java。
在本实验中,您将学习如何在C#Web应用程序上执行selenium测试用例,作为Azure DevOps Release Pipelines 的一部分。
准备工作
-
按照以下练习操作前,请参阅 Getting Started 。
-
单击下面的部署到Azure按钮,配置Windows Server 2016虚拟机以及SQL Express 2017和浏览器 - Chrome和FireFox。
配置资源大约需要20-25分钟。部署成功后,您将看到如下所示的资源。
-
使用 Azure DevOps Demo Generator 在Azure DevOps组织上配置项目.
练习1:创建部署组
我们将使用Azure DevOps中的部署组功能将应用程序部署在先前配置的VM上,以执行Selenium测试用例。Azure DevOps中的 Deployment Groups 使您可以更轻松地组织用于托管应用程序的服务器。部署组是一组计算机,每个计算机上都有一个Azure DevOps代理。每台计算机都与Azure DevOps交互以协调应用程序的部署。
我们还将使用 Deployment Groups 在VM中部署SQL数据库。
-
转到 Deployment Groups 的 Pipelines 选项卡下. 点击 Add a deployment group .
-
输入部署组名称,然后点击 Create.
这将生成PowerShell脚本以将VM与此部署组关联。
-
选中 Use a personal access token in the script for authentication 复选框, 这样我们就不必在每次执行脚本时都提供密码。 点击 Copy script to clipboard ,以复制将在下一个练习中使用的脚本,将VM与部署组关联。
练习2:将VM与部署组关联
在本练习中,我们将在VM上执行 registration script 以与部署组关联。
-
以下面的帐号使用远程桌面 RDP 登陆到虚拟机。
- Username: vmadmin
- Password: P2ssw0rd@123
-
以管理员模式打开 Windows PowerShell , 粘贴复制的Registration script,然后按Enter键。
-
当PowerShell窗口中出现提示消息 Enter deployment group tags for agent? (Y/N) (press enter for N) > 时,键入Y并按Enter键。
-
键入 web, db 做为标签。
-
当出现提示:Enter User account to use for the service (press enter for NT AUTHORITY\SYSTEM) > 时, 键入 Enter 以配置服务运行在服务帐号 NT AUTHORITY\SYSTEM 下.
-
刷新Azure DevOps部署组页面,您将注意到您的部署组已联机。
练习3:在VM上配置代理
让我们在此VM上配置 private 代理,因为Selenium要求代理以交互模式运行以执行UI测试。
-
转到VM并打开文件夹 C:\VSTSwinAgent.
-
以管理员身份打开命令行. 进入到路径 C:\VSTSWinAgent ,输入 Config.cmd 后键入 Enter.
-
提供以下详细信息::
- 输入服务器URL:您的Azure DevOps组织URL
- 身份验证类型:按回车键以 PAT 作为验证类型,并在接下来的提示中粘贴这个 PAT。
- 让我们使用其余配置的默认选项。按 Enter 键以显示所有提示,直到命令执行完成。
- 注册代理后,键入 run.cmd 并按Enter键以启动代理。
点击 这里 以获取有关如何配置代理的更多信息。
练习4:配置发布管道
部署组中可以使用目标计算机来部署应用程序并运行selenium测试用例。发布定义使用 Phases 部署到目标服务器。
-
转到 在 Pipelines 下的 Releases, 选择 Selenium 发布定义,然后单击 Edit.
-
打开 Dev 环境以查看三个部署阶段.
-
IIS Deployment phase:在此阶段,我们使用以下任务将应用程序部署到VM
-
IIS Web App Manage: 此任务在使用部署组注册的目标计算机上运行。 它在本地创建一个在端口 82 http://localhost:82 下运行,名为 PartsUnlimited 的 website 和一个 Application Pool
-
IIS Web App Deploy: 此任务使用 Web Deploy 将应用程序部署到IIS服务器。
-
-
Database deploy phase:在此阶段,我们使用 SQL Server Database Deploy 任务将 dacpac 文件部署到数据库服务器。
-
Selenium测试执行: 作为发布过程的一部分执行 UI testing 是检测意外更改的好方法,并且这不是很困难。设置基于浏览器的自动化测试可以提高应用程序的质量,而无需手动执行。在此阶段,我们将在已部署的Web应用程序上执行Selenium测试。以下任务描述了使用Selenium来测试发布管道中的网站。
-
-
单击 IIS Deployment 阶段,然后选择我们在 练习2 中创建的部署组。
-
对 SQL Deployment 阶段重复上述步骤。
-
点击 Selenium tests execution 阶段并将代理池设置为 Default 然后点击 Save 以保存修改.
练习5:触发构建和发布
在本练习中,我们将触发 Build 以编译Selenium C#脚本以及Web应用程序。生成的二进制文件将复制到Azure VM,最后selenium脚本将作为自动 发布 的一部分执行。
-
导航到 Builds 下的 Pipelines 标签,并手工触发一个构建。
-
此构建将测试工件上传到Azure DevOps中,工件将在发布中使用。
-
构建成功后,将触发发布。导航到 Releases 选项卡以查看正在进行的部署。
-
当 Selenium test execution 阶段开始时,请连接回先前配置的VM以查看UI测试执行情况。
Note: 首次在VM上部署测试代理大约需要8分钟。完成此任务后,您可以连接到VM以查看实际的测试执行情况。 -
在本实验中,我们正在执行四个配置为在Chrome和Firefox浏览器上运行的UI测试场景。
测试在 Chrome 中运行
测试在 Firefox 中运行
发布成功后,单击 测试 选项卡以分析测试结果。从 Outcome 部分的下拉列表中选择所需的过滤器,以查看测试及其状态。
总结
在本实验中,您学习了如何使用Azure Pipelines在Azure VM上的不同浏览器上自动执行和执行Selenium UI测试用例。