DevOps(九)Selenium 介绍和Jenkins集成

devtools/2024/11/9 17:07:37/

Selenium 是一个开源的自动化测试工具,主要用于 Web 浏览器自动化测试。它支持多种编程语言,包括 Java、Python、Ruby、C# 等,可以在多种浏览器中运行,包括 Chrome、Firefox、IE、Edge 等。

Selenium 的主要特点

  1. 多浏览器支持:Selenium 支持多种浏览器,包括 Chrome、Firefox、IE、Edge 等,可以在不同的浏览器中运行测试。
  2. 多语言支持:Selenium 支持多种编程语言,包括 Java、Python、Ruby、C# 等,可以使用不同的语言来编写测试脚本。
  3. 自动化测试:Selenium 可以自动执行测试脚本,模拟用户的行为,例如点击按钮、填写表单、验证结果等。
  4. 灵活的测试方式:Selenium 提供了多种测试方式,包括基于浏览器的测试、基于页面对象的测试、基于API的测试等。
  5. 跨平台支持:Selenium 可以在不同的操作系统中运行,包括 Windows、Linux、MacOS 等。

Selenium 的组件

  1. Selenium WebDriver:是一个浏览器自动化框架,提供了一个统一的 API 来控制浏览器。
  2. Selenium IDE:是一个浏览器插件,提供了一个可视化的界面来记录和播放测试脚本。
  3. Selenium Grid:是一个分布式测试框架,允许在多个机器上运行测试,提高测试效率。

Selenium 的使用场景

  1. 自动化测试:Selenium 可以用于自动化Web应用程序的测试,例如功能测试、回归测试、 Smoke 测试等。
  2. Web爬虫:Selenium 可以用于爬取Web页面的数据,例如爬取搜索引擎结果、爬取社交媒体数据等。
  3. 监控Web应用程序:Selenium 可以用于监控Web应用程序的性能、可用性和安全性。

Selenium 的优点

  1. 灵活的测试方式:Selenium 提供了多种测试方式,满足不同的测试需求。
  2. 跨浏览器支持:Selenium 支持多种浏览器,满足不同的测试环境。
  3. 跨平台支持:Selenium 可以在不同的操作系统中运行,满足不同的测试环境。
  4. 易于使用:Selenium 提供了一个简单易用的 API,易于测试人员使用。

Selenium 的缺点

  1. 学习曲线陡峭:Selenium 的使用需要有一定的编程基础和自动化测试经验。
  2. 资源消耗高:Selenium 需要消耗一定的系统资源,例如 CPU 和内存。
  3. 浏览器版本问题:Selenium 需要与浏览器版本保持一致,否则可能会出现兼容性问题。

Selenium 是一个功能强大且灵活的自动化测试工具,广泛应用于Web应用程序的测试和爬虫等领域。但是,它也需要一定的学习和使用经验,需要注意资源消耗和浏览器版本问题。

Ubuntu20.04安装Selenium 

第一步:安装 Python 和 Selenium
  1. 确保 Python3 和 pip 已经安装:

    sudo apt install python3 python3-pip
    
  2. 使用 pip 安装 Selenium:

    pip3 install selenium
    
第二步:下载并安装 Chrome 及其 WebDriver
  1. 安装 Google Chrome 浏览器:

    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo apt install ./google-chrome-stable_current_amd64.deb
    
  2. 下载并安装 ChromeDriver(确保版本与 Chrome 浏览器兼容):

    CHROME_VERSION=$(google-chrome --version | cut -d ' ' -f 3 | cut -d '.' -f 1)
    wget https://chromedriver.storage.googleapis.com/$CHROME_VERSION/chromedriver_linux64.zip
    unzip chromedriver_linux64.zip
    sudo mv chromedriver /usr/local/bin/
    

集成到jenkins完成简单任务

我们现有一个简单的需,创建一个jenkins任务,这个任务通过Selenium打开百度,并搜索CSDN。

第一步:创建python脚本

创建一个 Python 脚本 (test_baidu_search.py),用于打开 www.baidu.com 并搜索 "csdn":

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time# 设置 ChromeDriver 路径
driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')# 打开百度
driver.get("http://www.baidu.com")# 确保页面已加载
time.sleep(2)# 找到搜索框并输入 'csdn'
search_box = driver.find_element_by_name('wd')
search_box.send_keys('csdn')
search_box.send_keys(Keys.RETURN)# 等待搜索结果
time.sleep(2)# 关闭浏览器
driver.quit()
第二步:在 Jenkins 中创建任务
  1. 登录到 Jenkins:打开浏览器,访问 Jenkins(通常是 http://your_server_ip:8080)。

  2. 创建新任务

    • 点击左侧的 “新建任务”。
    • 输入任务名(例如:“TestBaiduSearch”),选择“自由风格软件项目”,然后点击“确定”。
  3. 配置任务

    • 在“构建”部分,点击“添加构建步骤”选择“执行 shell”。
    • 在命令框中输入以下内容以运行你的 Selenium 脚本:
      python3 /path/to/your/test_baidu_search.py
      
  4. 保存并运行任务

    • 点击“保存”。
    • 在项目页面,点击“立即构建”开始运行任务。
    • 构建完成后,点击左侧的“控制台输出”查看测试结果和日志。

通过这些步骤,你就可以在 Jenkins 上运行一个简单的 Selenium WebDriver 测试,自动打开百度,搜索 "csdn",并关闭浏览器。这是一种基本的集成方式,可以根据具体需求调整和优化。


http://www.ppmy.cn/devtools/14614.html

相关文章

深入IntelliJ IDEA:高效配置与使用技巧

深入IntelliJ IDEA:高效配置与使用技巧 目录 深入IntelliJ IDEA:高效配置与使用技巧 一、引言 二、IntelliJ IDEA简介 三、快速配置指南 四、效率提升技巧 五、高级配置与优化 六、案例研究:自定义代码风格 七、最佳实践 一、引言 …

STM32玩转物联网实战篇:5.ESP8266 WIFI模块MQTT通信示例详解

1、准备开发板 开发板功能区分布图 开发板俯视图 2、实验讲解 在之前的章节中,已经讲解过了MQTT的通讯原理和组包过程,现在开始手把手的教大家用代码来实现连接MQTT平台以及数据的交互,实际上这篇文章已经拖更接近两年了,非常…

【设计模式】访问者模式

目录 什么是访问者模式 访问者模式的组成: 使用场景: 示例代码: 什么是访问者模式 Java 中的访问者模式(Visitor Pattern)是一种行为型设计模式,允许你在不修改已有类的结构的情况下,增加这…

tomcat到底是干嘛的?

Tomcat 是一个开源的 Java 应用服务器,主要用于托管和运行符合 Java Servlet 和 JavaServer Pages (JSP) 规范的 Java Web 应用程序。它在 Web 开发和部署中扮演着至关重要的角色,具体功能包括: HTTP 请求处理: Tomcat 监听特定端…

选择排序算法

从上图可知,每次循环,找到数组中最小的那个元素,将它和数组要进行循环的第一个元素交换位置;交换后的数将不再进入下一次循环,比如上述2交换后,下次循环2将不再这次循环中;依此类推。&#xff0…

Vim的快速入门

Vim快入门 一. 普通模式进入插入模式: 普通模式使用下面的健进入插入模式,并可以从下面的位置开始 命令说明i在当前光标处进行编辑I在行首插入A在行末插入a在光标后插入编辑o在当前行后插入一个新行O在当前行前插入一个新行 二. 普通模式下删除vim文…

jpa分页插件对象Pageable出现了错误异常如何解决?

jpa分页插件对象Pageable出现了错误异常如何解决?! 一般来说,遇到这种的错误异常情况,通常情况 下,都是因为程序员把传递的分页页码数字写错了。 正常情况下,分页页码起始数字应该是0;而不是1…

前端css中keyframes(关键帧)的简单使用

前端css中keyframes的使用 一、前言二、例子(一)、例子源码1(二)、源码1运行效果1.视频效果2.截图效果 三、结语四、定位日期 一、前言 关键帧keyframes是css动画的一种,主要用于定义动画过程中某一阶段的样式变化&am…