LambdaTest Selenium 测试工具教程(2019 年示例)





5.00/5 (1投票)
LambdaTest Selenium 测试工具教程(2019 年示例)
目录
- 什么是网站测试自动化?为什么需要它?
- 什么是 Selenium Grid?它如何与 LambdaTest 一起工作?
- 为什么使用 Selenium Grid?基于云的解决方案有什么好处?
- LambdaTest 的功能和服务
- LambdaTest 支持的语言和框架
- 用法
- 如何免费使用 Lambda Test 的 Selenium Grid?
1. 什么是网站测试自动化?为什么需要它?
测试有助于识别特定应用程序是否能有效通信并正确访问其功能。
测试还有助于确认特定应用程序在不同情况下的行为。换句话说,测试是验证应用程序是否符合业务逻辑条款并能否在用户端产生预期输出的有效方法。
而测试自动化是提高软件测试效率、效能和覆盖率的最佳方式。
手动测试需要一个人坐在电脑前,仔细地浏览应用程序的屏幕,尝试各种用法和输入组合,将结果与预期行为进行比较,并记录他们的观察结果。
在开发周期中,手动测试会经常在源代码更改和其他情况(如多种操作系统环境和硬件配置)下重复进行。
但是,通过使用测试自动化工具,您可以预先记录和预定义这些操作,并将这些测试的结果与预期行为进行比较,并报告这些测试的成功或失败状态。
这些自动化测试可以根据需要轻松扩展,以执行手动测试无法完成的任务。并且随着对尽可能减少缺陷的产品需求的不断增长,很容易看出为什么自动化软件测试是成功开发项目的基本组成部分。
2. 什么是 Selenium Grid?它如何与 LambdaTest 一起工作?
LambdaTest Selenium Grid 是一个可扩展、安全且可靠的基于云的 Selenium Grid。它允许您跨所有主流浏览器和各种浏览器版本(最新和旧版本)以及操作系统执行自动化的跨浏览器测试。
它还允许您并行运行多个 Selenium 自动化测试,从而缩短构建时间。它还提供超过 2000 个移动和桌面浏览器的屏幕截图,因此您可以执行视觉化的跨浏览器兼容性测试,而无需手动测试每个浏览器,因为您只需选择配置即可获得完整的页面截图。
3. 为什么使用 Selenium Grid?基于云的解决方案有什么好处?
Selenium Grid 帮助您在多个已注册到中央集线器的不同节点上并行运行测试。
您通过向集线器发送请求来创建驱动程序对象,集线器会根据您设置的期望能力找到匹配的节点,并在该节点上执行测试。节点可以是运行任何特定浏览器和操作系统的任何设备。
使用 Selenium Grid 的主要原因是可以运行您的测试
- 在各种浏览器、操作系统和设备上。这确保了被测应用程序在 Web 浏览器、操作系统和硬件架构的多种组合之间的兼容性。
- 并行运行。例如,如果您有 10 个节点并且需要执行 50 个测试的测试套件,那么它将能够在所有 10 个节点上并行运行这些测试。
- 这将有助于最大限度地减少测试执行时间,因为它将比在没有 Selenium Grid 的单台计算机上运行此测试套件所需的时间少 5 倍。
这为您提供了关于应用程序在各种计算机上的各种浏览器上将如何表现的全面了解,如果需要,这有助于相应地增强和改进您的应用程序。
基于云的 Selenium Grid 的优势
Selenium Grid 的问题在于设置额外的机器作为节点可能很昂贵,而这正是在线 Selenium Grid (SaaS) 真正大放异彩的地方。它们提供各种套餐,从入门级定价到企业套餐。
通常,云解决方案的价格会随着测试数量和并发测试数量呈线性增长。这意味着您可以根据您的需求进行扩展,同时也能相应地控制成本。
关于 Selenium Grid 的另一件事是,它们的设置非常困难。要在虚拟机 (VM) 上设置 Selenium Grid,您需要执行以下操作:
- 下载操作系统并将它们安装在不同的虚拟机上
- 设置网络配置,安装 Java 和 Selenium
- 下载并安装所需的浏览器
- 使 Selenium 在启动时自动启动
- 配置 Grid 以接受节点,包括超时设置和其他设置
- 创建一种机制,为每个测试自动启动和销毁虚拟机,因为您希望每次测试运行都有干净的虚拟机
- 根据操作系统和平台安装屏幕截图程序
- 上传屏幕截图并存储它们,以便以后查看
- 保持虚拟机最新:安装操作系统更新,更新浏览器版本,安装补丁等。
- 调试到虚拟机的连接不稳定、浏览器启动失败的问题
因此,使用此类云服务的优点在于,提供商会负责所有耗时的 Selenium Grid 基础架构开发和维护工作。云提供商拥有大量浏览器/操作系统/组合,并支持移动测试。
4. LambdaTest 的功能和服务
可扩展的 Selenium Grid
LambdaTest 提供了一个可扩展的 Selenium Grid,专为速度而设计,可大幅缩短构建时间,加快上市速度。
在其按需可扩展的 Selenium 基础架构上并行运行您的 Selenium 自动化测试,并将构建时间缩短数倍。一次并行运行大量测试,以在他们的 Selenium Grid 上加快测试速度。
浏览器兼容性测试
LambdaTest Selenium Grid 使您能够进行浏览器兼容性测试,并提供高度的灵活性,可使用您选择的桌面和移动浏览器、浏览器版本、操作系统和分辨率来准备实时交互式跨浏览器兼容性测试环境。
所有远程浏览器都预装了 RIA 软件和开发人员工具。您还可以录制测试会话或在实时浏览器兼容性测试会话中随时截屏!
自动化截图
LambdaTest 的自动化截图功能让您只需选择配置即可跨 2000 多个移动和桌面浏览器执行视觉化的跨浏览器兼容性测试。无需手动测试每个组合,您可以在几秒钟内获得完整的页面截图。
详细调试测试用例
LambdaTest Selenium Grid 还允许您使用多种类型的测试日志来分析和调试您的 Selenium 测试,例如元数据日志、网络日志、命令日志、异常日志、视觉日志和原始 Selenium 日志。
您还可以对整个测试运行进行自动视频录制,并在各个入口点截屏,以分析视觉缺陷并检查可能的修复方法。
在最新和旧版浏览器上进行测试
LambdaTest Selenium Grid 提供了许多不同的浏览器来运行您的测试。从早期版本到最新的 beta 版本,他们提供所有版本的 Chrome、Safari、Firefox、Opera、Edge 和 Internet Explorer,让您能够覆盖每一个边缘测试用例。
集成
LambdaTest 通过 Jenkins、Teamcity、Travis CI 和 Bamboo 的插件,为持续集成工具提供持续测试支持,您可以配置 Selenium 功能并在 LambdaTest 的 Selenium Grid 上运行自动化脚本。
它还为一键式 Bug 报告提供集成支持,只需单击一下,即可直接将问题从 LambdaTest 推送到第三方项目管理或通信工具,例如 JIRA、Asana、Slack、Trello、BitBucket、GitLab、GitHub、Clubhouse、VSTS、BugHerd、Mantis 等。
24/7 支持
如果您在使用 LambdaTest 过程中遇到任何问题,他们都会为您解决。他们的技术专家全天候提供支持。
您可以通过填写联系表单、应用内消息或致电与他们联系。您也可以发送电子邮件至 support@lambdatest.com,他们会尽快回复您。
内置问题跟踪器
如果您不使用任何第三方项目管理工具,那么您可以使用 LambdaTest 内置的问题跟踪器。在执行 Selenium 测试时,您可以直接从 LambdaTest 平台管理您的 Bug。您可以使用其内置的问题跟踪器分配、跟踪、导出到 PDF、共享 Bug 并进行完全控制。它易于使用且灵活。
5. LambdaTest 支持的语言和框架
以下是 LambdaTest Selenium Grid 支持的所有语言及其对应的框架。
6. 用法
在本部分,您将了解如何配置和使用 LambdaTest 的 Selenium 自动化 Grid,以及它们的服务如何工作以及整个平台是如何组合在一起的。在本教程中,我们将设置一个简单的 PHP 应用程序,该应用程序将使用 PHPUnit 测试框架运行 Selenium 脚本。
如何设置
要运行 PHP 脚本,您需要在计算机上同时安装 PHP 和 Composer。如果您没有安装 PHP,可以从 此处获取,或者可以使用 Xampp、Mamp、Wamp 等解决方案堆栈。要获取 Composer,您可以简单地按照 此处 的说明进行操作。
现在您已经准备好了,可以开始安装 Selenium 依赖项。为此,请首先创建一个目录来存放您的应用程序,然后从终端导航到该目录并运行以下命令:
composer require phpunit/phpunit-selenium facebook/webdriver
或者,根据您的 Composer 配置,您可能需要使用“php composer.phar require phpunit/phpunit-selenium facebook/webdriver
”。
一旦您安装并设置了 PHP 和 Selenium 及其依赖项,您现在就可以在 LambdaTest Selenium Grid 上运行 PHP 自动化脚本了。
您可以从他们的 Github 页面 fork 这个 示例代码。这是一个简单的 PHP 和 Selenium 自动化脚本,它会打开 google.com,在 Google 搜索中搜索 LambdaTest,并输出搜索结果页面的标题。
该脚本默认将使用具有以下配置的节点:Windows 10 上的 Chrome 63.0。您可以根据需要更改其功能。您甚至可以使用他们的 Selenium 期望能力生成器 来轻松生成配置。
现在,要运行它,您需要添加您的用户名(可在 Automation Dashboard 中找到)和 AccessKey(可从您的 Automation Dashboard 生成)。如下面的截图所示:
获取 `username` 和 `AccessKey` 后,您应该分别用代码中的 `$LT_USERNAME` 和 `$LT_APPKEY` 变量的值替换它们。之后,您可以保存文件并通过以下命令从终端执行测试。
"./vendor/bin/phpunit" lambdatest.php
脚本运行后,您可以在 Automation Dashboard 中看到它,标题为“Php Build”。您可以单击它以获取详细信息,例如视频录制、日志、元数据等。
如何使用内置问题跟踪器
现在,正如我之前提到的,如果您没有第三方问题跟踪器,您可以轻松使用 LambdaTest 内置的问题跟踪器。
因此,要做到这一点,只需转到 Automation Dashboard 中的“Automation Logs”选项卡,然后从左侧列表选择测试,然后单击屏幕最右侧的“Create Issue”按钮。这将显示一个模态框,您可以在其中添加问题的详细信息,例如:
- Assignee: 此问题应分配给谁
- Issue Type: 是 Bug 还是任务
- Priority: 此问题的重要性有多严重
- Summary: 一个解释问题的简短短语
- Description: 关于该问题是什么以及需要什么最终结果的详细信息
添加数据后,只需单击表单下方的“Create Issue”按钮,问题就会被创建,您可以通过从菜单中转到 Issue Tracker 页面来查看。
在那里,您将能够查看并将其状态更改为“In Progress”、“Resolved”、“Rejected”等,甚至可以更改 Assignee、Issue Type 和 Priority。您还可以查看其他详细信息,如 Browser、OS、Resolution 等。
自动化
在这里,我们将讨论 Automation Dashboard 上的所有选项及其用途。
在 Automation Dashboard 中,您可以查看在 LambdaTest Grid 上运行的所有测试的 Timelines、Analytics 和 Automation Log。在这些中,您可以使用高级过滤器并获取所有测试的详细信息。
Timeline
在 Timeline 中,您可以看到在 LambdaTest Grid 上运行的所有测试列表,您可以根据日期、用户、构建名称和状态进行过滤。在 Timeline 中,有两种视图:
- Build View (Default): 共享相同构建名称的所有测试合并为一个,您可以单击任何构建以在 Automation Logs 页面下查看其所有测试。
- Test View: 此视图单独显示所有测试,您可以单击任何测试以转到其 Automation Logs 页面,您可以在其中查看所有详细信息。
- Summary: 包含您测试的最基本详细信息,例如视频、状态、运行日期、运行者姓名、运行所在的节点及其唯一 ID。
- Exception: 显示测试执行期间发生的任何和所有异常的列表。
- Command: 显示测试执行中运行的命令列表,以及这些命令是否成功。
- Network: 在此,您可以查看测试执行期间加载的所有 Web 资源列表,例如 JS、CSS、图像文件等。
- Logs: 在此,您可以查看在 Selenium 脚本运行时配置捕获的所有日志,例如 Selenium Logs、Console Logs 等。
- Metadata: 在这里,您可以查看测试配置的所有详细信息,例如 Browser Config 和 Input Config 等。此外,您还可以从这里下载所有截图和视频。
Automation Logs
在 Automation Logs 中,您可以查看测试的完整详细信息,例如:
分析
此页面将为您提供对所有构建和测试的深入理解和分析。与 Timeline 一样,它也提供 Build View 和 Test View。
在此页面上,您可以查看有多少测试/构建运行以及花费了多少时间,有多少测试/构建通过以及有多少失败。您还可以按浏览器、操作系统、用户和日期(日、周、月)以及状态过滤这些结果,这将为您提供更具体的结果。
视觉 UI 测试
LambdaTest 为视觉 UI 测试提供了一些出色的功能,其中主要包括:
截图测试
它提供了一个简单的 UI,用于选择要测试的浏览器和要测试的操作系统,包括移动和桌面。选择后,只需添加您要测试的页面的 URL,它还提供了一些高级功能,例如使用基本身份验证和配置截图,如下图所示:
完成测试配置后,您可以单击“Capture”按钮开始测试。这将带您到结果页面,您可以在其中查看和下载您选择的每个浏览器的截图。您还可以下载所有截图的 zip 压缩包,甚至可以通过可共享链接共享这些截图。
现在,如果您在任何截图上发现任何 Bug,您可以使用以下步骤将其记录到问题跟踪器中:
- 在截图上方,您会找到一个相机图标,单击该图标。
- 将弹出图像编辑器,您可以在其中注释截图,然后单击模态框右下角的“Mark as Bug”按钮。
- 最后,单击保存,然后在弹出窗口中填写“Create Issue”表单以记录问题。
响应式测试
此功能使您能够跨多种设备和分辨率执行响应式屏幕测试。这种类型的测试有助于网站根据您选择的设备和操作系统以灵活而适当的方式呈现其内容。要使用此功能,只需按照以下步骤操作:
- 在菜单栏的“Visual UI Testing”菜单下单击‘Responsive Test’子菜单。
- 在 URL 输入栏中插入您要测试响应式的 URL。
- 选择您的显示器尺寸(对角线长度,单位为英寸)。
- 单击‘Generate’以生成截图。
- 在页面右侧,您会找到各种移动和桌面组合。单击它们,您可以测试这些特定设备的响应能力。
现在,如果您在任何截图上发现任何 Bug,您可以使用以下步骤将其记录到问题跟踪器中:
- 在截图上方,您会找到一个相机图标,单击该图标。
- 将弹出图像编辑器,您可以在其中注释截图,然后单击模态框右下角的“Mark as Bug”按钮。
- 最后,单击保存,然后在弹出窗口中填写“Create Issue”表单以记录问题。
智能测试
Smart Visual Testing 功能通过允许您测试和比较两个图像布局来快速找出它们之间的差异。通过它,您可以轻松地查看视觉 Bug,例如图标大小、填充、颜色、布局、文本、元素位置等等。为了使用此功能,请尝试以下步骤:
- 首先,您需要上传一个基线图像(s),为此,您需要:
- 单击“Base Line Images”标题旁边的 + 图标
- 从您的计算机中选择基线图像(s)。并上传它们。
- 上传后,它们可以在“Baseline Image”库下查看。
- 现在,要能够上传比较图像,您首先需要上传基线图像,所以请确保您先按照上述步骤进行操作。现在,要上传比较图像(s),您需要:
- 单击您要进行比较的基线图像。
- 然后您将在页面右侧找到“Upload Comparison Image”按钮,单击它以上传图像(s)。
- 选择您要比较的图像并上传。
- 现在,您应该可以看到基线图像和比较图像(s) 的缩略图,以及比较图像(s) 上方的“Run”按钮。您还应该在比较图像旁边看到一个绿色的勾号或一个红色的警告标志,这取决于它们是否相似。
- 现在,要运行比较,只需单击您要比较的比较图像上方的“Run”按钮,或单击按钮左上角的“Compare All”以比较所有图像。
- 比较运行后,您可以单击“View Issues”按钮,该按钮现在应该出现在比较图像的上方。
- 这将打开一个新的图像比较窗口,您可以在其中查看和比较差异,并且可以放大或缩小图像,更改图像差异颜色,切换到滑块模式,切换到并排模式,或将图像标记为 Bug。
测试日志
Test Logs 是一项功能,它充当一个库,您可以在其中找到在 LambdaTest 平台上运行的所有测试。通过单击 Test Logs 页面上的测试,您可以查看其所有内容和详细信息,例如截图、名称、日期、测试人员姓名、测试运行的 URL 等。
此外,在页面左侧,您可以看到所有项目的列表和一个用于创建新项目的按钮,您可以使用它通过简单地添加项目名称和版本来创建新项目。您还可以将测试从一个项目移动到另一个项目,这很棒,因为这样,您可以将同一项目的测试保留在该项目中,要做到这一点,只需按照以下步骤操作:
- 在 Test Logs 中,选择您要移动测试的项目。
- 打开您要移动的测试。
- 单击测试详细信息中的三个点按钮。
- 选择“Move to Project”,然后选择您要移动测试到的项目和项目版本。
- 选择后,测试将被移动到该项目。
支持的集成
这是您可以使用的一项功能,通过将第三方问题跟踪器与 LambdaTest 平台集成来实现一键式 Bug 报告。以下是支持的第三方工具列表以及如何集成它们的教程链接:
- Jira: https://www.lambdatest.com/lambdatest-jira-documentation
- Slack: https://www.lambdatest.com/lambdatest-slack-documentation
- Asana: https://www.lambdatest.com/lambdatest-asana-documentation
- Trello: https://www.lambdatest.com/lambdatest-trello-documentation
- GitHub: https://www.lambdatest.com/lambdatest-github-documentation
- GitLab: https://www.lambdatest.com/lambdatest-gitlab-documentation
- Bitbucket: https://www.lambdatest.com/lambdatest-bitbucket-documentation
- VSTS: https://www.lambdatest.com/lambdatest-vsts-documentation
- Paymo: https://www.lambdatest.com/lambdatest-paymo-documentation
- Teamwork: https://www.lambdatest.com/lambdatest-teamwork-documentation
- Hive: https://www.lambdatest.com/lambdatest-hive-documentation
- Clubhouse: https://www.lambdatest.com/lambdatest-clubhouse-documentation
- BugHerd: https://www.lambdatest.com/lambdatest-bugherd-documentation
- Mantis: https://www.lambdatest.com/lambdatest-mantis-documentation
LambdaTest 还提供了 WordPress 插件,可用于直接从您的 WordPress 平台生成网页的自动截图。WordPress 插件可以在 此处 找到。
还有一个 Chrome 扩展程序,可用于直接从浏览器生成网页的自动截图。此 Chrome 扩展程序可以在 此处 找到。
7. 如何免费使用 Lambda Test 的 Selenium Grid?
从上面的示例中,您可以了解到设置和运行 LambdaTest Selenium Grid 上的测试套件有多么容易。
从 Grid 的配置到使用各个服务以及整体使用平台。
但您不必相信我的话,您可以 在此处免费试用 LambdaTest Selenium Grid。去吧,试试 LambdaTest Selenium Grid,然后回来告诉我您的看法。如果您喜欢并想升级到付费版本,可以使用折扣代码 SOCIAL20 享受 LambdaTest 服务 20% 的折扣。