【软件测试】什么是selenium

news2024/10/7 14:32:42

1.selenium+Java环境搭建

前置条件:

Java最低版本要求为8,浏览器使用chrome浏览器

1.1下载chrome浏览器

https://www.google.cn/chrome/

1.2查看浏览器版本

点击关于Google chrome.

 记住版本的前三个数.

 1.3下载浏览器驱动

http://chromedriver.chromium.org/downloads

下载对应浏览器版本的驱动.

 1.4配置环境变量

解压下载好的驱动压缩包,将下载好的chromedriver.exe放到Java的系统环境变量下.即jdk的bin目录下.

 1.5验证环境是否搭建成功

 新建一个maven项目,添加selenium依赖:

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.7.2</version>
</dependency>

 将下面代码粘贴进main函数进行测试:

        // 创建了一个options对象,用来给请求设置一些参数
        ChromeOptions options = new ChromeOptions();
        // 允许所有的请求
        options.addArguments("--remote-allow-origins=*");
        // 创建了一个驱动
        WebDriver webDriver = new ChromeDriver(options);
        // 打开了一个百度网页
        webDriver.get("https://www.baidu.com");

成功打开了百度网页:

环境搭建成功.

补充:

出现报错:The path to the driver executable The path to the driver executable must be set by the webdriver.chrome.driver system property

解决方法:将路径改为自己电脑上chrome驱动的路径.

 //设置驱动路径
System.setProperty("webdriver.chrome.driver","C:\\Program Files\\Java\\jdk1.8.0_192\\bin\\chromedriver.exe");

2.什么是自动化测试?

自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。

简单来说,所谓的自动化就是将手工测试转换成代码,让代码代替人工执行测试,可以提高效率,提高测试质量.

 自动化测试包括UI自动化,接口自动化,单元测试自动化.

2.1单元测试

最大的投入应该在单元测试上,单元测试运行的频率也更加高。java的单元测试框架是Junit,使用的时候导入junit依赖即可.

2.2接口测试

接口测试就是API测试,相对于UI自动化API自动化更加容易实现,执行起来也更稳定。

接口自动化的有以下特点:

  • 可在产品前期,接口完成后介入
  • 用例维护量小
  • 适合接口变动较小,界面变动频繁的项目

常见的接口自动化测试有,RobotFrameworkJMeterSoapUITestNG+HttpClientPostman等。

2.3UI测试

虽然测试金字塔告诉我们尽量多做API层的自动化测试,但是UI层的自动化测试更加贴近用户的需求和软件系统的实际业务。并且有时候我们不得不进行UI层的测试。

UI自动化的特点:

  • 用例维护量大
  • 页面相关性强,必须后期项目页面开发完成后介入
  • UI测试适合与界面变动较小的项目

UI自动化测试的好处

  • 降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入,这可能是自动化测试最主要的任务,特别是在程序修改比较频繁,效果是非常明显的,自动化测试前期人力投入较多,但后期进入维护期后,可节省大量人力,而手工测试后期需要增加大量人力用于回归测试
  • 减少重复测试的时间,实现快速回归测试
  • 创建优良可靠的测试过程,减少人为错误
  • 可以运行更多更繁琐的测试
  • 可以执行一些手工测试困难或不可能进行的测试
  • 更好的利用资源
  • 测试脚本的重用性

UI层自动化测试框架

UI层的测试框架比较多,比如Windows客户端测试的AutoITweb测试的selenium以及TestPlant

eggPlantRobot frameworkQTP等。

如何实施自动化测试

单纯的讲,自动化测试的具体实现,应该是包含下面七个过程的。

1. 分析:总体把握系统逻辑,分析出系统的核心体系架构。

2. 设计:设计测试用例,测试用例要足够明确和清晰,覆盖面广而精

3. 实现:实现脚本,有两个要求一是断言,二是合理的运用参数化。

4. 执行:执行脚本远远没有我们想象中那么简单。脚本执行过程中的异常需要我们仔细的去分析原

因。

5. 总结:测试结果的分析,和测试过程的总结是自动化测试的关键。

6. 维护:自动化测试脚本的维护是一个难以解决但又必须要解决的问题。

7. 分析:在自动化测试过程中深刻的分析自动化用例的覆盖风险和脚本维护的成本。

提问

1.自动化测试好还是手工测试好?

不能说哪个好或者说哪个坏,只有适合当前业务的测试类型就是一个好的测试方法.

2.自动化能否完全代替手工测试?

不能完全代替.

3.什么是selenium?

Seleniumweb应用中基于UI的自动化测试框架,支持多平台、多浏览器、多语言。

特点:

1.支持多语言:java,python,JS,Ruby,C等

2.支持跨平台:一套代码,可以在Linux上运行,也可以在Mac,Windows上运行

3.支持多浏览器:Edge,Chrome,Firefox等

3.1selenium的工作原理

  • 自动化脚本代码 : 通过编译器编写的自动化测试脚本代码
  • 浏览器驱动 : 浏览器驱动是自动化脚本与浏览器之间的媒介,驱动解析脚本在浏览器上运行。

由图可知,selenium的整个工作原理中,包含了三个角色,代码,浏览器驱动和浏览器.自动化脚本代码会创建一个HTTP请求并发送,浏览器驱动则会创建一个服务器去接收HTTP请求,并对请求进行解析,比如1.5的验证用例中,是一个打开百度首页的请求,将请求发送给浏览器,执行结果返回给浏览器驱动,最后再返回给代码,在写脚本代码的软件中就可以看到是否执行成功.

 

 

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

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

相关文章

JS案例:在浏览器实现自定义菜单

目录 前言 设计思路 BaseElem Menu CustomElement BaseDrag Drag Resize 最终效果 总结 相关代码 前言 分享一下之前公司实现自定义菜单的思路&#xff0c;禁用浏览器右键菜单&#xff0c;使用自定义的菜单将其代替&#xff0c;主要功能有&#xff1a;鼠标右键调出菜…

二、基本数据类型和表达式

2.1数据类型 数据类型占用字节数取值范围bool1true 或 falsechar1-128 到 127 或 0 到 255 &#xff08;取决于是否带符号&#xff09;unsigned char10 到 255short2-32,768 到 32,767unsigned short20 到 65,535int4-2,147,483,648 到 2,147,483,647unsigned int40 到 4,294,…

ES6基础知识二:ES6中数组新增了哪些扩展?

一、扩展运算符的应用 ES6通过扩展元素符…&#xff0c;好比 rest 参数的逆运算&#xff0c;将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5[...document.querySelectorAll(div)] // [<div>, &l…

12 扩展Spring MVC

12.1 实现页面跳转功能 页面跳转功能&#xff1a;访问localhost:8081/jiang会自动跳转到另一个页面。 首先&#xff0c;在config包下创建一个名为MyMvcConfig的配置类&#xff1a; 类上加入Configuration注解&#xff0c;类实现WebMvcConfiger接口&#xff0c;实现里面的视图跳…

Python入门【列表元素访问和计数 、切片操作、列表的遍历、复制列表所有的元素到新列表对象、多维列表、元组tuple】(五)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

OSI 和 TCP/IP 网络分层模型详解(基础)

OSI模型: 即开放式通信系统互联参考模型&#xff08;Open System Interconnection Reference Model&#xff09;&#xff0c;是国际标准化组织&#xff08;ISO&#xff09;提出的一个试图使各种计算机在世界范围内互连为网络的标准框架&#xff0c;简称OSI。 OSI 七层模型 OS…

两个数组的dp问题(1)--动态规划

一)最长公共子序列: 1143. 最长公共子序列 - 力扣&#xff08;LeetCode&#xff09; 一)定义一个状态表示:根据经验题目要求 1)选取第一个字符串[0&#xff0c;i]区间以及第二个字符串[0&#xff0c;j]区间作为研究对象&#xff0c;先选取两段区间研究问题&#xff0c;先求出[0…

即时零售业务调研2022

调研时间22年7月 核心观点&#xff1a; 即时零售业务正处于爆发期疫情催化&#xff0c;线下商家和零售平台处于双向奔赴的蜜月期未来规模会是万亿市场&#xff0c;市场不容小觑&#xff0c;广告业务重要 业务对比优势 平台模式护城河是&#xff1a;线上流量线下配送网络&am…

芯洲科技-降压DCDC开关电源参考选型目录

芯洲科技&#xff0c;是国内领先的中高压DC-DC&#xff08;直流转直流&#xff09;功率转换芯片供应商。北京冠宇铭通 一级代理。 国产化替代&#xff0c;对标TI&#xff0c;有很多料号可直接PIN TO PIN&#xff0c;比如TPS562200(SOT23-6)\TPS563200(SOT23-6)/TPS54540/LMR140…

02、什么是TPS和响应时间

在这个图中&#xff0c;定义了三条曲线、三个区域、两个点以及三个状态描述。 三条曲线&#xff1a;吞吐量的曲线&#xff08;紫色&#xff09;、使用率 / 用户数曲线&#xff08;绿色&#xff09;、响应时间曲线&#xff08;深蓝色&#xff09;。三个区域&#xff1a;轻负载区…

【IDEA】idea 无法打包文件到 target 如何处理.

文章目录 1. 一般原因就是文件的资源没有设置2. 还有可能是打包的配置中没有包含xxx.xml,xxx.sql等3. 还有一种情况是&#xff0c;因为缓存 1. 一般原因就是文件的资源没有设置 比如常见的 maven 项目&#xff0c;必须标记资源的类别&#xff0c;否则就有可能无法编译到target…

unity——Rigidbody(刚体)

官方手册&#xff1a;Rigidbody 官方API&#xff1a;Rigidbody Api 组件简介 刚体 (Rigidbody)使__游戏对象__的行为方式受物理控制。刚体可以接受力和扭矩&#xff0c;使对象以逼真的方式移动。任何游戏对象都必须包含受重力影响的刚体&#xff0c;行为方式基于施加的作用力…

基于机器视觉工具箱和形态学处理的视频中目标形状检测算法matlab仿真

目录 1.算法理论概述 2.部分核心程序 3.算法运行软件版本 4.算法运行效果图预览 5.算法完整程序工程 1.算法理论概述 目标形状检测是计算机视觉领域的重要任务之一&#xff0c;旨在从视频序列中自动检测和识别特定目标的形状。本文介绍一种基于机器视觉工具箱和形态学处理…

Unity自定义后处理——Bloom效果

大家好&#xff0c;我是阿赵。   继续介绍屏幕后处理效果&#xff0c;这一期讲一下Bloom效果。 一、Bloom效果介绍 还是拿这个模型作为背景。 Bloom效果&#xff0c;就是一种全屏泛光的效果&#xff0c;让模型和特效有一种真的在发光的感觉。 根据参数不一样&#xff0c;可…

21 对于对象中set方法的理解

对于一个Student对象&#xff0c;属性有name和age&#xff0c;而age一般是比0大的&#xff0c;赋值不可能是负数&#xff0c;可以通过set方法来控制&#xff01;Student对象如下&#xff1a; public class Student {// 成员变量private int age;public Student() {}public int…

嬴图 | K邻算法在风险传导场景中的实践意义

随着图思维方式与图数据框架在工业领域的有效开展和深入应用&#xff0c;可靠且高效的图算法也就成为了图数据探索、挖掘与应用的基石。该图算法系列&#xff08;具体见推荐阅读&#xff09;&#xff0c;集合了 Ultipa 嬴图团队在算法实践应用中的经验与思考&#xff0c;希望在…

海外NFT玩法入门科普 - Web3.0(二)

咪哥杂谈 本篇阅读时间约为 7 分钟。 1 前言 距离上一篇文章有些时日&#xff0c;把上一次介绍 web3 的海外 nft 的坑继续填完&#xff0c;今天这篇是下篇&#xff0c;其中详细的介绍了我从去年一年来&#xff0c;所见&#xff0c;所参与的玩法&#xff0c;赚钱方式&#xff0c…

VUE开发神器-NVM nodejs版本控制工具nvm

前言 在学习前端框架或者是nodejs时&#xff0c;有时候某些框架对nodejs的版本有要求。但此时你的电脑上已经安装了10.x版本的nodejs&#xff0c;你不想直接更新到12.x&#xff0c;想同时保存10.x和12.x版本&#xff0c;在必要的时候还能随时切换nodejs版本。那么nvm工具你值得…

[oeasy]python0073_进制转化_eval_evaluate_衡量_oct_octal_八进制

进制转化 回忆上次内容 上次了解的是 整型数字类变量integer前缀为i 整型变量 和 字符串变量 不同 整型变量 是 直接存储二进制形式的可以用 int()函数 将 2进制形式的 字符串 转化为 十进制整数 int()函数 接受两个变量 待转化的字符串字符串使用的进制 二进制 和 十进制…

No spring.config.import property has been defined

报错如下&#xff0c;异常信息里面已经提示了修改的方式&#xff1a; 19:16:46.221 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - *************************** APPLICATION FAILED TO START ***************************Description…