当前位置: 首页 > news >正文

【软件测试】自动化测试 — selenium快速上手

目录

1. 自动化测试的概念

2. web自动化测试

2.1 驱动

2.2 驱动管理

3. Selenium

3.1 导入依赖

3.2 快速上手

3.3 selenium + webDriver + 浏览器的原理


1. 自动化测试的概念

通过模仿人的行为,将人为驱动转变为机器驱动,设定好预期的结果,通过校验预期的结果和实际的结果是否一致,从而达到测试软件的功能的目的,通过⾃动化测试有效减少人力的消耗的同时也提⾼了测试的质量和效率。

自动化测试的典型应用场景就是回归测试

回归测试:避免因为添加某个新功能或修复某个bug,导致原来的功能受到影响

在回归测试中,很多的测试都是重复的,传统的手工测试太耗费时间,让机器进行测试,可以提高测试的准确性和执行效率

2. web自动化测试

web自动化测试,使用专门的软件测试工具,自动驱动web浏览器,执行预先定义好的用户操作,并验证网页的元素状态是否符合预期

2.1 驱动

显卡要有显卡驱动才能正常渲染画面;汽车要有发动机驱动才能跑起来;

自动化程序安装了web驱动(WebDriver) 就能执行打开浏览器等一系列操作,WebDriver 以本地化方式驱动浏览器。

不同的浏览器需要使用不同的浏览器驱动,不同版本的浏览器也需要不同版本的浏览器驱动

也就是说每次浏览器更新,都需要下载对应版本的浏览器驱动,那一天浏览器更新了,驱动没有更新,就会导致自动化失败,这样很繁琐,其实也有解决办法

2.2 驱动管理

我们不需要下载驱动程序,只需要在程序的pom文件中,导入对应的依赖,驱动管理程序会自动下载正确的驱动

		<dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.8.0</version><scope>test</scope></dependency>

通过导入依赖,很好的解决了WebDriver不好管理的问题,可以自动化处理浏览器驱动的下载、版本匹配和路径配置,让 Selenium等测试工具的 Web 自动化测试更稳定、更便捷。

3. Selenium

selenium是目前流行的Web自动化测试工具,通过使用selenium中提供的方法可以很方便的对web进行自动化测试

3.1 导入依赖

使用起来很方便,只需要在项目中导入对应的依赖即可

		<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency>

导入后,即可使用selenium中提供的方法,编写代码,对web浏览器进行自动化测试

3.2 快速上手

在我们设计测试用例时,需要写清楚执行的步骤,自动化测试代码编写也是同样如此,规定好先干什么,后干什么(别忘记导入对应的依赖

比如:在百度页面搜索《三国演义》

  1. 打开谷歌浏览器
  2. 输入网址:https://www.baidu.com
  3. 找到输入框,手动输入《三国演义》
  4. 点击搜索按钮
  5. 关闭浏览器

这个是百度页面搜索水浒传的步骤,自动化测试代码编写

    //测试百度搜索void test01()  {//1.记载对应的驱动WebDriverManager.chromedriver().setup();//2.设置加载的策略ChromeOptions options = new ChromeOptions();//允许访问所有链接options.addArguments("--remote-allow-origins=*");WebDriver webDriver =  new ChromeDriver(options);//2.输入网址webDriver.get("https://www.baidu.com");//3.输入内容webDriver.findElement(By.cssSelector("#kw")).sendKeys("《三国演义》");//4.点击搜索webDriver.findElement(By.cssSelector("#su")).click();//5.关闭浏览器webDriver.quit();}

3.3 selenium + webDriver + 浏览器的原理

实现原理:

  1. Selenium脚本通过调用WebDriver API创建HTTP请求

  2. webDriver获取请求后并解析,将解析后的数据发送给浏览器

  3. 浏览器执行实际操作

http://www.lryc.cn/news/620806.html

相关文章:

  • BitDock——让你的Windows桌面变为Mac
  • 如何查看SQL Server的当前端口
  • filezilla mac新版本MacOS-12.6.3会自动进入全屏模式BUG解决方法
  • 我的第一个开源项目-jenkins集成k8s项目
  • 软件测试中,常用的抓包工具有哪些?抓包的原理是什么?
  • FPGA读取AHT20温湿度模块思路及实现,包含遇到的问题(IIC协议)
  • 快速部署一个鉴黄服务
  • React数据请求
  • Android 项目:画图白板APP开发(二)——历史点、数学方式推导点
  • 2.0t的涡轮增压器结构设计说明书cad【5张】设计说明说
  • OpenSatKit技术详解
  • 《Leetcode》-面试题-hot100-动态规划
  • C++实现序列匹配与分类处理
  • 深度学习-卷积神经网络CNN-批量归一化 BatchNorm
  • React和Vue
  • React 中播放HLS 视频流 ,超简单的组件高度复用
  • 2019 GPT2原文 Language Models are Unsupervised Multitask Learners - Reading Notes
  • 微美全息(WIMI.US)借区块链与聚类技术,开启物联网去中心化安全架构新纪元
  • C#WPF实战出真汁03--登录功能实现
  • 阿里云Spring Cloud架构分析
  • 无人机双目视觉设计要点概述!
  • .Net4.0 WPF中实现下拉框搜索效果
  • 4. 索引数据的增删改查
  • MyBatis Interceptor 深度解析与应用实践
  • Mybatis学习笔记(一)
  • 【密码学实战】基于SCTP的DTLS协议实验
  • springboot项目不同平台项目通过http接口AES加密传输
  • AR技术赋能电力巡检:智能化升级的“秘密武器”
  • MicroVM-as-a-Service 后端服务架构设计与实现
  • 顺序表插入删除