软件测试——自动化测试selenium

news2024/11/15 19:55:38

自动化测试

测试人员编写自动化测试脚本,维护并解决自动化脚本问题
自动化的主要目的就是用来进行回归测试

回归测试在这里插入图片描述

常见面试题

  1. ⾃动化测试能够取代人工测试吗?

⾃动化测试不⼀定⽐人工测试更能保障系统的可靠性,⾃动化测试是测试⼈员手工编写,后续如果有功能的变更自动化也需要进⾏不定期的维护和更新。

  1. ⾃动化测试可以⼤幅度降低工作量?

错误,自动化测试只是测试工作中的一小部分,对于中大型企业来说,自动化测试是必不可缺的一部分

自动化分类

  1. 接口自动化

  2. UI自动化

    2.1 客户端界面

    2.2 web界面

自动化测试金字塔

在这里插入图片描述

WEB自动化测试

  • 安装驱动管理
<dependency>
 <groupId>io.github.bonigarcia</groupId>
 <artifactId>webdrivermanager</artifactId>
 <version>5.8.0</version>
 <scope>test</scope>
</dependency>

Selenium

示例

  • 安装selenium库
<dependency>
 <groupId>org.seleniumhq.selenium</groupId>
 <artifactId>selenium-java</artifactId>
 <version>4.0.0</version>
</dependency>
  • 使⽤selenium编写代码
public void example_test()
{
 //驱动程序管理的⾃动化
 WebDriverManager.chromedriver().setup();
 ChromeOptions options = new ChromeOptions();
 
 //允许访问所有链接
 options.addArguments("--remote-allow-origins=*");
 
 //1、打开浏览器
 WebDriver driver = new ChromeDriver(options);
 
 //2.输⼊百度⽹址:https://www.baidu.com
 driver.get("https://www.baidu.com");
 
 //3、找到输⼊框并输⼊“迪丽热巴”
 driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("迪丽热巴");
  //4、找到“百度⼀下”按钮并点击
 driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
  //5、关闭浏览器
 driver.quit();
}
  • selenium+驱动+浏览器的⼯作原理
    在这里插入图片描述
  1. 通过selenium编写的⾃动化脚本代码中在ChromeDriverService中创建⼀个服务
  2. 通过创建好的服务打开webdriver,安装在本地的驱动服务IP为localhost,PORT为ChromeDriverService中创建的端⼝号,该服务地址为selenium向webdriver发送请求的服务地址。
  3. 向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id
  4. 打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过创建好的服务链接到webdriver,然后使⽤execute发送请求
  5. 驱动收到请求并对请求进⾏解析,转成浏览器能够解析的脚本并发送给浏览器,浏览器通过请求的内容执⾏对应动作
  6. 浏览器再把执⾏的动作结果通过浏览器驱动程序返回给测试脚本

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

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

相关文章

图论 最短路

文章目录 单源最短路朴素Dijkstra代码 堆优化Dijkstra代码 Bellman-ford代码 spfaspfa求最短路代码 spfa判断负环代码 多源最短路Floyd代码 单源最短路 朴素Dijkstra 给定一个 n n n 个点 m m m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c;所有边权均为正…

vscode 阅读linux内核(vscode+clangd)

此插件曾在vim里用过&#xff0c;非常好用。 首先先在vscode 里下载clangd插件 这只是客户端&#xff0c;还需下载个服务器&#xff08;这在coc插件里也有说明&#xff09; sudo apt install clangd 下载完后可以 clangd --version 查看版本信息&#xff0c;如果能查看&#x…

回归预测|基于灰狼GWO优化BP神经网络多输入多输出的数据回归预测Matlab程序GWO-BP 含预测新数据程序

回归预测|基于灰狼GWO优化BP神经网络多输入多输出的数据回归预测Matlab程序GWO-BP 含预测新数据程序 文章目录 前言回归预测|基于灰狼GWO优化BP神经网络多输入多输出的数据回归预测Matlab程序GWO-BP 含预测新数据程序 一、GWO-BP多输出模型1. 原理2. GWO-BP模型流程步骤1: 初始…

jenkins最佳实践(一):jenkins安装与部署

各位小伙伴们大家好呀&#xff0c;我是小金&#xff0c;下面我将记录学习jenkins的系列文章与心得&#xff0c;一方面用于博主的自我记录&#xff0c;一方面如果能帮助到正在浏览这篇文章的小伙伴&#xff0c;那更好不过了&#xff0c;本篇文章主要讲述jenkins的安装以及安装je…

已经30岁了,想转行从头开始现实吗?什么样的工作算好工作?

我是29岁那年&#xff0c;完成从转行裸辞副业的职业转型。 如果你把职业生涯看成是从现在开始30岁&#xff0c;到你退休那年&#xff0c;中间这么漫长的30年&#xff0c;那么30岁转行完全来得及&#xff1b; 如果你觉得必须在什么年纪&#xff0c;什么时间内必须完成赚到几十…

框架——MyBatis查询(单表查询,多表联查)

目录 1.单表查询 2.多表查询 想查询student并且查询student所选择的专业major ①通过id查一个 ②不传入值直接查所有的学生列表 ③嵌套查询 想查询专业major并且查询该专业被哪些学生student选择 ①通过id查一个 ②不传入值直接查所有的专业列表 ③嵌套查询 3. 设置自动…

webpack打包优化方案

调试工具&#xff1a;安装webpack-bundle-analyzer打包可视化工具&#xff0c;可以看到打包文件大小&#xff0c;从而有针对性的优化。 npm install --save-dev webpack-bundle-analyzer。 方案一&#xff1a;将第三方依赖包使用cdn进行引入减小文件包体积&#xff08;例&…

Unity 编辑器-UGUI拓展Button,一个和原Button一样按钮⭐

拓展Button 需求实现1.创建继承自Button的类2.处理Inspector 显示问题3.处理在prafab中和hierarchy中创建按钮4.处理一些细节 完成 需求 想拓展一下UGUI的Button,找了几个帖子&#xff0c;只是能实现功能&#xff0c;但是用起来总有些不尽人意的地方&#xff0c;想办法处理一下…

针对防火墙IPSec业务不通或业务丢包问题,防火墙如何做流量统计、远程抓包、报文示踪

问题描述 针对防火墙IPSec业务不通或业务丢包问题&#xff0c;防火墙如何做流量统计、远程抓包、报文示踪 解决方案 1&#xff09;配置流统和远程抓包用的ACL&#xff1b; system [sysname] acl 3555 [sysname-acl-adv-3555] rule permit icmp source 10.82.100.215 0 destin…

Vue实现表格数据的增删改查

整体效果图&#xff1a; 一、创建表格数据 效果图&#xff1a; el-table组件&#xff1a;表格组件 <el-table:data"dataList"borderv-loading"dataListLoading"selection-change"selectionChangeHandle"style"width: 100%;">&l…

KISS(Keep It Sample,Stupid)[完整代码]

根据KISS原文它的伪随机数产生器的Period about 2^123&#xff0c;周期很长&#xff0c;并且来自于多个产生器的共同作用之下而得&#xff0c; 原文的这这句话很有意思&#xff0c;&#xff08;车轱辘压我脸上了&#xff09;一个人不好的时候&#xff0c;试一试两个人&#xff…

线段树的原理

1.如果知道两个子范围上的最值&#xff0c;通过比较就可以知道整个范围上的最值 2.如果知道两个子范围上分别出现的次数最多的数&#xff0c;但无法知道整个范围上出现最多的数 范围修改logn的前提&#xff1a;如果维护的是区域和&#xff0c;要把区域上的每个数字加上a&#…

【蓝桥杯集训100题】scratch绘制扇子 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第28题

scratch绘制扇子 蓝桥杯集训100题第28题模拟练习解析 此题曾经作为第十届省赛的真题考过 一、题目要求 以坐标&#xff08;0,0&#xff09;点为中心绘制一把扇子&#xff1b;扇面和扇把都是三分之一圆&#xff0c;扇面的半径 为 100 左右&#xff0c;扇把的半径为 20 左右。…

HTML实现2048小游戏

游戏概述 实现一个基本的2048游戏涉及综合运用HTML、CSS和JavaScript这三种关键技术。 HTML用于构建游戏的结构框架&#xff0c;包括游戏容器、网格布局以及可能的用户交互元素&#xff08;如按钮或得分显示&#xff09;。 CSS则负责美化游戏界面&#xff0c;通过样式表定义网格…

培训班和科班出生有什么区别

IT业的萌新来啦 每到毕业季 总有大量萌新走进职场 IT圈子的程序员 有的是科班出生 比如 计算机科学与技术、软件工程、大数据技术 有的是相关专业出生的 比如 信息安全、网络工程、物联网工程等等 除此之外 还有各种其他专业转行过来的 文理不限、专业不限 科班出生…

mydump 文件拆分 mysqldumpsplitter

mydump 文件拆分 如何将mysqldump的输出拆分为较小的文件&#xff1f; 要将mysqldump的输出拆分为较小的文件&#xff0c;可以使用–max-allowed-packet和–single-transaction选项。 使用–max-allowed-packet选项设置每个查询允许的最大数据包大小。这将确保mysqldump在执行…

精通 Stable Diffusion 调优秘籍

一、Stable Diffusion 调优概览 Stable Diffusion 作为一款强大的 AI 绘画工具&#xff0c;其调优具有至关重要的意义。通过合理的调优&#xff0c;可以显著提升图像生成的质量、速度和准确性&#xff0c;满足用户更加多样化和精细化的需求。 调优主要涵盖了多个方面。首先是模…

鸿蒙(API 12 Beta3版)【使用Image完成图片解码】图片开发指导依赖JS对象

图片解码指将所支持格式的存档图片解码成统一的[PixelMap]&#xff0c;以便在应用或系统中进行图片显示或[图片处理]。当前支持的存档图片格式包括JPEG、PNG、GIF、WebP、BMP、SVG、ICO、DNG。 开发步骤 添加依赖 在进行应用开发之前&#xff0c;开发者需要打开native工程的…

YOLOv5改进 | 融合改进 | C3 融合Efficient Multi-Scale Conv提升检测效果

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a; 《YOLOv5入门 改…

博立的个人代表作品集锦

1. 比赛同创 国一_2023年全国大学生电子设计竞赛 【信号分离装置】 国二_2023年全国大学生集成电路创新创业大赛半决赛作品&#xff08;robei赛道&#xff09; 【基于robei EDA的可重构无线控制小车设计】 省一_2022年重庆市大学生电子设计竞赛 【混沌信号发生装置】 国…