【Kotlin基于selenium实现自动化测试】初识selenium以及搭建项目基本骨架(1)

news2024/12/24 11:25:59

导读大纲

    • 1.1 Java: Selenium 首选语言
    • 1.2 配置一个强大的开发环境

1.1 Java: Selenium 首选语言

  1. Java 是开发人员和测试人员进行自动化 Web 测试的首选

    • Java 和 Selenium 之间的协同作用受到各种因素的驱动,从而提高它们的有效性
  2. 为什么Java经常被认为是Selenium的首选语言

    • 广泛流行和采用/庞大的用户群
      1. Java 是使用最广泛的编程语言之一
      2. 这种广泛采用意味着大量开发人员和测试人员都熟悉 Java
        • 从而为 Selenium 项目中的协作和知识共享提供便利
    • 面向对象编程(OOP)/可复用性和可维护性
      1. Java 的面向对象特性与 Selenium 的架构非常吻合
      2. 封装、继承和多态性等面向对象编程原则
        • 可以创建可重用和可维护的测试脚本,这对测试自动化至关重要
    • 强大的标准库/丰富的 API 集
      1. Java 提供一套全面的标准库,可让 Selenium 自动化脚本受益匪浅
      2. 这些库提供处理文件系统、数据库、网络等的功能
        • 从而增强 Selenium 测试的能力
    • 跨平台兼容性/平台独立性
      1. Java 的平台独立性是其一大优势
      2. 用 Java 编写的测试脚本无需修改即可在不同的操作系统上执行
        • 与 Selenium 的跨浏览器和跨平台测试能力相一致
    • 强大的社区和生态系统/广泛的资源和支持
      1. 强大的 Java 社区提供广泛的支持,包括论坛、教程和文档
      2. 这使得使用 Selenium 和 Java 的人员更容易排除故障和学习
    • 与其他工具集成/与测试框架兼容
      1. Java 与 JUnit 和 TestNG 等流行的测试框架集成良好
      2. Selenium 通常使用这些框架
        • 组织测试、生成报告管理测试用例和套件
    • 成熟的开发工具/先进的集成开发环境
      1. Java 有强大的集成开发环境(IDE)支持,如 Eclipse 和 IDEA
      2. 这些集成开发环境提供高级编码功能、调试和测试功能
        • 有利于开发和维护 Selenium 测试脚本
    • 稳定性和可靠性/久经考验的记录
      1. Java 在各个领域的稳定性和可靠性由来已久
      2. 这种稳定性在测试自动化中至关重要
        • 因为测试脚本的一致和可靠执行关键所在
    • 强大的自动化生态系统/丰富的库和框架
      1. Java 的生态系统包括众多可增强和简化 Selenium 自动化的库和框架
      2. 这些工具可以大大减少编写和维护测试脚本的工作量和复杂性
  3. Java 的面向对象特性、广泛的使用、强大的库支持、平台独立性和强大的生态系统

    • 使其成为 Selenium 的理想语言
  4. Java符合基于 Selenium 的自动化技术要求

    • 开发复杂、高效的测试自动化套件提供稳定、可扩展的环境

1.2 配置一个强大的开发环境

  1. 设置和掌握Java、IDEA 和Selenium WebDriver的集成技术

    • 重点是配置一个强大的开发环境
  2. 首先,需要安装 Java,为测试脚本奠定强大的编程语言基础

    • 选择最适合测试项目的 JDK 版本
      • Oracle JDK
      • 选择并点击与您的操作系统(Windows、macOS 或 Linux)相对应的下载链接
      • 接受 Oracle Java SE 的 Oracle 技术网络许可协议.
      • 点击可执行文件的下载链接
        1. 无论是 Windows 的 .exe、macOS 的 .dmg 还是 Linux 的 .tar.gz.
    • 运行安装程序
      • Windows
        1. 双击下载的 .exe 文件,然后按照提示进行安装
        2. 您可以选择安装 JDK 的目录
      • macOS(手动安装)
        1. 打开 .dmg 文件并按照说明操作
        2. 通常需要将 JDK 拖入"Applications"文件夹
      • Linux
        1. 通过图形文件管理器或使用 tar -xzf [filename] 命令行
          • 将 .tar.gz 文件解压缩到所需位置
    • 设置环境变量
      1. 在 Windows 中, 执行以下操作
        • 在 "系统变量"中,单击"新建"创建一个新的 JAVA_HOME 变量
          1. 并将其值设置为 JDK 安装路径
        • 在 "系统变量"中找到"Path"变量
          1. 然后单击"编辑"添加一个新条目,内容为 %JAVA_HOME%\bin
      2. 在 macOS 和 Linux 中,请执行以下操作.
        • 打开终端,键入 vi ~/.bashrc 或 vim ~/.bashrc
          1. 添加一行"export JAVA_HOME=/usr/lib/jvm/jdk-11"
        • 将 Java 二进制目录添加到 PATH 变量中
          1. export PATH=$JAVA_HOME/bin:$PATH
          2. 这一步可确保从命令行访问 Java 二进制文件
        • 保存文件并重新加载你的配置文件
          1. 例如,运行 source ~/.bashrc
    • 检查 Java 版本以验证安装
      • 在终端中键入 javac --version 并按 Enter
        title
  3. 接着, 安装 IDEA 集成开发工具

    • IDEA
  4. 然后安装 Selenium

    • 下载 Selenium WebDriver Java 客户端
    • 在maven中央仓库搜索依赖包
      title
    • 下载对应浏览器的Selenium WebDriver
      1. Google Chrome
      2. Mozilla Firefox
      3. Microsoft edge
      4. Apple Safari
      5. Opera
      6. Internet Eexplorer
    • 每个 WebDriver 都允许Selenium 与相应的浏览器进行交互
      1. 从而实现自动化测试
  5. 在 IDEA 中创建新 Kotlin 项目
    title

  6. 将 Selenium JAR 添加到项目中(手动添加Selenium依赖包)

    • 将下载的 ZIP 文件解压缩到计算机上的文件夹中
    • 右键项目目录, 打开"Project Structure"
      title
    • 选择"Libraries"–>“点击+”–>“选择Java”–>“选择刚才解压缩的目录”
      title
  7. 通过 Gradle 配置来添加 Selenium 依赖

    • 使用该方式则无需手动下载 Selenium JAR 包
// ================== build.gradle.kts
dependencies {
    implementation("org.seleniumhq.selenium:selenium-chrome-driver:4.25.0")
    implementation("org.seleniumhq.selenium:selenium-java:4.25.0")
    testImplementation(kotlin("test"))
}
  1. 创建一个简单的测试脚本来验证配置是否正确
    • 右键kotlin目录, 创建一个包"kt.selenium"
      title
    • 在"kt.selenium"包下创建一个"Main.kt"的kotlin文件
      title
package kt.selenium
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
fun main() {
    // 初始化一个 ChromeDriver 实例
    val driver: WebDriver = ChromeDriver()
    // 在浏览器中打开百度
    driver.get("https://www.baidu.com")
    // 关闭浏览器
    driver.quit()
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2181829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录一次出现循环依赖问题

具体的结构设计: 在上面的图片中: UnboundBlackVerifyChain类中继承了UnboundChain类。但是UnboundChain类中注入了下面三个类。 Scope(“prototype”) UnboundLinkFlowCheck类 Scope(“prototype”) UnboundUserNameCheck类 Scope(“prototype”) Un…

[linux 驱动]input输入子系统详解与实战

目录 1 描述 2 结构体 2.1 input_class 2.2 input_dev 2.4 input_event 2.4 input_dev_type 3 input接口 3.1 input_allocate_device 3.2 input_free_device 3.3 input_register_device 3.4 input_unregister_device 3.5 input_event 3.6 input_sync 3.7 input_se…

用网络分析仪测试功分器驻波的5个步骤

在射频系统中,功分器的驻波比直接关系到信号的稳定性和传输效率。本文将带您深入了解驻波比的测试方法和影响其结果的因素。 一、功分器驻波比 驻波(Voltage Standing Wave Ratio),简称SWR或VSWR,是指频率相同、传输方向相反的两种波&#xf…

.NET Core 高性能并发编程

一、高性能大并发架构设计 .NET Core 是一个高性能、可扩展的开发框架,可以用于构建各种类型的应用程序,包括高性能大并发应用程序。为了设计和开发高性能大并发 .NET Core 应用程序,需要考虑以下几个方面: 1. 异步编程 异步编程…

最大正方形 Python题解

最大正方形 题目描述 在一个 n m n\times m nm 的只包含 0 0 0 和 1 1 1 的矩阵里找出一个不包含 0 0 0 的最大正方形,输出边长。 输入格式 输入文件第一行为两个整数 n , m ( 1 ≤ n , m ≤ 100 ) n,m(1\leq n,m\leq 100) n,m(1≤n,m≤100),接…

养猪场饲料加工机械设备有哪些

养猪场饲料加工机械设备主要包括以下几类:1‌、粉碎机‌:主要用于将原料进行粉碎,以便与其他饲料原料混合均匀。常见的粉碎机有水滴式粉碎机和立式粉碎机两种,用户可以根据原料的特性选择适合的机型。2‌、搅拌机‌:用…

ONVIF、GB28181技术特点和使用场景分析

技术背景 好多开发者希望搞明白ONVIF和GB28181的区别和各自适合的场景,为什么大牛直播SDK只做了GB28181接入端,没有做ONVIF?本文就二者差别,做个大概的介绍。 ONVIF ONVIF(Open Network Video Interface Forum&…

【Linux 23】线程池

文章目录 🌈 一、线程池的概念🌈 二、线程池的应用场景🌈 三、线程池的实现 🌈 一、线程池的概念 线程池 (thread pool) 是一种利用池化技术的线程使用模式。 虽然创建线程的代价比创建进程的要小很多,但小并不意味着…

Mysql高级篇(下)——日志

日志 一、日志概述二、日志弊端二、日志分类三、 各日志详情介绍1、慢查询日志(Slow Query Log)2、通用查询日志(General Query Log)3、错误日志(Error Log)4、二进制日志(Binary Log&#xff0…

初识Linux · 进程等待

目录 前言: 进程等待是什么 为什么需要进程等待 进程等待都在做什么 前言: 通过上文的学习,我们了解了进程终止,知道终止是在干什么,终止的三种情况,以及有了退出码,错误码的概念&#xff…

基于大数据的学生体质健康信息系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

图像数据增强albumentations之自然景色

一 背景 最近在做关于图像数据增强方面,发现albumentations这个包比较好用,在此学习一下如何使用API二 albumentations 安装 注意,注意,注意 python版本3.8 pip install -U albumentations三 API学习 1 模拟雨水 import os i…

慢病中医药膳养生食疗管理微信小程序、基于微信小程序的慢病中医药膳养生食疗管理系统设计与实现、中医药膳养生食疗管理微信小程序的开发与应用(源码+文档+定制)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

【SpringCloud】注册中⼼的其他实现-Nacos

Nacos 1. Nacos简介 2. Nacos安装2.1 下载安装包2.2 Windows2.2.1 解压2.2.2 修改单机模式2.2.3 启动Nacos2.2.4 常⻅问题集群模式启动端⼝号冲突 2.3 Linux2.3.1 准备安装包2.3.2 单机模式启动 1. Nacos简介 2018年6⽉, Eureka 2.0宣布闭源(但是1.X版本仍然为活跃项⽬), 同年…

【mmengine】配置器(config)(进阶)继承与导出,命令行修改配置

一、配置文件的继承 1.1 继承机制概述 新建optimizer_cfg.py: optimizer dict(typeSGD, lr0.02, momentum0.9, weight_decay0.0001)新建runtime_cfg.py: device "cuda" gpu_ids [0, 1] batch_size 64 epochs 100 num_workers 8新建resnet50.py: _base_ […

图解C#高级教程(三):泛型

本讲用许多代码示例介绍了 C# 语言当中的泛型,主要包括泛型类、接口、结构、委托和方法。 文章目录 1. 为什么需要泛型?2. 泛型类的定义2.1 泛型类的定义2.2 使用泛型类创建变量和实例 3. 使用泛型类实现一个简单的栈3.1 类型参数的约束3.2 Where 子句3…

不相同的二叉搜索树

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5示例 2: 输入:n 1 输出:1提…

数字教学时代:构建高效在线帮助中心的重要性

在数字化教学日益普及的今天,教育领域正经历着前所未有的变革。随着在线课程、虚拟教室、智能学习平台等数字化工具的广泛应用,教育资源的获取方式和学习模式发生了深刻变化。然而,这种变革也带来了新的挑战,其中之一便是如何确保…

YashanDB Docker镜像制作

本文作者:YashanDB中级服务工程师鲍健昕 为什么需要Docker部署数据库 常规使用 yasboot 部署数据库的方法,操作流程复杂,需要配置许多配置文件以及环境变量,不同用户使用的环境不同,那么环境配置也会存在差异&#x…

YOLO11震撼发布!

非常高兴地向大家介绍 Ultralytics YOLO系列的新模型: YOLO11! YOLO11 在以往 YOLO 模型基础上带来了一系列强大的功能和优化,使其速度更快、更准确、用途更广泛。主要改进包括 增强了特征提取功能,从而可以更精确地捕捉细节以更…