当前位置:首页 > 科技  > 软件

基于IntelliJ IDEA,轻松实现Selenium自动化测试

来源: 责编: 时间:2023-11-16 09:40:04 434观看
导读新手测试工程师刚开始接触到各种大量的测试领域专业术语时通常会感到很困惑。本文内容将帮助新手测试工程师快速入门并理解这些术语的含义。文章提供示例和实际应用场景,以便读者能够更好地理解。在本文中,使用的以下环

新手测试工程师刚开始接触到各种大量的测试领域专业术语时通常会感到很困惑。GYw28资讯网——每日最新资讯28at.com

本文内容将帮助新手测试工程师快速入门并理解这些术语的含义。文章提供示例和实际应用场景,以便读者能够更好地理解。GYw28资讯网——每日最新资讯28at.com

在本文中,使用的以下环境:GYw28资讯网——每日最新资讯28at.com

  • IDE: IntelliJ IDEA
  • 编程语言: Java
  • 浏览器和操作系统: Mac 上的 Chrome
  • 自动化工具: WebDriver + chromedriver

1 基础知识

Selenium WebDriver是一种工具,用于自动执行手动浏览器工作流。它可以是你厌倦了多次填写的简单表格,也可以是验证数百个网页的复杂系统。GYw28资讯网——每日最新资讯28at.com

这里的思路是加载特定的网页,执行操作,并比较结果是否符合预期。当然,根据使用的平台(如Windows、Mac或Linux),在设置环境方面可能会有一些变化。GYw28资讯网——每日最新资讯28at.com

典型的语法如下:GYw28资讯网——每日最新资讯28at.com

  • 加载网址: driver.get("[网站URL]")
  • 查找元素: driver.findElement(By.id("[元素ID]"))
  • 发送按键: [元素].sendKeys("[要发送的按键]")
  • 执行点击: [元素].click()

在网页上的行动计划大致情景:GYw28资讯网——每日最新资讯28at.com

  • 加载网页(网站的特定部分)
  • 找到要执行操作的元素。有多种方法可以识别网页上的元素。这些元素标识符被称为“定位器”。在本文中,将研究“XPath”和“id”定位器
  • 执行操作。大多数情况下,这涉及发送特定的按键序列和/或点击元素
  • 验证状态。这就是单元测试框架(如TestNG、JUnit)的威力所在。确保实际结果与预期结果相匹配

2 测试自动化项目

自动化 formy-project.herokuapp.com/form上的Web表单自动化 formy-project.herokuapp.com/form上的Web表单GYw28资讯网——每日最新资讯28at.com

通过输入名字和姓氏并点击提交按钮来自动化一个简单的Web表单。GYw28资讯网——每日最新资讯28at.com

概述的脚本如下所示:GYw28资讯网——每日最新资讯28at.com

  • 输入用户名
  • 输入密码
  • 点击“提交”按钮
  • 通过验证确认消息来验证表单是否成功提交

3 项目设置

设置项目和环境。GYw28资讯网——每日最新资讯28at.com

首先,需要下载并安装IntelliJ IDEA。GYw28资讯网——每日最新资讯28at.com

在本地系统上安装好之后,打开应用程序并创建一个新项目。GYw28资讯网——每日最新资讯28at.com

  • 点击“创建新项目”
  • 在左侧选择“Maven”并点击“下一步”

图片图片GYw28资讯网——每日最新资讯28at.com

在IntelliJ IDEA项目创建过程中选择“Maven”GYw28资讯网——每日最新资讯28at.com

  • 为项目选择任意名称(例如“表单自动化”),然后点击“完成”创建该项目

过了一会儿,应该会有一个可以使用的模板。您可能会对Maven有疑问。GYw28资讯网——每日最新资讯28at.com

Maven是一个构建自动化工具,主要用于Java项目。使用它来向项目添加额外的库。GYw28资讯网——每日最新资讯28at.com

项目结构中pom.xml文件的位置项目结构中pom.xml文件的位置GYw28资讯网——每日最新资讯28at.com

在创建项目并打开pom.xml文件后,它的外观将类似于以下内容:GYw28资讯网——每日最新资讯28at.com

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocatinotallow="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    4.0.0    org.example    Form Automation    1.0-SNAPSHOT

现在我们使用这个文件来添加可以用来自动化应用程序的额外库。GYw28资讯网——每日最新资讯28at.com

以下是应该添加到项目中的行(用粗体突出显示),以便能够自动化Web应用程序:GYw28资讯网——每日最新资讯28at.com

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocatinotallow="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    4.0.0    org.nomadicdmitry    Form Automation    1.0-SNAPSHOT                    org.seleniumhq.selenium        selenium-server        3.141.59                org.testng        testng        7.1.0        test                org.apache.maven.plugins        maven-surefire-plugin        3.0.0-M4

添加这些行后,几乎拥有了在项目中使用的所有必要库。具体来说:GYw28资讯网——每日最新资讯28at.com

  • Selenium WebDriver:org.seleniumhq.selenium
  • TestNG(单元测试框架):org.testng
  • Maven SureFire(简单的测试计划执行):org.apache.maven.plugins

还有一些要注意的事项:GYw28资讯网——每日最新资讯28at.com

IDEA中下载的库的外观IDEA中下载的库的外观GYw28资讯网——每日最新资讯28at.com

  • 在添加这些库后,请确保按照右侧的按钮下载这些库(带有“M”符号的按钮)。您应该看到它开始下载这些库。
  • 请确保检查这些库的最新版本,以避免以后出现任何问题。这是Selenium的Maven存储库链接。您可以轻松搜索所需的库并将适当的版本添加到您的项目中。

已经准备好开始编写代码了。不过,先起草一下,然后再继续。GYw28资讯网——每日最新资讯28at.com

4 起草代码

通常,大多数WebDriver教程描述了需要执行的命令序列。我们暂时遵循这个模式,概述一下在这里为测试执行的操作:GYw28资讯网——每日最新资讯28at.com

System.setProperty("webdriver.chrome.driver", "chromedriver");WebDriver driver = new ChromeDriver();driver.get(https://formy-project.herokuapp.com/form);driver.findElement(By.id("first-name")).sendKeys("名字");driver.findElement(By.id("last-name")).sendKeys("姓氏");driver.findElement(By.xpath("//a[contains(text(),'提交')]")).click();driver.close();

只用七行代码就能实现自动化填写网页表单的工作解决方案。为了澄清一下,第一行显示了chromedriver的位置(因为在Chrome上执行此脚本),第二行创建了一个后续要使用的WebDriver实例。GYw28资讯网——每日最新资讯28at.com

接下来的几行很容易分析,因为只是加载页面并使用定位器执行操作。这段代码将正常工作并执行必要的操作(除了稍后要讨论的断言部分)。GYw28资讯网——每日最新资讯28at.com

然而,这段代码有什么问题呢?问题在于它与在真实环境中的实际使用方式相去甚远,原因如下:GYw28资讯网——每日最新资讯28at.com

  • 如果我们决定在其他地方使用它,它不可重用并带来重复的代码
  • 如果我们多次调用这些定位器,更改每行的定位器将很困难,难以维护
  • 随着添加更多测试,它将变得难以阅读和理解

让我们回到项目并规划项目结构。GYw28资讯网——每日最新资讯28at.com

创建项目结构

使用PageObject方法作为设计测试的基础。在Java类的术语中,这意味着将为每个网页创建一个类,并概述定位器和执行操作的方法。此外,还将创建一个“父”类,从中继承我们的对象(页面)。GYw28资讯网——每日最新资讯28at.com

自动化测试的项目结构自动化测试的项目结构GYw28资讯网——每日最新资讯28at.com

此外,还需要一个类,用于将所有类连接起来,并具有存储配置设置的变量。GYw28资讯网——每日最新资讯28at.com

以下是项目结构示例:GYw28资讯网——每日最新资讯28at.com

  • PageObject
  • TestPlan
  • Utils
  • WebForm

继续在项目中创建这四个类。请打开“[项目]/src/test/”,右键单击“test”文件夹。选择“New -> Java Class”,并相应地创建这些类。GYw28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-26567-0.html基于IntelliJ IDEA,轻松实现Selenium自动化测试

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 15个必知Pandas代码片段,助你精通数据分析

下一篇: C++编译优化:如何优化编译器的输出代码质量

标签:
  • 热门焦点
  • Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 容量越大越不坏?24万块硬盘故障率报告公布 这些产品零故障

    8月5日消息,云存储服务商Backblaze发布了最新的硬盘故障率报告,年故障率有所上升。Backblaze发布的硬盘季度统计数据,其中包括故障率等重要方面。这些结
  • K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • Golang 中的 io 包详解:组合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是对Reader和Writer接口的组合,
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz“难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?”这一番话,出自百合网联合创
  • 2天涨粉255万,又一赛道在抖音爆火

    来源:运营研究社作者 | 张知白编辑 | 杨佩汶设计 | 晏谈梦洁这个暑期,旅游赛道彻底火了:有的「地方」火了——贵州村超旅游收入 1 个月超过 12 亿;有的「博主」火了&m
  • OPPO K11搭载高性能石墨散热系统:旗舰同款 性能凉爽释放

    日前OPPO官方宣布,将于7月25日14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼
Top