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

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

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

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

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

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

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

1 基础知识

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

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

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

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

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

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

2 测试自动化项目

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

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

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

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

3 项目设置

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

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

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

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

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

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

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

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

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

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

在创建项目并打开pom.xml文件后,它的外观将类似于以下内容:aKU28资讯网——每日最新资讯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

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

以下是应该添加到项目中的行(用粗体突出显示),以便能够自动化Web应用程序:aKU28资讯网——每日最新资讯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

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

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

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

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

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

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

4 起草代码

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

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

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

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

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

创建项目结构

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

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

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

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

  • PageObject
  • TestPlan
  • Utils
  • WebForm

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

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

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

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

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

标签:
  • 热门焦点
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • Golang 中的 io 包详解:组合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是对Reader和Writer接口的组合,
  • WebRTC.Net库开发进阶,教你实现屏幕共享和多路复用!

    WebRTC.Net库:让你的应用更亲民友好,实现视频通话无痛接入! 除了基本用法外,还有一些进阶用法可以更好地利用该库。自定义 STUN/TURN 服务器配置WebRTC.Net 默认使用 Google 的
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    ©自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz“难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?”这一番话,出自百合网联合创
  • 梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 华为发布HarmonyOS 4:更好玩、更流畅、更安全

    在8月4日的华为开发者大会2023(HDC.Together)大会上,HarmonyOS 4正式发布。自2019年发布以来,HarmonyOS一直以用户为中心,经历四年多的发展HarmonyOS已
  • 最薄的14英寸游戏笔记本电脑 Alienware X14已可以购买

    2022年1月份在国际消费电子展(CES2022)上首次亮相的Alienware新品——Alienware X14现在已经可以购买了,这款笔记本电脑被誉为世界上最薄的 14 英寸游戏笔
Top